HISE Logo Forum
    • Categories
    • Register
    • Login

    New feature: Release Start

    Scheduled Pinned Locked Moved Feature Requests
    49 Posts 8 Posters 2.3k 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.
    • SimonS
      Simon
      last edited by

      What would be the best way to temporarily disable the behavior on a per-event basis? When scripting legato, you sometimes want the sustain to go to a release sample, sometimes to a legato sample.

      d.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey @Simon
        last edited by

        @Simon I've discussed the same issue with Christoph and I believe he is working on a solution but for now use a separate sampler for releases - actually there are a few advantages to this so I'll probably keep on doing it this way for most of my libraries.

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        1 Reply Last reply Reply Quote 1
        • gorangroovesG
          gorangrooves
          last edited by

          Stopping by to say hi! It's been a while.

          @Christoph-Hart I'd like to point out one crucial detail regarding release notes, which I tackled in my software with the hi-hat open/closed release notes.

          It is not enough to just have a release note for a sample. For the playback to sound natural, the gain of the release sample must match that of the main portion of the sample at the moment when a note is released.
          So, if you release a note when the peak is at -15db, the release note gain should not be the same as when you release the note with a peak at -30db.

          When I say that "it should match," I do not mean necessarily that the release note must be played at the same gain value as the main sample when released (eg. -15db sample peak with -15db peak of release note). I think that the overall balance (main sample/ vs release) needs to be adjusted by ear, as I have done, but a simple formula can get a good ratio between main sample and release note. Adjustment by ear is to get an overall loudness of all release notes in the sampler.

          When done properly, any released note sounds natural.

          Goran Rista
          https://gorangrooves.com

          Handy Drums and Handy Grooves
          https://library.gorangrooves.com

          1 Reply Last reply Reply Quote 0
          • SimonS
            Simon
            last edited by

            Read the link, Release Start already includes exactly what you're describing!

            gorangroovesG 1 Reply Last reply Reply Quote 0
            • gorangroovesG
              gorangrooves @Simon
              last edited by

              @Simon oh, sweet! Thank you for that. Then, the feature is truly wonderful 😃

              Goran Rista
              https://gorangrooves.com

              Handy Drums and Handy Grooves
              https://library.gorangrooves.com

              1 Reply Last reply Reply Quote 1
              • d.healeyD
                d.healey @Orvillain
                last edited by d.healey

                If I play a note and release quickly I get a kind of pop sound as the release is triggered. I've tried various start options and adjusting the gain envelope but it doesn't seem to change it.

                Also, is there a way to toggle the releases feature on/off? I'm thinking some users prefer to disable release triggers.

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey
                  last edited by d.healey

                  I'm at the release trigger stage of my current project and would like to use this nice shiny feature. In this post I'm just going to summarise some of the things we've discussed so far and suggest a couple of extra.

                  1. It should be possible to disable/enable release triggers via scripting, preferably per event - per sampler or globally would be ok but less flexible.

                  2. During legato transitions releases should optionally be disabled - depending on how 1. is implemented we could manage this ourselves via scripting.

                  3. If it's disabled during legato it doesn't necessarily mean it should be disabled when chords are played, so some kind of optional chord detection is required - again if 1. is flexible enough we can handle all these weird scenarios ourselves.

                  4. Although we already have various volume matching modes, it would be good to be able to dynamically add a gain offset via scripting which is applied after the matching.

                  5. Currently if I hold a note so it played through the sample and past the release start, when I release the note it will jump back to the release start point. I don't think this should happen, I think it should just turn the note off and the envelope can take over - unless the sustain pedal is down.

                  More generally, how should sustain pedal be handled? Currently it doesn't seem to affect the releases. I think in some cases we might want the note to not reach the release as long as the sustain pedal is down (assuming the sample is looped).

                  @Christoph-Hart If any of this is beyond the intended scope of the feature, let me know and I'll just carry on with my current system.

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

                  Christoph HartC 1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart @d.healey
                    last edited by

                    @d-healey nope this are all good suggestions - I‘ll add a script API method to disable release triggers per voice using the event ID - this should be enough for most of your feature requests, the other things are minor issues that I can fix easily.

                    d.healeyD 1 Reply Last reply Reply Quote 2
                    • d.healeyD
                      d.healey @Christoph Hart
                      last edited by

                      @Christoph-Hart said in New feature: Release Start:

                      per voice using the event ID - this should be enough for most of your feature requests,

                      Yeah I think that is a great idea :) thanks.

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      Christoph HartC 1 Reply Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart @d.healey
                        last edited by

                        @d-healey Alright, this is implemented now.

                        • sustain pedals are now correctly supported - it 100% mimics the behaviour of the voice stopping logic now
                        • the sample will never jump back in time to the release offset - if the sample has already played the release trail, it just continues playing at the current position.
                        • you have a Sampler.setAllowReleaseStart() function that accepts an event ID for per event setting (or -1 for globally enabling / disabling the feature).

                        Let me know if you find other quirks. The goal is to get this usable in real projects, so don't be shy :)

                        d.healeyD SimonS 4 Replies Last reply Reply Quote 2
                        • d.healeyD
                          d.healey @Christoph Hart
                          last edited by

                          @Christoph-Hart Oh fast work, nice! I'll try it out this evening. Thanks.

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          1 Reply Last reply Reply Quote 0
                          • SimonS
                            Simon @Christoph Hart
                            last edited by

                            @Christoph-Hart You just couldn't hold off on giving us more goodies, now I have to tweak my project to make use of this right away!

                            1 Reply Last reply Reply Quote 1
                            • d.healeyD
                              d.healey @Christoph Hart
                              last edited by

                              @Christoph-Hart Seems to be working nicely. At first I was trying to disable it in the on note on callback and wondering why it wasn't working 👶

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                d.healey @Christoph Hart
                                last edited by d.healey

                                @Christoph-Hart What about this scenario.

                                I have a toggle switch to globally enable/disable release triggers.

                                Now let's say the user has enabled this switch, so I'm calling Sampler.setAllowReleaseStart(-1, true) and release triggers are globally enabled.

                                But then they play a legato transition, so for that individual event I want to disable release triggers, I call Sampler.setAllowReleaseStart(eventId, false) - only it doesn't disable it, the global setting overrides it.

                                I think it should be the other way around, that individual events can override the global setting.

                                I also noticed a little glitch in the sample editor when the sample has a loop. The playback does jump to the release portion, I can hear it, but visually it's just hanging around in the loop. In this gif I released the key almost as soon as I pressed it - you can see the cursor jumps to the loop instead of to the release.

                                Peek 2025-01-27 18-21.gif

                                Libre Wave - Freedom respecting instruments and effects
                                My Patreon - HISE tutorials
                                YouTube Channel - Public HISE tutorials

                                1 Reply Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey
                                  last edited by

                                  Does lazy load not affect release triggers? I'm seeing some RAM is still being used.

                                  Libre Wave - Freedom respecting instruments and effects
                                  My Patreon - HISE tutorials
                                  YouTube Channel - Public HISE tutorials

                                  SimonS 1 Reply Last reply Reply Quote 0
                                  • SimonS
                                    Simon @d.healey
                                    last edited by

                                    One last thing preventing me from using this is the situation with envelopes. I would need to script additional logic to change the envelope between two different settings, one for when playing back sustains and one for releases. Although I appreciate that that's even possible in HISE (it isn't in Kontakt), keeping envelope adjustment in the UI is much nicer.

                                    I think a "ReleaseXfade" parameter in the mapping editor would be ideal. A quick fix might be to re-use the loop xfade time and gamma.

                                    I'd also prefer releases to play as oneshots, so the natural release sound isn't affected by an envelope. I usually bake the final short fade out during render, but in HISE I would adjust the fade out with the Sample Editor Envelope.

                                    d.healeyD 1 Reply Last reply Reply Quote 0
                                    • d.healeyD
                                      d.healey @Simon
                                      last edited by

                                      @Simon said in New feature: Release Start:

                                      one for when playing back sustains and one for releases.

                                      Only the release portion of the envelope affects the release triggers.

                                      Libre Wave - Freedom respecting instruments and effects
                                      My Patreon - HISE tutorials
                                      YouTube Channel - Public HISE tutorials

                                      SimonS 1 Reply Last reply Reply Quote 0
                                      • SimonS
                                        Simon @d.healey
                                        last edited by

                                        @d-healey Interesting, I thought the attack was affected as well. When I set a long attack on the sustain groups I could have sworn I no longer heard the release sample. I'll check again to see what I did!

                                        SimonS 1 Reply Last reply Reply Quote 0
                                        • SimonS
                                          Simon @Simon
                                          last edited by Simon

                                          In any case I would still need to script toggling between two release times depending on whether it's going to a legato (~130ms) or a release sample (infinite/as long as possible/just have a long Hold time).

                                          d.healeyD 1 Reply Last reply Reply Quote 0
                                          • d.healeyD
                                            d.healey @Simon
                                            last edited by

                                            @Simon said in New feature: Release Start:

                                            it's going to a legato (~130ms) or a release sample

                                            Wouldn't you just disable the release entirely for legato transitions and use a scripted fade?

                                            Libre Wave - Freedom respecting instruments and effects
                                            My Patreon - HISE tutorials
                                            YouTube Channel - Public HISE tutorials

                                            SimonS gorangroovesG 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            44

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.8k

                                            Posts