pently icon indicating copy to clipboard operation
pently copied to clipboard

Create arpeggios from chorded notes

Open pinobatch opened this issue 7 years ago • 1 comments

In a recent project that used Pently, I had to laboriously hand-convert a few passages where the composer had used seven instruments with different looping negative arpeggio envelopes to create rapidly moving single-channel three-part harmony. (These were three inversions of major, three inversions of minor, and a diminished chord.) But because Pently supports neither looping envelopes nor negative arpeggios, I had to manually find the lowest note of each chord and add an arpeggio command for each. So I decided to see how other textual music representations handle chords.

LilyPond has a notation for chorded notes, where the pitches are placed between angle brackets. Relative mode works within a chord, but the previous note is updated from the first note of the chord. The special symbol q repeats the previous chord, skipping over any intervening lone notes.

<a c e>4 <g b d>8 q4.

So long as the notes are within a minor tenth, this should behave identically to the following:

EN37 a4 EN37 g8 g4. EN00

This notation for chorded notes interferes with parsing of MML octave notation, which also uses <e and >e. But the existing FamiTracker to Pently converter (ft2pently) uses LilyPond octaves (e, and e'), as do the included tracks. So this would need a feature declaration, analogous to durations and notenames, to switch between MML octaves and chord-to-arpeggio.

It also needs a test case. I don't want to modify "Individual Features" because then we'd have no test case for the EN command.

LilyPond also supports a chord mode. I plan to file a separate issue about a chord mode-inspired arpeggio control.

pinobatch avatar May 31 '17 18:05 pinobatch

Status update: This is the last of the arpeggio notation suggestions from 2017-06-01 to remain unfixed. Arpeggio Waltz (song arp_waltz) currently tests a lot of the new features: chord repeat (q), arpeggios specified by top note (#15, which I called "negative"), named arpeggios (#12), first and second inversion (#14), and overriding an arpeggio for one note (#13). But there's plenty of space there to test the new syntax, replacing d2:-m (which means d2:-37) with the equivalent <d bb g>2.

pinobatch avatar Jan 10 '18 19:01 pinobatch