New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create arpeggios from chorded notes #11

Open
pinobatch opened this Issue May 31, 2017 · 1 comment

Comments

Projects
None yet
2 participants
@pinobatch
Owner

pinobatch commented May 31, 2017

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.

@Qix- Qix- added the enhancement label May 31, 2017

@pinobatch

This comment has been minimized.

Show comment
Hide comment
@pinobatch

pinobatch Jan 10, 2018

Owner

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.

Owner

pinobatch commented Jan 10, 2018

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 added a commit that referenced this issue Jan 10, 2018

disallow MML octaves when mmloctaves off
Issue #11 repurposes the < and > signs for building a chord out of
three notes: `<a c e>` means `a:37`.  But this conflicts with MML
octave notation where `<a` means `a,`.  So pentlyas will recognize
LilyPond chorded notes only when the pitch context doesn't accept
MML octaves.

@pinobatch pinobatch added the pentlyas label Jan 14, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment