It is currently Sun Jun 17, 2018 10:58 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 72 posts ]  Go to page Previous  1, 2, 3, 4, 5
Author Message
PostPosted: Fri Jun 02, 2017 6:53 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
Before working on the arpeggio enhancements, I wanted to get some changes out into a tagged release for those who don't follow me on GitHub.

0.05wip6 (2017-06)

  • Patterns can change channel volume in 25% steps
  • Rest in attack track no longer corrupts pulse 1 arpeggio
  • pentlyconfig.inc: Change engine's code and data segment; disable pulse channel effect pooling and volume comparison; change initial $4011 value
  • Optionally enable sound effects in NSF
  • pentlyas.py: Improved diagnostics emitted by play command. Shows song name; emits one for playing pattern too low.
  • pentlyas.py: Command line option to change output segment
  • pentlyas.py: Clamp vibrato depth to in-range values
  • pentlyas.py: Ignore loops in volume envelopes, presumably pasted from FamiTracker
  • NSF header gets load address from linker configuration
  • Document use of equal temperament
  • Add "Sticks" sample song


Attachments:
pently-0.05wip6.zip [93.76 KiB]
Downloaded 68 times
Top
 Profile  
 
PostPosted: Tue Sep 19, 2017 8:37 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
Pently 0.05wip7 has three key improvements: portamento, slow arpeggio, and richer ways to express arpeggio.

  • Change to zlib license, which preserves the spirit of the original license but is recognizable by GitHub
  • Add portamento, the single most requested feature
  • paldetect: Interleave with vwait so as not to depend on NMI handler
  • pentlyas.py: Add 8 predefined chord names (M, maj7, dom7, aug, m, m7, dim, dim7)
  • pentlyas.py: Score can define new chord names
  • pentlyas.py: Add single-note arpeggio syntax similar to LilyPond chord mode (thanks to retrodpc for testing)
  • pentlyas.py: Option to name chord by its top note instead of bottom
  • pentlyas.py: First and second inversions of chords
  • Arpeggio can be set to slow or fast (requested by w7n)
  • Add "Arpeggio Waltz" song demonstrating new features
  • Document that object names follow identifier rules
  • makefile: Launch Python tools with py.exe on Windows


Attachments:
pently-0.05wip7.zip [99.09 KiB]
Downloaded 65 times
Top
 Profile  
 
PostPosted: Thu Dec 28, 2017 8:10 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
Pently 0.05wip8 is expected to be the final release of this calendar year.

  • Reduce BSS (main RAM) footprint when several effects are off
  • Reduce ZP footprint when attack phase is off
  • Compress 0-pitch frames of instrument envelopes
  • pentlyas.py: correctly parse drum names starting with "l"
  • pentlyas.py: option to change overall tuning up or down from A440
  • pentlyas.py: special filename - means standard output
  • pentlyas.py: output lists each song's total size in comments
  • Add "Isometry" song demonstrating attack track more thoroughly
  • makefile: change score filename
  • NES shell: move copyright notice to status bar
  • NES shell: status shows ROM size and current and peak CPU usage
  • NES/NSF executables no longer in Git; will be in releases instead

Is anyone actually using this?


Attachments:
pently-0.05wip8.zip [111.21 KiB]
Downloaded 42 times
Top
 Profile  
 
PostPosted: Fri Dec 29, 2017 4:32 am 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1606
Location: Gothenburg, Sweden
Personally, i mean to get into pently and try it out once i have one or two balls less to juggle, because it looks very promising. Separate attack portions make a lot of sense. Were you planning on a dedicated tracker?

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Fri Dec 29, 2017 7:40 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
I even prototyped effect symbols for a new tracker, but I too have many balls to juggle.


Top
 Profile  
 
PostPosted: Sat Jan 13, 2018 9:51 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
Based on discussion about conveniences for MML composers a few days ago, I've been adding enhancements to playback in Pently's NES shell (see bug 27).

  • Visualizer: See what notes are playing on the main pitched tracks and what pitch and volume are output on each channel
  • Rehearsal marks: Navigate to sections of a song
  • Track muting: Disable or enable note-ons on a track. This works on tracks, not channels, letting you (for instance) hear a channel's own track separately from drum and attack track overlays that play over it. I've even added the same double-click behavior as FamiTracker: solo if any other channel is unmuted; otherwise unmute all.
  • Resume point: When the ROM starts, jump to a specific row of a song with specific channels muted.

So here's an interim player release built from the head of my tree. Try it and see if my navigation, visualizer, and track muting are in any way helpful. Press A or B to switch between the song list and the visualizer. On the visualizer, use up and down to jump to a section or left and right to move to the mute controls.


Attachments:
pently5pre9vis-0.png
pently5pre9vis-0.png [ 1.31 KiB | Viewed 1289 times ]
pently5pre9vis.nes [24.02 KiB]
Downloaded 38 times
Top
 Profile  
 
PostPosted: Wed Feb 21, 2018 4:52 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
Pently 0.05wip9 is out

This release adds several features useful for iterating on part of a piece, such as a visualizer, channel muting, seeking to rehearsal marks, and slow motion playback. It also adds an editor to create sound effects right on your console.

Engine changes

  • PENTLY_USE options to disable music engine entirely, disable 303 portamento, and enable triangle channel duty fix
  • Regression fix: Cancel injection when attack ends (had been broken since slow arps)
  • Cancel grace note when pattern begins
  • Add rehearsal transport control to skip to a row or slow down or pause playback
  • Add variable mix to mute tracks
  • Store current pitch and volume for use by visualizer

pentlyas.py changes

  • Add warning infrastructure
  • v1 through v4 as synonyms for pp through ff
  • p (pause) is synonym for r (rest)
  • q repeats last chord, as in LilyPond
  • Bar check in pattern to warn if not on a measure boundary
  • pickup works in patterns as well
  • Unreachable A in tunings below A=437 is nonfatal
  • mmloctaves off, which future chord syntax will require
  • Set rehearsal marks for navigation in score
  • Set initial playback position and track muting

NES shell changes

  • Add per-song screen with visualizer, rehearsal mark navigation, track muting, tempo, and pause-and-step
  • Import Sound Effects Editor as of 2014-09-10

Manual and other changes

  • Script to estimate pitch of 93-step noise
  • docs: Recalculate PENTLY_USE savings


Attachments:
pently-0.05wip9.zip [158.81 KiB]
Downloaded 33 times
Top
 Profile  
 
PostPosted: Sat Feb 24, 2018 12:22 pm 
Offline
User avatar

Joined: Mon Feb 07, 2011 12:46 pm
Posts: 985
One suggestion of thing to add could be the octave mode that < and > makes the octave permanent while ' and , makes the octave temporary (a few MML compilers support this).

Also, I do not see any description of the mmloctaves command in the documentation.

_________________
.


Top
 Profile  
 
PostPosted: Sat Feb 24, 2018 8:51 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
zzo38 wrote:
One suggestion of thing to add could be the octave mode that < and > makes the octave permanent while ' and , makes the octave temporary (a few MML compilers support this).

Which compilers, so I can plunder their manuals the way I did the ppMCK guide? Do they allow one of < or > and one of , or ' on the same note?

zzo38 wrote:
Also, I do not see any description of the mmloctaves command in the documentation.
[/quote]
That's because the feature controlled by mmloctaves is not yet implemented. I reserved that keyword a release in advance, intending to use it for LilyPond-style chorded notation for arpeggios, where <a c e>4 means the same as the chordmode-inspired a4:37.


Top
 Profile  
 
PostPosted: Sun Feb 25, 2018 12:43 am 
Offline
User avatar

Joined: Mon Feb 07, 2011 12:46 pm
Posts: 985
tepples wrote:
zzo38 wrote:
One suggestion of thing to add could be the octave mode that < and > makes the octave permanent while ' and , makes the octave temporary (a few MML compilers support this).

Which compilers, so I can plunder their manuals the way I did the ppMCK guide? Do they allow one of < or > and one of , or ' on the same note?
The only ones I know are AmigaMML and my own improved version of ppMCK (there may be others, but I do not know of any), and yes they do allow both on the same note. (Actually, it doesn't use , for this purpose, but if implementing it in Pently, , is already used to specify octave so it might as well to still do.)

Here is a copy of the relevant parts of the AmigaMML documentation that have to do with octaves (so that you need not download it if you do not want to):
Quote:
c d e f g a b = Play notes by letters. You can include + (sharp) - (flat) ' (high octave) _ (low octave) after each note, to change them by one or twelve semitones each; using multiple symbols (even multiple same ones, such as double-sharp) is possible. After that, you can include a number to override the note length, and then you can include dots to increase the note length.

o = Set octave. For Amiga mode, range is 0 to 4 (default is 2), although the actual Amiga limit is octave 1 to 3 and some programs might not work with numbers outside of such limit. For Extended mode, the range is 0 to 7 (default is 4).

< > = Make low octave/high octave.
(The o command here is one that all MML compilers I have seen implement (although the description above is for Amiga; the range may differ for NES/Famicom). Pently does not seem to have this, but it probably should be added, which then sets what is considered as "previous note" without actually adding a note. AmigaMML uses _ as the low octave suffix, but Pently uses , instead, which should still be OK; Pently is already difference from MML anyways, so it need not be the same way exactly. Also, maybe this documentation is unclear, but I wrote AmigaMML, so I know that <> is permanent while ' is temporary.)

Quote:
zzo38 wrote:
Also, I do not see any description of the mmloctaves command in the documentation.

That's because the feature controlled by mmloctaves is not yet implemented. I reserved that keyword a release in advance, intending to use it for LilyPond-style chorded notation for arpeggios, where <a c e>4 means the same as the chordmode-inspired a4:37.
Ah, OK.

_________________
.


Top
 Profile  
 
PostPosted: Sun Feb 25, 2018 9:34 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
zzo38 wrote:
The only ones I know are AmigaMML and my own improved version of ppMCK (there may be others, but I do not know of any), and yes they do allow both on the same note. (Actually, it doesn't use , for this purpose, but if implementing it in Pently, , is already used to specify octave so it might as well to still do.)

Yeah, I was just curious if anyone else would use that feature of combining sticky and non-sticky octave changes. Thanks for quoting the manual. I may include it in a new "semirelative" mode.

zzo38 wrote:
o = Set octave. For Amiga mode, range is 0 to 4 (default is 2), although the actual Amiga limit is octave 1 to 3 and some programs might not work with numbers outside of such limit. For Extended mode, the range is 0 to 7 (default is 4).

I am accepting this feature request, with octave numbers interpreted the same way as in NerdTracker II and FamiTracker: o1 means C-1 through B-1, o2 means C-2 through B-2, etc., where NT2 and FT consider middle C to be C-3. Thus o1 would reset the pitch context as if the previous note were F-1, o2 as F-2, o3 as F-3, etc.

EDIT: Added in commit e9d89e0.

zzo38 wrote:
tepples wrote:
I reserved that keyword [mmloctaves] a release in advance, intending to use it for LilyPond-style chorded notation for arpeggios, where <a c e>4 means the same as the chordmode-inspired a4:37.
Ah, OK.

If you're curious, the relevant issue is Create arpeggios from chorded notes (#11).


Top
 Profile  
 
PostPosted: Mon Jun 04, 2018 8:12 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20157
Location: NE Indiana, USA (NTSC)
There is a bug affecting triangle instruments and sound effects with non-final zero values. The fix requires adding 4 bytes of branch over the check for period high mismatch on non-pulse. It has been committed to the repository on MS GitHub and will be included in the next release.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 72 posts ]  Go to page Previous  1, 2, 3, 4, 5

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group