HISE Logo Forum
    • Categories
    • Register
    • Login

    Formant Filters - Anyone made one with Hise yet?

    Scheduled Pinned Locked Moved General Questions
    8 Posts 3 Posters 369 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.
    • DanHD
      DanH
      last edited by

      Just diving into this....

      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
      https://dhplugins.com/ | https://dcbreaks.com/
      London, UK

      griffinboyG A 2 Replies Last reply Reply Quote 0
      • griffinboyG
        griffinboy @DanH
        last edited by

        @DanH

        It's on the todo list.
        Filters are pretty hard dsp but I have a feeling there will be plenty of online github repositories for formant filters which can be used as reference. Research papers too. I have a feeling it's not too complex.

        1 Reply Last reply Reply Quote 0
        • A
          aaronventure @DanH
          last edited by

          @DanH Did you check

          Link Preview Image
          physmodels - Faust Libraries

          favicon

          (faustlibraries.grame.fr)

          DanHD 1 Reply Last reply Reply Quote 0
          • DanHD
            DanH @aaronventure
            last edited by

            @aaronventure I did, they're all synths, aren't they?

            DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
            https://dhplugins.com/ | https://dcbreaks.com/
            London, UK

            A 1 Reply Last reply Reply Quote 0
            • A
              aaronventure @DanH
              last edited by

              @DanH It's a bunch of formant filters (I haven't played with them to be honest), but voice-focused. You can test them out and see if you're after what they do, check the source code in the library on github and potentially take them apart to suit your needs.

              DanHD 1 Reply Last reply Reply Quote 0
              • DanHD
                DanH @aaronventure
                last edited by

                @aaronventure might need some help taking them apart - don't know Faust well enough! Especially how to input audio - these use the filters to generate the signal. For example:

                //-------`(pm.)formantFilterFofSmooth`--------------
                // Formant filter based on a single FOF filter.
                // Formant parameters are linearly interpolated allowing to go smoothly from
                // one vowel to another. Fof filter parameters are lowpass filtered
                // to mitigate possible noise from varying them in realtime.
                // Voice type can be selected but must correspond to
                // the frequency range of the provided source to be realistic.
                //
                // #### Usage
                //
                // ```
                // _ : formantFilterFofSmooth(voiceType,vowel,nFormants,i,freq) : _
                // ```
                //
                // Where:
                //
                // * `voiceType`: the voice type (0: alto, 1: bass, 2: countertenor,
                //           3: soprano, 4: tenor)
                // * `vowel`: the vowel (0: a, 1: e, 2: i, 3: o, 4: u)
                // * `nFormants`: number of formant regions in frequency domain, typically 5
                // * `i`: formant number (i.e. 1 - 5) used to index formant data value arrays
                // * `freq`: fundamental frequency of excitation signal. Used to calculate
                //         rise time of envelope
                //--------------------------------------
                declare formantFilterFofSmooth author "Mike Olsen";
                
                formantFilterFofSmooth(voiceType,vowel,nFormants,i,freq) =
                    fofSmooth(formantFreq(i),formantBw(i),formantSw(i),formantGain(i),tau)
                with {
                    tau = 0.001;
                    index = (voiceType*nFormants)+vowel; // index of formant values
                    // formant center frequency using autobend correction
                    formantFreq(i) = ba.listInterp(formantValues.f(i),index) : autobendFreq(i,freq,voiceType);
                    // formant amplitude using vocal effort correction
                    formantGain(i) = ba.listInterp(formantValues.g(i),index) : vocalEffort(freq,gender);
                    formantBw(i) = ba.listInterp(formantValues.bw(i),index); // formant bandwidth
                    // formant skirtwidth
                    formantSw(i) = skirtWidthMultiplier(vowel,freq,gender)*formantBw(i);
                    gender = voiceGender(voiceType); // gender of voice
                };
                
                

                DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                https://dhplugins.com/ | https://dcbreaks.com/
                London, UK

                A 1 Reply Last reply Reply Quote 0
                • A
                  aaronventure @DanH
                  last edited by

                  @DanH said in Formant Filters - Anyone made one with Hise yet?:

                  // #### Usage
                  //
                  // // _ : formantFilterFofSmooth(voiceType,vowel,nFormants,i,freq) : _ //

                  This is your clue.

                  Did you use Faust at all before?

                  DanHD 1 Reply Last reply Reply Quote 0
                  • DanHD
                    DanH @aaronventure
                    last edited by

                    @aaronventure yes lots, but I haven't done a huge amount of editing to existing code

                    DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                    https://dhplugins.com/ | https://dcbreaks.com/
                    London, UK

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

                    30

                    Online

                    1.7k

                    Users

                    11.8k

                    Topics

                    102.6k

                    Posts