I think I understand the problem....
But, it's more complicated
What happens with the actual note duration is that it is determined by:
- the duration set in the pattern,
- the value of articulate (by default it's set to 70% of the requested length),
- the value of rtime, which moves the start of the note around
What I think you are requesting is a command to stop a note when a pattern overlaps. You show this in your first solution. Simple.
But, you want to specify start points (offsets) and forget about the duration ... just let the note sound until the next pattern starts a new note. In many ways, the Plectrum tracks work that way.
So, if we were to extend the Aria pattern (and others as well?) to permit this ... the questions are:
- does it apply only to a single note, or all notes in a chord (and don't forget harmony as well)?
- does it apply to the new offset (start point), or do we back up and make the note in the pattern being stopped a set value?
- what happens with a pattern like:
aria set foo 1 2 90; 2 2. 90; 4 4 90;
when the pattern has overlapping notes inside a bar? Or are you suggesting that the option only applies on barlines?
- would this apply to all track types or only arias?
- Riffs only, or patterns as well?
Hey, probably more questions from me that you wanted
But, I think it's a good topic!
Just a minor point, but why are you using riffs rather than defining a pattern? Riffs are designed as a "one off" thing, to replace a pattern.
Look forward to more on this,
Bob.