HISE Logo Forum
    • Categories
    • Register
    • Login

    Arp Sustain with Sustain Pedal

    Scheduled Pinned Locked Moved Scripting
    40 Posts 4 Posters 1.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Casey KolbC
      Casey Kolb
      last edited by

      Nice one! Thanks Christoph.

      Casey Kolb
      Founder & CEO of Lunacy Audio
      Composer | Producer | Software Developer

      1 Reply Last reply Reply Quote 0
      • Casey KolbC
        Casey Kolb
        last edited by

        @Christoph-Hart While we're in Arp land, is there any chance we could add two simple things? If it's too tricky, don't sweat it.

        1. Chord pattern โ€“ All held notes play every timer cycle (this is super useful, people love this). I have my own separate iteration but it'd be nice if it were just part of the arp.

        2. Instant release โ€“ rather than playing the full duration of the arp rate, the note would immediately tail off with a NoteOff. At the moment, the note will continue playing which can feel a bit awkward with slower arp rates. Perhaps there's a way to achieve this without changing the arp?

        Casey Kolb
        Founder & CEO of Lunacy Audio
        Composer | Producer | Software Developer

        LindonL 1 Reply Last reply Reply Quote 0
        • LindonL
          Lindon @Casey Kolb
          last edited by

          @Lunacy-Audio - well if we are asking for additional features (Lindon pushes his luck..)

          It would be nice if there was an option to reset(clear) hold mode on a non-legato note...so:

          • Turn on hold
          • play a chord (arp starts to play)
          • release chord (arp still plays - hold mode working correctly)
          • press another chord (arp stops playing the first chord and starts playing the second chord)
          • release the 2nd chord (arp keeps playing)
          • rinse and repeat...

          HISE Development for hire.
          www.channelrobot.com

          1 Reply Last reply Reply Quote 1
          • Christoph HartC
            Christoph Hart
            last edited by

            It would be nice if there was an option to reset(clear) hold mode on a non-legato note...so:

            You can script that already:

            HiseSnippet 1333.3oc4X8taaaCDWJ1rXNYIMIMXa.6KZECEoXsFVqccanXqIwwoKK+yvJIqeqfQ5rMQjIUknxZPQeG2iRe.Fv1QJYKoXs.EutMfNBCXyi7t62c73cGc2PgKDEIBMLab7kAfg4GSbtjKG1dHkwM1caCykHGPijPnUBostLfFEAdFll0dthfYi5F5w6d1VTeJ2ExHYXbpf4B6yFwjYT6twdLe+cndvwrQ418i2XWWAusvWDi3oFokQ.08b5.3PpZayQLLuUGOlTD5HoRHxvr9VBuKcFJ9Udx9OkEwNyGTSrMbPAkPdGgumBwpeazdHy2q6X6NxvvjzMyKTKwKrF4.lGaB8Luwx5Erx3Hu+vbtqCd1yH7lKG7pm.uUHNtgr.Y1JJrcmTpYnyt.7RV0Xte2jXgN5Ho0EzPqMCCfACXTD21V+fk9zu4.PVvAr9cyus6d+mt37V3mPXfkOFcbnPBG0uOxdqm1Ol6JYBtkfqIyW+9y+l4a3Kbo9VxgrH0gNtyN7ALNnzzIARjz5Jg1.+v5uddY9EnPst28xX8gET4OZ0po88Qrfi2j7kZjGtMi.4lRYH6rXIrdgU9Iz0+.qVZ6Icn+wam+syacUKoe+TSofEWtcbizuslkqnx1BtLT36CgIZ8JKqbEkuRJiqyiGcFD9.7P1OFlrQLFpXP57UKHECXj.WlaiB9tbl7n.H8x23y6wTrMl32xuoL6JOUs4Tx1xHM8MCi1IXB+0I6tMURwKKlozv8E.gRlxBM2Ft.yBkb0oAYaH5boH.yCM009EI4NcRy9k+7p3s8ZEcj0pli75rCy6jZ13VkZDsT5c5shkRA2f4oHkfhTR5i27obMpfLVjzCvnxhhfXdsr63y7fPM62lbX7HGIDjRah.pWQAr.QwsFC2.CHm.VVK.myYSAAyJ5BPIHBk6AWdycjEMj..71iKNKCBKTFyKmxbawnyDaIdsl8UINvqhArn4DxUyPxAgEIG4JoW.8n7AvM+rrAwYXb+99vrEIs.oCmhg4Gyf+JnWOg4UKn6tXocs.VCcAiXGK3PtElBJdpq2leNw9IMKebCz2o.VLhIurx5q+Ws0lMa986scylOJtax7JquUI6C7AxgUWamqz1o+LpsWH5lLuhgSqPvNU3bv2A7AWUNrqOZpTg7ojihkAwx2ChZExAc6f4GCGKrLgLWkExsUBoC2aJQrbECQuEQUlsjv6oarBauS3E6qR1mumOUitoKf0XKTEXWUp6HLZJeiv2fFAaUZif1kUlnhvcERWlzcX43ctRvqpGy+gw6j5qc52Gilx.acxNuXV6gd1fxRIPASbisso61UCjOQO25WvDoVOG3P3zE7K9bmeqpO2InxO2IIO9wgTdTfHpffGmiLJOwShfcBgW0ScJmmdaAMrzkd2y1AMxR4wgJiC0gKaNRDykEBOpMSuqo3slb6ujG4T++f2f89+p2e+LE0pFbKwCZ1cp2xioSYiB7gN7KvRdHEEFWEa.tOM1WNlZwf7CDbQvPAm4lOBnGfOeYv.HLO1K0fvG5nJwMgxZazCKfPyGM+karOFERCQ+DLi9B6p6KttyqOij.WK8CK+vHCes+elgumHVx3CNfhApuF6NP8.ELwJ1XcRaCQia5Hcdqw8H6.bO8j+.GoKZOtMG0h1iW7eEcLh5FJdoaRWMpX4ORSAsat9eAqA4.0bK6I8AQZ0rkwHLi3KccUt6Gh9mx44qmAddzLvyimAd9lYfmmLC77sy.Oe20xipXzlwRwnjqhHgtcz+aDllIOMRG0a7m.HbUuP.
            

            However you need to think about how to stop that thingie because it will go on forever now (all you need to do is to call Arpeggiator.1.setAttribute(Arpeggiator1.Hold, false) at some point.

            LindonL 1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @Christoph Hart
              last edited by

              @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...

              HISE Development for hire.
              www.channelrobot.com

              LindonL 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart
                last edited by

                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 range 0-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.

                Casey KolbC 1 Reply Last reply Reply Quote 3
                • LindonL
                  Lindon @Lindon
                  last edited by

                  except this is also broken in some way --- the hold button wont turn off programatically - well it will but the arp just keeps playing...

                  HISE Development for hire.
                  www.channelrobot.com

                  LindonL 1 Reply Last reply Reply Quote 0
                  • LindonL
                    Lindon @Lindon
                    last edited by Lindon

                    ..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...

                    HISE Development for hire.
                    www.channelrobot.com

                    1 Reply Last reply Reply Quote 0
                    • Casey KolbC
                      Casey Kolb @Christoph Hart
                      last edited by

                      @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! ๐Ÿ˜€

                      Casey Kolb
                      Founder & CEO of Lunacy Audio
                      Composer | Producer | Software Developer

                      1 Reply Last reply Reply Quote 0
                      • Casey KolbC
                        Casey Kolb
                        last edited by Casey Kolb

                        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
                        

                        Casey Kolb
                        Founder & CEO of Lunacy Audio
                        Composer | Producer | Software Developer

                        1 Reply Last reply Reply Quote 0
                        • Christoph HartC
                          Christoph Hart
                          last edited by

                          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.

                          1 Reply Last reply Reply Quote 0
                          • Casey KolbC
                            Casey Kolb
                            last edited by

                            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.

                            Casey Kolb
                            Founder & CEO of Lunacy Audio
                            Composer | Producer | Software Developer

                            1 Reply Last reply Reply Quote 0
                            • Christoph HartC
                              Christoph Hart
                              last edited by Christoph Hart

                              Yeah, I also wasn't very satisfied with my answer...

                              Link Preview Image
                              - arp: fixed first notes at chord mode not being played ยท christophhart/HISE@5a709c8

                              The open source framework for sample based instruments - - arp: fixed first notes at chord mode not being played ยท christophhart/HISE@5a709c8

                              favicon

                              GitHub (github.com)

                              1 Reply Last reply Reply Quote 2
                              • Casey KolbC
                                Casey Kolb
                                last edited by

                                Wicked! Will give it a spin.

                                Casey Kolb
                                Founder & CEO of Lunacy Audio
                                Composer | Producer | Software Developer

                                1 Reply Last reply Reply Quote 0
                                • Casey KolbC
                                  Casey Kolb
                                  last edited by

                                  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!

                                  Casey Kolb
                                  Founder & CEO of Lunacy Audio
                                  Composer | Producer | Software Developer

                                  LindonL 1 Reply Last reply Reply Quote 0
                                  • LindonL
                                    Lindon @Casey Kolb
                                    last edited by Lindon

                                    @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

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    1 Reply Last reply Reply Quote 0
                                    • Casey KolbC
                                      Casey Kolb
                                      last edited by

                                      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.

                                      Casey Kolb
                                      Founder & CEO of Lunacy Audio
                                      Composer | Producer | Software Developer

                                      LindonL 1 Reply Last reply Reply Quote 0
                                      • LindonL
                                        Lindon @Casey Kolb
                                        last edited by

                                        @Lunacy-Audio perhaps you could push these to the git hub repository?

                                        HISE Development for hire.
                                        www.channelrobot.com

                                        LindonL Casey KolbC 2 Replies Last reply Reply Quote 0
                                        • LindonL
                                          Lindon @Lindon
                                          last edited by

                                          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...

                                          HISE Development for hire.
                                          www.channelrobot.com

                                          1 Reply Last reply Reply Quote 0
                                          • Christoph HartC
                                            Christoph Hart
                                            last edited by

                                            Ah yes, that might be true I didn't check tied notes.

                                            LindonL 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            26

                                            Online

                                            1.8k

                                            Users

                                            12.1k

                                            Topics

                                            104.9k

                                            Posts