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.
    • SteveRiggsS
      SteveRiggs
      last edited by SteveRiggs

      Ok so I've made a bunch of wavetables using WaveEdit and tried to use a wavetable synth in HISE. What folder should the wavetables be in for HISE to pick them up in the menu below?

      I tried the AudioFiles folder so far

      Screen Shot 2019-09-29 at 23.00.59.png

      www.anarchyaudioworx.com

      www.facebook.com/groups/audioworx/

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

        @SteveRiggs unfortunately you can't, here is the best answer about wavetable:
        https://forum.hise.audio/topic/638/awesome-new-toy-waveedit
        I tried too, but even exporting the wavetable to a whole sort of audiofile lengths and table combinations, the extracting tool doesn't detect anything usable...

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

        SteveRiggsS 1 Reply Last reply Reply Quote 1
        • SteveRiggsS
          SteveRiggs @ustk
          last edited by

          @ustk Well isn't that useless lol. Just an empty menu then :face_with_tears_of_joy:

          www.anarchyaudioworx.com

          www.facebook.com/groups/audioworx/

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

            @SteveRiggs It's not empty if you use the integrated extracting tool. Try with any audiofile, it should output something. But if what it outputs is usable or not is another matter...

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

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

              The wavetable synth is certainly one of the most abandoned things in HISE, but if you want to check how it works, you might find that interesting:

              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)

              Basically you create a SampleMap, then you run it through the wavetable conversion process and end up with .hwt files that you can load into the wavetable synth and which contain a multidimensional wavetable containing the spectral content of the given sample set.

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

                @Christoph-Hart
                Any plan in scriptnode regarding wavetables then?

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

                1 Reply Last reply Reply Quote 0
                • 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
                                            • First post
                                              Last post

                                            49

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.9k

                                            Posts