Arp Sustain with Sustain Pedal
-
@Christoph-Hart - strange I was trying to script it and toggling the hold in the same call back - and it fails - you just get clicks - but I think thats because I wasnt testing
thisTime - lastNoteOff > 0.1
still - thanks for this...
-
Breaking news from ARP Land:
- added chord mode
- send note off when sequence is stopped
The last one actually required a minor change to the event ID system, which might have some use cases apart from this: Before the change, as soon as you called
Synth.noteOffByEventId()
, the event ID is popped from the active note stack and a note-off is inserted into the temporary buffer of that MIDI processor waiting to be processed according to its timestamp (after each buffer the buffer size is being subtracted from the time stamp as as soon the timestamp is in the range0-buffersize
it will be processed). However there was no possibility of changing the length of a note once it has been terminated with this API call (which is why the notes keep playing in their original length in the arp).The change I did is rather subtle and it can't break existing behaviour, but now you can just call
Synth.noteOffByEventId()
again and if it can't find the note on (because it was already popped from the note stack), it will search in the temporary buffer of that same MIDI processor and if there is a note-off waiting to happen there, it just modifies the timestamp and thus changing the length of the note.Note that if you called the noteOffByEventID() method before this change on a already killed note, it will fire the
NoteOff with event ID X not found
error, which is still the case, but only if there is no note off in the temporary buffer. -
except this is also broken in some way --- the hold button wont turn off programatically - well it will but the arp just keeps playing...
-
..and now its decided to ignore the glide script I added - except where I turn off the arp - play some notes- they glide - then turn ON the arp - and it glides correctly.
Im reaching the point where I think the model of note behaviours is not flexible enough to accommodate some reasonable requirements - like an arp thats even just a bit above basic - and glide scripts..
-- so apparently I MUST have midi thru (different input and output channels in the arp) to get glide to work...
-
@Christoph-Hart THANK YOU! Absolutely killer. I was definitely running into the issue where I needed to call
Synth.noteOffByEventId()
twice but wasn't able to access the eventId after calling it once, so this will be super useful.Really appreciate the quick turnaround. Cheers!
-
Experiencing just one small issue with the new "Chords" pattern. When you play a chord, the first time around it will only play one note and then it will play all the notes on the next cycle.
HiseSnippet 1048.3oc4XszbaaCDFzRHsZ7iX6wsMyzK5Pu0oZDyy1SQOrThqsR3Hp5laYfIWIgwj.LfftQm5ew9SI+CZAHEEIiYUnzz5LSKOIrfe69g8EVJKA2ABC4BjQiIKB.jwdX6EL479yITF5rSQFGfGQBkfnYhndKBHggfKxvn1KzBLZTGE+7gm2i3QXNPlHD5RN0Atf5SkYRs5bN0yaHwElP8y81OtyYNbVetGORwmZ31n.hy0jYvqH5WaGLx3dCboRtvVRjPHxndOt6B647eik79WRCoW4A5ElHakhRDOj64pYr92n9yodtVom6PDx.ak4Epk3ENAOh5RWIOyabX7FMyPj2eXry5nmYd50tT5YVB8P4XW8D1oHA2MxiHKxLc3X4FTdwH0YLIvBoxE4CWeVo6QXKpzYd47cmR3qJP8uMeWF72GOX5TvQlQ153gu4tMRePBU1EaSYPbEYLQ9530M+UxMPyW.LPncplqon7OpZQYPkKJesiTY9IBBKLfGVPw1fOcBmo8HYB+kPXn.d2XcTNu79bhnzs9vyGpNjkhwlHiDwoKc84QLYgziZUNlju4PwplbueIcJp+YnSwFzHynrb4th.X1LpNQYY+7bRJl57wdvZUiUkjI2mqKfkJN8U5eJ3dpWUFynCv1NBZfrWjTpp5otZQIrXonaHdQERqPUPG6iGCgfrnJvFqEtsG0EDwvuO9UQ91RHXorUJndEUfpRUgNlCavAHmBNLVA1WSuEELpnKPoAtPdNrXycjEOHA.3dNieUFE1sLvGtDbet+U7d72GC+XrM7tHP0wYk3OhFOnSUnw93j9LiIrYvlGOafsmGMcpGrcYS6hGvHpT8IT3uKNTOA7wErskZfkXEbBNsWXtMtEUbIRBx3awlOsU4Oaf8tD73NpaLqr8l98851p0Oc9osZ8nHqj0U1dGiu.Xyjyqt0tVasK+Yk0dC2JYcESoNBq5pxXfmM3otVl+oJMJUIeC90QxfH4+.p5H7HqApdjhTkkojcprRtuVICXt2REGVwL78vpJ83piK3ad8wd3qWh9kzLz+dEKOtG9kpahJoz5NaV0ZUafqOwkjMR4nM0OvCFvtQUDojn43w3SgojHOYpzh2UNhy3Ay4LpSdGvXPJnylAh7buzCTWoTWzrRxIcFqRII4mm565bgZNHhP4mfszWXVcew5hWO.mP2l5YCa9eiuwn1+O+Fiw7HIkMaDQkn9dUMudrG0n8pqqSZDEl1Fa451ocUrAla7h+T8rbSyzFm5MMS27NwF9DGA+sNI8pz4xeYrD04lE+uEz.ORutoYZWpu.a9vm0pMxWMU9acbzN7eP4gJG0CW0SD2tpXdzVf4waAlmrEXd5Vf4YaAlebsXzePT2HI2OoXTIvZvowCIXjLtUbdO5u.mhz1oA
-
Hmm, yes I noticed that too, the problem is the arp starts playing as soon as you hit the first note, there's not too much I can do. I think if it's perfectly quantised, it should work though.
-
Hmm, perhaps just on the first cycle it plays any note press when pressed and then syncs them on all cycles after. That's the way I have it in my other midi processing script and it feels very fluid to play that way.
-
Yeah, I also wasn't very satisfied with my answer...
https://github.com/christophhart/HISE/commit/5a709c8022a2ba7207dedf84a88099fe13399b4f
-
Wicked! Will give it a spin.
-
Nice, this seems to be working well. I might just tweak the
Engine.getUptime() - chordStartUptime < 0.02
for my project to add a little more flexibility in the note presses.Appreciate it!
-
@Christoph-Hart -- I know this is very late in the day but can I add yet another feature request in here.
Can we add a couple of range sliders - that set a lower midi note and upper midi note that the arp responds to - otherwise it ignores the input (passes the note thru) un affected - it allows users to play high sounds whilst (say) HOLD is engaged on some low notes.
I've tried coding a separate script to do this - by moving the midi channel of "out of range" notes - but the arp still responds to these notes
-
Oh! I added this to the cpp on my own. It's a pretty easy change, so if Christoph can't get to it, I'll send you a version with that included.
-
@Lunacy-Audio perhaps you could push these to the git hub repository?
-
Whilst we are here...
Tie doesnt seem to work how I think it should...When engaged if I hold down a single key - and have some notes at 100% length - then it works fine, but if I hold down a chord it completely ignores the 100% length and retriggers each step - I think it should work that it decides what note to play and then honours the tie for that step...
-
Ah yes, that might be true I didn't check tied notes.
-
@Christoph-Hart well dont spend any time on it now, instead head off and build those send and receive FX's.. :
-
@Christoph-Hart said in Arp Sustain with Sustain Pedal:
Ah yes, that might be true I didn't check tied notes.
actually this isnt really a problem - you get very "musically interesting" results with it:
engage LATCH (HOLD with reset ), engage TIE, set up a "tied pattern" - press a single note - you get the tied pattern playing, press two noes - you get the "standard" pattern playing, rinse repeat...
-
@Lunacy-Audio perhaps you could push these to the git hub repository?
@Lindon I've made some other changes to the arp which you probably don't want, but I can just send you the key range changes. Not sure if it's the best way to handle it, but it does the trick.
-
@Lunacy-Audio the best way is to push your changes to github