Forum
    • Categories
    • Register
    • Login

    Wavetable creation

    Scheduled Pinned Locked Moved General Questions
    35 Posts 4 Posters 236 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 @dannytaurus
      last edited by

      @dannytaurus said in Wavetable creation:

      @DanSound Ah, OK. My project only uses one wavetable so I'm not switching.

      From the docs it looks like you can load but it'll probably need scripting.

      https://docs.hise.dev/hise-modules/sound-generators/list/wavetablesynth.html

      Data formats

      The wavetable synthesiser can be fed with two different data types:

      • An audio file
      • The custom wavetable format .hwt (.HiseWaveTable)

      Using audio files

      With the recent rehaul of the Wavetable Synthesiser at HISE 4.1.0 the wavetable synthesiser is now also a AudioSampleProcessor , which means that it has an audio file slot that you can use to load any arbitrary wavefile into the wavetable synthesiser. This heavily streamlines the process of creating wavetables as well as provides the user the ability of loading own wavetables. You can even create wavetables programatically and send it directly to the synthesiser to be played back.

      Whilst we are here, the documentation is pretty light on the required specification of these drag-able/load-able wavefiles, has any one any idea how we might generate a meaningfully useful wavefile containing (say) 20 wavetables we can modulate thru?

      HISE Development for hire.
      www.channelrobot.com

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

        @Lindon So far I only managed to recreate Basic Mini from Serum as a wavetable (not wav) and it sounds and looks good. But I'm also looking for a way to create something like a wavetable from this post https://forum.hise.audio/post/86674

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

          @DanSound said in Wavetable creation:

          @Lindon So far I only managed to recreate Basic Mini from Serum as a wavetable (not wav) and it sounds and looks good. But I'm also looking for a way to create something like a wavetable from this post https://forum.hise.audio/post/86674

          yeah that not really that helpful - especially for those without Serum, and Im pretty sure thats not going to be a requirement, anyone?

          HISE Development for hire.
          www.channelrobot.com

          D 1 Reply Last reply Reply Quote 0
          • OrvillainO
            Orvillain
            last edited by

            TBH, and certainly IMO.... Wavetable creation is not as optimized or fluid as it could be. The wavetable creator often crashes for no discernable reason, and the resynthesis modes do not sound as good as the resample mode does - when it works.

            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
            Crafting sound at every level. From strings to signal paths, samples to systems.

            D 1 Reply Last reply Reply Quote 0
            • D
              DanSound @Orvillain
              last edited by

              @Orvillain I’m experiencing the same issues, but this video makes me want to figure out a way to solve it.

              https://www.dropbox.com/scl/fi/tchw8r3e0wtm5sbr23ryv/WT-Demos.mp4?rlkey=qzya4k2dnq40vsrsszi3jhaff&st=20k50khn&dl=0

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

                @Lindon It seems that I managed to make a working PWM wavetable pwmDSonetrack.hwt.zip

                I can explain the process if this is something you're looking for.

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

                  @DanSound said in Wavetable creation:

                  @Lindon It seems that I managed to make a working PWM wavetable pwmDSonetrack.hwt.zip

                  I can explain the process if this is something you're looking for.

                  Yes I think the procss needs documenting...

                  HISE Development for hire.
                  www.channelrobot.com

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

                    @Lindon

                    I used Serum to create the wavetables, but anything similar like Vital or dedicated wavetable software should work.

                    1. Export the wavetable as a single WAV file, not sliced into multiple files.

                    2. Drop the file into a Samplemap, fill all keys from C-2 to G8, and save it.

                    3. Open the saved Samplemap with the Wavetable Creator. The only parameter I change is Source Length to get the desired result.

                    Every time you change a setting, click the large circular arrows icon to refresh the preview. As far as I understand, this rebuilds the waveform based on your current settings.

                    After that, save the wavetable and open it with the Wavetable Synthesizer.

                    For some reason, all my wavetables sound too high, so I use the Transposer to bring them to the correct range.

                    Hope this helps.

                    OrvillainO LindonL 2 Replies Last reply Reply Quote 0
                    • OrvillainO
                      Orvillain @DanSound
                      last edited by

                      @DanSound You should set the root note of your file to the same root note played when sampling the source. That will cure your transpose issue.

                      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                      Crafting sound at every level. From strings to signal paths, samples to systems.

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

                        @DanSound said in Wavetable creation:

                        @Lindon

                        I used Serum to create the wavetables, but anything similar like Vital or dedicated wavetable software should work.

                        1. Export the wavetable as a single WAV file, not sliced into multiple files.

                        2. Drop the file into a Samplemap, fill all keys from C-2 to G8, and save it.

                        3. Open the saved Samplemap with the Wavetable Creator. The only parameter I change is Source Length to get the desired result.

                        Every time you change a setting, click the large circular arrows icon to refresh the preview. As far as I understand, this rebuilds the waveform based on your current settings.

                        After that, save the wavetable and open it with the Wavetable Synthesizer.

                        For some reason, all my wavetables sound too high, so I use the Transposer to bring them to the correct range.

                        Hope this helps.

                        Well if it works for you fine, but I was more thinking...

                        I have 200 single cycle wave files, how do I convert these into a wave file that I can load into the wavetable player....

                        I assume step 1 =

                        convert each of these files into a file of length = power of 2 , like say 1024 or 2048.....

                        step 2 anyone?

                        HISE Development for hire.
                        www.channelrobot.com

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          DanSound @Orvillain
                          last edited by

                          @Orvillain Thanks! Probably that's the issue.

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

                            @Lindon Step 2 = load it into Sampler's Samplemap, stretch from C-2 to G8 and save it.

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

                              @DanSound said in Wavetable creation:

                              @Lindon Step 2 = load it into Sampler's Samplemap, stretch from C-2 to G8 and save it.

                              see this:
                              https://docs.hise.dev/hise-modules/sound-generators/list/wavetablesynth.html

                              and the text there in:

                              Using audio files
                              With the recent rehaul of the Wavetable Synthesiser at HISE 4.1.0 the wavetable synthesiser is now also a AudioSampleProcessor , which means that it has an audio file slot that you can use to load any arbitrary wavefile into the wavetable synthesiser. This heavily streamlines the process of creating wavetables as well as provides the user the ability of loading own wavetables. You can even create wavetables programatically and send it directly to the synthesiser to be played back

                              so thats step 2 ONLY if you are building hwt files I think.

                              HISE Development for hire.
                              www.channelrobot.com

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

                                @Lindon So far, I don’t see any other way to make it work. Maybe it’s possible to use just audio files with some scripting, but there’s no documentation on that at all, so I’ll stick with hwt files for now.

                                LindonL dannytaurusD 2 Replies Last reply Reply Quote 0
                                • LindonL
                                  Lindon @DanSound
                                  last edited by

                                  @DanSound ..which was my point I think....

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  1 Reply Last reply Reply Quote 1
                                  • dannytaurusD
                                    dannytaurus @DanSound
                                    last edited by dannytaurus

                                    @DanSound @Lindon Here's how to switch between audio file wavetables:

                                    Engine.loadAudioFilesIntoPool();
                                    const wt = Synth.getAudioSampleProcessor("Wavetable Synthesiser1");
                                    
                                    inline function loadWavetable(component, value) {
                                        wt.setFile("{PROJECT_FOLDER}" + component.get("text") + ".wav");
                                    }
                                    
                                    for (b in Content.getAllComponents("Button")) b.setControlCallback(loadWavetable);
                                    

                                    Four audio files in Audio Files folder: wavetable1.wav, wavetable2.wav, etc
                                    Four buttons in the UI, with button text as the filename: wavetable1, wavetable2, etc

                                    Video demo here: https://share.cleanshot.com/LvnqfWlM

                                    Notice it takes 1-2 seconds to load and process each audio file.

                                    There's a cache method but it didn't speed up the load time for me on these simple wavetables. Mainly because, I think, the caching only skips the resynthesis step, which I don't think these simple wavetables need.

                                    EDIT: here's a ZIP of the full project - https://wmd.d.pr/f/iIi4gG

                                    Meat Beats: https://meatbeats.com
                                    Klippr Video: https://klippr.video

                                    LindonL D 2 Replies Last reply Reply Quote 2
                                    • LindonL
                                      Lindon @dannytaurus
                                      last edited by

                                      @dannytaurus ok great this is part of the solution..

                                      now lets assume we have 5 wav files and each is a single cycle, how do we combine these into a single wave file that we can load into the player and have some modulation source move through these as we play. Clearly its trivially simple to join these 5 files together - but how does the wavetable player know we are using (say) 2048 samples as our cycle size and not (say) 1024 ???

                                      HISE Development for hire.
                                      www.channelrobot.com

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        DanSound @dannytaurus
                                        last edited by

                                        @dannytaurus Wow, that's cool! Does the 1-2 second load time apply to the plugin build?

                                        dannytaurusD 1 Reply Last reply Reply Quote 0
                                        • dannytaurusD
                                          dannytaurus @DanSound
                                          last edited by

                                          @DanSound Not sure. Haven't tried compiling it yet. I think it's due to the calculations done after loading the file, so will probably be the same.

                                          I'd like to test the caching more, to see if it can speed up the process.

                                          Meat Beats: https://meatbeats.com
                                          Klippr Video: https://klippr.video

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

                                          22

                                          Online

                                          2.1k

                                          Users

                                          13.0k

                                          Topics

                                          113.2k

                                          Posts