HISE Logo Forum
    • Categories
    • Register
    • Login

    3 knobs with 3 layers, all sampled (3x3x3=27 samples). Best practice for implementation?

    Scheduled Pinned Locked Moved General Questions
    12 Posts 2 Posters 332 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.
    • andersnaessssA
      andersnaessss
      last edited by

      I have three FX knobs (fxA, fxB, fxC) with three velocity/intensity layers (pos1, pos2, pos3), but I want to sample all possible states using a modular synth setup and guitar pedals. I will then have 27 discrete sample groups (one for each combination of velocities/intensities across the three knobs). I also want to be able to crossfade continuously between these 27 combinations, such that “fxApos1_fxBpos1_fxCpos1” can be crossfaded to, say, “fxApos3_fxBpos2_fxCpos3” etc.

      I wonder what the best way to implement this would be? (I guess it would be much easier to just use HISE-FX, but I have some modules that I want to use for the purpose.)

      Are some of you sample based hise-users doing sampling this way? Say, if you have a tape machine, a vintage echoplex and a nice distortion pedal that you want to control with knobs in hise like these were routed using internal FX?

      Appreciate any suggestions or guidance of best practice doing this!

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

        @andersnaessss

        You could put each sample set into a separate sampler and use gain modulators to control the volume of each one, assigning your knobs to these gain modulators to control your crossfades.

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

        andersnaessssA 1 Reply Last reply Reply Quote 0
        • andersnaessssA
          andersnaessss @d.healey
          last edited by

          @d-healey
          Thank you for your reply David! It might be too late in the day for me to get this properly, but you are saying that I should make 27 separate samplers and crossfade between them(?). It still seems to me like there needs to be some advanced routing going on, apart from just gain modulation, since the knobs need to be aware of the state of the other knobs before playing the correct sample.

          For example: When turning knobB to position2, there are 9 possible samples that can be played, depending on the state of the other knobs. If knobA and knobC is both in position1, then sample "A1_B2_C1" should play (when knobB is turned to position2), but if KnobA is in position1 and knobC in position3, then sample "A1_B2_C3" should play, etc. I don't think I understand how to do this by just using gain modulations, but I might be missing something obvious here.

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

            @andersnaessss I think it would require 9 samplers, but perhaps I'm not 100% following the goal. Are the samples triggered by playing MIDI notes or only by moving knobs?

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

            andersnaessssA 1 Reply Last reply Reply Quote 0
            • andersnaessssA
              andersnaessss @d.healey
              last edited by

              @d-healey

              Thanks for the patience to sort this out with me. I'm probably not explaining myself so clearly. Maybe I can give a better explanation by using three-way toggle switches as examples (I'm sorry in advance for the overly detailed explanation, I just want to make sure that I'm not forgetting anything)

              There are three toggle switches each with three states. Call the states 0, 1, 2. There are 27 possible combinations that the set of toggle switches can have (0-0-0, 0-0-1, ... 2-2-2). And I want to sample each of these 27 combinations, for each midi note. Every midi note will have 27 samples. Each of the 27 combinations (on each midi note) correspond to a specific toggle switch combination. Depending on the specific combination of the toggle switch a specific sample will play.

              Say that the samples are recordings of triangle waves into three guitar pedals. The pedals are Sunset, BlueSky, Flint. Each of the pedals are recorded with varying wet signals, at 0% (0), 50% (1), or 100% (2). Together there are 27 combinations of wet signals.

              The samples are named in the following terminology: "Sun[X]_Blu[X]_Fli[X].wav"

              The toggle switch combination 0 - 0 - 0 plays the specific sample called "Sun0_Blu0_Fli0.wav", that is the sound of the triangle wave into Sunset at 0% wet, BlueSky at 0% wet and Flint at 0% wet.

              0 - 1 - 1 plays "Sun0_Blu1_Fli1.wav", a sample of Sunset at 0%, BlueSky at 50% and Flint at 50%

              2 - 2 - 1 = "Sun2_Blu2_Fli1.wav" etc.

              How do I get HISE to calculate which sample is played, based on the specific toggle button combination? And what is the best way to implement (and script) this? Using broadcasters? (and the further question: if instead of toggle switches I'm using knobs, and I want to smoothly crossfade between each sample, how is this best implemented?)

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

                @andersnaessss Thanks for the extra info, how are the samples triggered though, is it by incoming MIDI?

                For crossfading it's necessary that all samples are actively playing and then we can control the volume between them for crossfading - that's the easy part, we just need to figure out the best way of mapping and triggering the samples.

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

                andersnaessssA 1 Reply Last reply Reply Quote 0
                • andersnaessssA
                  andersnaessss @d.healey
                  last edited by

                  @d-healey

                  Oh, I see about the crossfading, like a big mixing console. (Would that be very taxing on the CPU/RAM then?) Yes, I was thinking incoming midi.

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

                    @andersnaessss said in 3 knobs with 3 layers, all sampled (3x3x3=27 samples). Best practice for implementation?:

                    (Would that be very taxing on the CPU/RAM then?)

                    I think it should be fine.

                    @andersnaessss said in 3 knobs with 3 layers, all sampled (3x3x3=27 samples). Best practice for implementation?:

                    Yes, I was thinking incoming midi.

                    Ok so walk me through in baby steps.

                    I press Middle C on my keyboard, what should happen?

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

                    andersnaessssA 1 Reply Last reply Reply Quote 0
                    • andersnaessssA
                      andersnaessss @d.healey
                      last edited by

                      @d-healey

                      Sure!

                      If you press middle C, then 1 of 27 samples will play, depending on the position of three knobs (or a crossfade of several samples, but let's just assume first that there is no crossfade). Using the same guitar pedal example as in my last comment:

                      If you press middle C while all three knobs are set to 0%, then HISE will play the the specific sample called "#60_Sun0_Blu0_Fli0.wav", that is the recording of a middle C triangle wave into Sunset at 0% wet, BlueSky at 0% wet and Flint at 0% wet.

                      If you press middle C while the third knob is set to 100%, while the other two are still set to 0%, then HISE will play the specific sample called "#60_Sun0_Blu0_Fli2.wav"

                      If you press middle C while all knobs are set to 50%, then HISE will play the specific sample called "#60_Sun1_Blu1_Fli1.wav". (This sample is not the same as if I'd made three samples "#60_Sun1.wav" + "#60_Blu1.wav" + "#60_Fli1.wav" and blended them together, as the single sample has recorded their interaction.)

                      For a crossfade state: If you play middle C while knob1 is set to 20%, knob2 is set to 60% and knob3 is set to 90%, then HISE will play a crossfade between ... I'm not sure here.. but a calculation of several samples.

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

                        @andersnaessss Then I think 27 samplers is required, or we might be able to make use of group crossfading, in addition to using gain modulators, which will reduce the number of samplers required.

                        I think you should start with a simple test project, maybe with just 3 samples, and play around with crossfading and group crossfades to see what mapping setup you prefer, and which uses the least number of samplers. Then once you've got this proof of concept down it should be fairly easy to expand it to the whole thing.

                        I'd go with crossfading then you don't have to worry about triggering specific samples by scripting as all samples for each note will trigger by MIDI.

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

                        andersnaessssA 1 Reply Last reply Reply Quote 0
                        • andersnaessssA
                          andersnaessss @d.healey
                          last edited by

                          @d-healey Yes, you are probably right. Start small, experiment and scale up.

                          I just figured that other people had done something similar and that there was some sort of best practice of doing this thing. But yes, I'll start experimenting with something simpler and take it from there. Thanks again for the suggestions and pointers!

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

                            @andersnaessss I have an old video about crossfading dynamics which might be helpful - https://youtu.be/0cn1l8231n4

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

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

                            21

                            Online

                            1.7k

                            Users

                            11.8k

                            Topics

                            102.7k

                            Posts