HISE Logo Forum
    • Categories
    • Register
    • Login

    Wavetable Synth

    Scheduled Pinned Locked Moved General Questions
    42 Posts 8 Posters 3.1k 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.
    • Christoph HartC
      Christoph Hart
      last edited by

      Hmm, not sure, I'd rather clean up the module we already have. It theoretically works, it's just possible that I broke something because I haven't touched it for long time.

      The problem would be getting the data into scriptnode which is not a trivial thing considering that it has to run as C++ compiled code too.

      ustkU orangeO 2 Replies Last reply Reply Quote 2
      • ustkU
        ustk @Christoph Hart
        last edited by ustk

        @Christoph-Hart So when you say "clean up", does it mean you will never add the possibility to import external wavetables?
        I don't understand why you finally let the Wavedit thing aside, as it is a very powerful tool and there's nothing in Hise to fill this gap anyway. I'm afraid we'll never see a solution for this in Hise...

        Can't help pressing F5 in the forum...

        1 Reply Last reply Reply Quote 0
        • orangeO
          orange @Christoph Hart
          last edited by orange

          @Christoph-Hart Also it would be great to be able to create / edit wavetables more easier. Maybe an easy integration to WaveEdit or another wavetable tool.

          develop Branch / XCode 13.1
          macOS Monterey / M1 Max

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

            The .hwt file format is just a file specification for wavetables (AFAIK there is no common file standard which is why I rolled my own).

            The conversion from anything that is created by WaveEdit into .hwt files might be trivial to implement, but that is one part of me „cleaning up“ the wavetable code.

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

              Remind me again: what's the output format of wave edit? If you can make it output a single wave file for each wavetable, we should be almost there.

              I could imagine that there is just one single function that's missing from the wavetable converter to make it work with almost any kind of wavetable input and that is a "convert to HWT without spectral resynthesis function":

              1. Make sure that your wavetables are in a proper audio format (.wav or .aiff) The length won't matter as it will be resampled during conversion anyway. The only restriction is that the audio file has to be one cycle per file
              2. Create a samplemap with the proper mapping. If you want different wavetables for notes, use multiple audio files and drag them where you want them. If you just want to make one wavetable, import a single audio file with a wavetable and map it across the entire MIDI range. Since the wavetable synthesiser has a two dimensional wavetable layout (one for the note number and one for the "table index" that can be modulated), you can map wavetables across different velocity ranges to create "morphable" wavetables.
              3. Run the conversion tool and bypass the resynthesis part. It will assume that every sample in the given samplemap is exactly one period and will resample it and store it in the .hwt format which will be read by the wavetable synthesiser module.
              ustkU 1 Reply Last reply Reply Quote 2
              • ustkU
                ustk @Christoph Hart
                last edited by

                @Christoph-Hart Yeah that's exactly what I imagined and tried: https://forum.hise.audio/topic/638/awesome-new-toy-waveedit/21
                But of course, because of resynthesis (and maybe something else), it didn't work. That would be cool to bypass this part so the wave file can be used (almost) as it is.
                Although I don't remember if WaveEdit can output a unique wave file that contains all the 64 shapes, or export them separately. Does anyone have info on this part?

                Can't help pressing F5 in the forum...

                FortuneF 1 Reply Last reply Reply Quote 0
                • FortuneF
                  Fortune @ustk
                  last edited by

                  @ustk Samplemap to Wavetable convert is not working properly sometimes. I don't know why, maybe it is about the wave shape of the sample. But the same sample works on XFer Serum and other wavetable synthesizers.

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

                    Samplemap to Wavetable convert is not working properly sometimes. I don't know why, maybe it is about the wave shape of the sample. But the same sample works on XFer Serum and other wavetable synthesizers.

                    Yeah, obviously. The FFT Resynthesis algorithm is rather experimental. What I am trying to add right now is a system to bypass it altogether and just create the .hwt by resampling the wavetables that are mapped accordingly.

                    ustkU 1 Reply Last reply Reply Quote 2
                    • ustkU
                      ustk @Christoph Hart
                      last edited by

                      @Christoph-Hart Apparently we changed your plans for today 🤣

                      Can't help pressing F5 in the forum...

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

                        Yes, I am sitting on the train and can't get actual work done anyway, so why not do this stuff, it's seems to be quite some demand for it.

                        ustkU FortuneF 2 Replies Last reply Reply Quote 2
                        • ustkU
                          ustk @Christoph Hart
                          last edited by

                          @Christoph-Hart You rock man ;)

                          Can't help pressing F5 in the forum...

                          1 Reply Last reply Reply Quote 0
                          • FortuneF
                            Fortune @Christoph Hart
                            last edited by

                            @Christoph-Hart said in Wavetable Synth:

                            Yes, I am sitting on the train and can't get actual work done anyway, so why not do this stuff, it's seems to be quite some demand for it.

                            That's very kind of you, Thank you!

                            1 Reply Last reply Reply Quote 1
                            • FortuneF
                              Fortune
                              last edited by

                              Maybe that would be an awesome example about wavetable stuff @Christoph-Hart

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

                                Alright, that's what I accomplished so far:

                                Link Preview Image
                                - added simple wavetable conversion to .hwt function in Wavetable con… · christophhart/HISE@16234f5

                                The open source framework for sample based instruments - - added simple wavetable conversion to .hwt function in Wavetable con… · christophhart/HISE@16234f5

                                favicon

                                GitHub (github.com)

                                So basically you can take the wav files from WavEdit, map them like a sampled instrument and run the wavetable converter over it. If you map the wavetables across the velocity range, they can be modulated using the table index.

                                I've also updated the wavetable demo project here:

                                Link Preview Image
                                hise_tutorial/WavetableSynth at master · christophhart/hise_tutorial

                                The Tutorial project for HISE. Contribute to christophhart/hise_tutorial development by creating an account on GitHub.

                                favicon

                                GitHub (github.com)

                                It contains a few random wavetables that WaveEdit produced after some monkey UI interaction, but it shows how to map and convert the multi-velocity wavetable maps (I omitted the converted .hwt files so you can do the process for yourself):

                                • load this project
                                • open the converter window
                                • choose FM_AB
                                • select Resample instead of "FFT Resynthesis"
                                • press OK.
                                • load up the Wavetable synthesiser
                                • pick the new sound in the drop down (ignore for now that it creates one for the left and right channel, I'll add proper multichannel wavetable support soon).

                                It's currently using linear interpolation for the resampling and I'll switch it to sinc interpolation at my next round (it's offline processing anyway so we can opt for the best interpolation here).

                                ustkU SteveRiggsS 3 Replies Last reply Reply Quote 3
                                • ustkU
                                  ustk @Christoph Hart
                                  last edited by

                                  @Christoph-Hart Woww the train travel's been prolific 😎 I'll jump on it ASAP! 😋

                                  Can't help pressing F5 in the forum...

                                  1 Reply Last reply Reply Quote 0
                                  • ustkU
                                    ustk @Christoph Hart
                                    last edited by

                                    @Christoph-Hart said in Wavetable Synth:

                                    • select Resample instead of "FFT Resynthesis"

                                    I don't see anything like this 🤔

                                    Can't help pressing F5 in the forum...

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

                                      Oops, I forgot to push the code that actually added the combobox in the dialogue...

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

                                        Actually, hold off a little bit, I noticed there's an issue in the conversion process...

                                        ustkU LindonL 3 Replies Last reply Reply Quote 1
                                        • ustkU
                                          ustk @Christoph Hart
                                          last edited by

                                          @Christoph-Hart No worries mate ;)

                                          Can't help pressing F5 in the forum...

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

                                            @Christoph-Hart great timing mate - I have a customer asking about wavetable implementation -- so count me in on the "would like it to happen".

                                            HISE Development for hire.
                                            www.channelrobot.com

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

                                            44

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.9k

                                            Posts