HISE Logo Forum
    • Categories
    • Register
    • Login

    Global Envelopes - The "filtered" voices problem.

    Scheduled Pinned Locked Moved General Questions
    13 Posts 3 Posters 120 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.
    • LindonL
      Lindon
      last edited by

      So I have a problem with Global envelopes...I'd really like to use them, but..in a multi-voice system they are problematic....here's why (perhaps someone knows how to get around this)

      Here's a simple instrument structure that explains the problem....

      c474f859-3b7a-47c1-af9e-9f44ec329c79-image.png

      Right so we have 4 "voices" in containers 1 thru 4... each is using the global envelope......

      At the top we have an arpeggiator, which in our case is generating notes on Channel 16.....

      Each voice has a script processor (ArpFilter) that is looking at the incoming note channel....

      Voice 1 has its ArpFilter set up to ONLY allow notes from Channel 16 into the Sine Wave Generator, all the others have the opposite -they DONT let any note thru that is on Channel 16.....

      So we turn the arpeggiator OFF and play a note - Voice 2-4 make a sound and Voice 1 is silent.....all good.

      We turn the arp ON and Voices 2-4 still play the incoming note...correct. and Voice 1 now plays arpeggiated versions of these held notes - also correct....

      BUT...... Voices 2-4 are having their envelopes triggered for all the arpeggiated notes, even though the "voice" isnt playing them....

      The Global Envelope system is "jumping over" my ArpFilters....

      My (hack) solution is sadly to treat Global Envelopes as "dummy" envelopes - no voice actually uses them, when the UI changes values in the Dummy Envelope - it has to go round every Voice setting its dedicated envelope to these values.... so we get this:

      9e6cd429-05bc-41c8-b74f-54b530259c2a-image.png

      ..it works and thats fine - but I cant help thinking there's a better way..is there?

      HISE Development for hire.
      www.channelrobot.com

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

        @Lindon said in Global Envelopes - The "filtered" voices problem.:

        ..it works and thats fine - but I cant help thinking there's a better way..is there?

        That's the method I use, but I have an AHDSR controller module that automatically handles setting all the envelopes and I just connect my UI controls to that module.

        Link Preview Image
        RhapsodyBoilerplate/modules/AhdsrController.js at main

        RhapsodyBoilerplate - Boilerplate code used by Rhapsody.

        favicon

        Codeberg.org (codeberg.org)

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

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

          @d-healey yeah actually implemented in a similar way here, except of course I use multiple global envelopes, and then define a UI approach to dynamically assign one of them to the target I want to use it on - gain envelope, filter envelope etc. so we end up with 6 Global (dummy) envelopes each assignable to one of 30 different "targets" - it gets ugly pretty quickly...hence my post.

          HISE Development for hire.
          www.channelrobot.com

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

            @Lindon how would you expect this to work? If the sound generators are not being triggered at the same time how should one envelope create a signal for all targets?

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

              @Christoph-Hart said in Global Envelopes - The "filtered" voices problem.:

              @Lindon how would you expect this to work? If the sound generators are not being triggered at the same time how should one envelope create a signal for all targets?

              It shouldn't.

              I guess Im looking for a "script processors for envelopes" - where I can tell the Global envelope:

              "If the note that is triggering you has channel == 16, then send your data to these destinations [some list of receivers]

              else

              send it to these destination [some other list]"

              Probably not a practical idea....but if it were possible then you could set up modulators in all sorts of configs and have them applied to different voices as and when you wanted........
              giving you a very powerful modulation system.

              HISE Development for hire.
              www.channelrobot.com

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

                @Lindon the event ID is a much better identifier than the channel.

                You somehow need to achieve that all notes (both the ones that you play on the keyboard and the ones that are generated by the arpeggiator are fed into the global envelope container, then it will create an envelope signal for all events that can be picked up by whatever sound generator uses one of the event IDs to play its voices.

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

                  @Christoph-Hart er... I think thats sort of what I'm doing now (using the more gross event attribute of Channel) I don't see how envelope receptors(Global Envelope Modulator 1-4 in the first example) have access to event IDs... and if they dont they are just going to act on any note event arriving - which is our problem....

                  replacing Channel filtering with EventID filtering doesnt change the problem - unless Im mis-understanding the solution here...

                  HISE Development for hire.
                  www.channelrobot.com

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

                    @Lindon actually looking at my real project and the example I posted first there is a diference...

                    -perhaps the version I showed in the first post would work!! but doesnt work without the container....

                    HISE Development for hire.
                    www.channelrobot.com

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

                      @Lindon well no, load this snippet and hold a chord, the synth plays the chord notes and then, if we hold for a few seconds we get the envelope retriggering because of the arp notes(which we are ignoring in the synth).

                      For some reason it seems to sort of work in single note playing... go figure..

                      HiseSnippet 1755.3oc6Zs0TaaDEVJlMIPR.RBcR5sYzC8AnWXPFBAZmLXtXBTvAWDgj2RWjN1dGj2UUZEMLc5Lc5erleB8s9Zduuj+Asq1UxVBaLBGRBjD+j04rmy9sm8rmKqTUelMDDv70zGZmC8.M8qirNjxarbCLgps9JZ5CipfC3fughzRG5gCB.GMc8BOLhf9fCnI+8pEVB6ho1PaRZZ6xH1vljlDdapUKsAw0cUrCrCoYpQOSo0sYzkYtrPAdJflRyCauOtN7HbzvtDRaMbPCM8uFUr1d1Eqc+omybdy4u+LyaZdu41aloJZ6bu4md5Ym1oVw4vyNmPnKW1gvY9VbLGBzzGXIlygVMX+JUMA6RBH64BQOXpYIlYE4UYtNQKwn+qsbChqS0DCUflPoUaa1JnLaigpPbHsn217MpjgQaIRa.0uTufmYZ3MU9gmdmv6FnE88f50IXwrEuslhhYVTUHKpJb7nJsQqSjnsLixAJWfoaG8WelqXnbIhFFYY6S73KEx4LpFwIhjBEwjN.6FlwWRKG53Fnsg.fmUEH8dJtkKwA7khOB5QgMs3fWLsVJXfbpfqghjVhgSwBHkBFUp.q8Ic.A8bZBDZf4y2.N7zaHytP7.vYCJauipf6VpCELZrBVl0bO1RrmKUwsPVvuDBhHBsHmuESJXbCzV1b7Av1XZc3zueNHxpQXsZtP+4McMTYJV3puCANNnOfR3akYtqJhaIUvXBSPSxNLJjhQKM8eheNXNVS+yQlyNY2+cJlqcAWlMgeXtlqZeyRKN4jyuwJSN4zgUUOm645VnMAZcdi7MS6GMS69ihY5orppm0xmKzMQhHoTJ3ZAtfcTrqd6A0UkbGzVgbuP9wnpDWByR4ESUpVVDazOQgswzkxMlFIRIkoNcnhQyoq4kQqIxBzE25TA+GXmX.Tg4D5FEnOcdonr2wLHrrI1WOJrcfvSJc18W6jUlcKEQNg6MQUIb6FcGuWpK3Ujy4MMdakasbsZBOp1fc.zpO8rMO+IAkqpfxmgdnKaOraaCnvQRfJPky+KiYazhuQqAX1iJ6967VYmWtqr6n0XLP9pwn2VD8AN2TX1qiu9s6XaJ3L8zoY+UJ4nJHeEzhqsh01wmJk+2nL8.QpGOHqSTEFk40fQI1o8a1F39j50Etjo6bf3wbw9G6paQNWjiY4P+CR7p9i+8md4Bq.13CSSU9SM3VT94+rjhxlf.koGnLBZpmkpqEgW3WxJLfm4jvruXaQ1CbPFe6x1LwNEzqci9tDZcTNcZDU3KWjFxSdmuClObBVU6HmuA60QR2hKB10QPwNrWHLrCihOKcQvz1y5OJ7gY8GayB4DZ8JXQ.8mKhTE05rHAuncOUQsAIkDG+7TIctYATmoRZUHloYRM8QLMSX1kZb53BptNJWEw7p21Ewzu2tD5cPQLmhZrz67DyMiaOoMGUYLJpsQW1sGEWM8+AYTKjZGcnxfQeDiCaQGehg9sgFjTa7JBAw0gIqCIcaM9DFO3AFlyNwPCNXBWRcJyGJe.P4iy8CgI9gg98g5Pq0poT6Q3E2rkK32U1QNA98RvwogM2C7+VCYuXsFnv5j07ixm42VcmYoFHitNkv2xCnG6QwVWzl1iWeknduEF3XZhw4A9bRDDzWANP3vq10FTjXKXeNy6i8L9AYOiijId5C8YgdRjLlh.DPB.eCI82xwUUW51pURqwkw99DvecpC77TS9e0ZeuCNOlRBDcfHgxhMYgTdZPGycEfGRy.8XFVd9.1IsDQn2BDP0QpxfL94E5qy5YONkZ7mPJhq7dQetu9gSJjO3dBYwFLAiVjldtPRyrwwPVApgCc4sn1mc31i1ZaSYrRczd4WUZSQkMX+2bcXpmysq6ltCSi2OxBT3C9r.mTquQgGi1rO22ktJf84DndGETuF5I3C.Y5TIJ+D4y0X9MMdHH5Woy285a7KdU85z1wGSC7XAfYZMm7tpBxP8HRTrqRTL68nE40X1IoLiJxTrpvTjZbWsTBwhoIVESynLwyYzTERpD+ubAU4CpT0aEXKLLx25cp8+pgtAvSHN7FloErM4hoIuF12QrGlIF+Y16H+bzGSv61b4m8WXc7WzxmFec5IYvagdIv+hjKaOgc6ac+juM6WsPWx0qo0006iCfcvxETTuGGHZISoWIQYOaQegKhl1nfrASM8uqWutlu+n279YVAAeLw5agSKhPVWbJg5NHQXzhFxsai2862uMt2wONG4eNZhs8YOyVcaXQAgupjhX+iJ+v8FDUI5YCyN+ZEZJRm8La6rppCAK1uBNc+J3L8qf2qeEb19Uv62uBN2IKXT0FKFxYMUm2EUZUsrJUktpHK4Qes+GDHETP
                      

                      HISE Development for hire.
                      www.channelrobot.com

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

                        @Lindon would a script envelope help?

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

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

                          @d-healey said in Global Envelopes - The "filtered" voices problem.:

                          @Lindon would a script envelope help?

                          I looked at those recently - I cant see how it helps, unless I misuse/understand these then they are fine for defining a "shape" for want of a better word - but I cant see how I can direct its output to a named destination...

                          HISE Development for hire.
                          www.channelrobot.com

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

                            @Lindon said in Global Envelopes - The "filtered" voices problem.:

                            direct its output to a named destination

                            You want to route the output of the envelope to somewhere else? Doesn't it just flow up the chain to the master?

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

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

                              @d-healey said in Global Envelopes - The "filtered" voices problem.:

                              @Lindon said in Global Envelopes - The "filtered" voices problem.:

                              direct its output to a named destination

                              You want to route the output of the envelope to somewhere else? Doesn't it just flow up the chain to the master?

                              • not a Global modulation Envelope no...

                              HISE Development for hire.
                              www.channelrobot.com

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              27

                              Online

                              1.8k

                              Users

                              12.1k

                              Topics

                              105.1k

                              Posts