HISE Logo Forum
    • Categories
    • Register
    • Login

    EQ curve from object.

    Scheduled Pinned Locked Moved Scripting
    23 Posts 6 Posters 1.2k 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.
    • d.healeyD
      d.healey @orange
      last edited by

      @orange I thought about that but what I'd like to do is perform an analysis outside of HISE and import the curve from a file.

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

      orangeO 1 Reply Last reply Reply Quote 0
      • orangeO
        orange @d.healey
        last edited by orange

        @d-healey said in EQ curve from object.:

        @orange I thought about that but what I'd like to do is perform an analysis outside of HISE and import the curve from a file.

        So make a plugin or standalone app with the draggable filter that is connected to the Parametric Eq for analyzing purposes. Put a button on the GUI that exports the state of the eq using exportState so you'll be saving the eq curves to files. Analyze outside of Hise and create curve files. Then import these files to your real project with restoreState.

        Since each eq plugin's filter coefficients are different, your curve analysis and final curve settings should be done with the same eq. Otherwise, the resulting sound won't match the analysis.

        develop Branch / XCode 13.1
        macOS Monterey / M1 Max

        Christoph HartC d.healeyD 2 Replies Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart @orange
          last edited by

          restoreFromState is definitely not something you want to call in an onNoteOn callback.

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

            @orange It's not possible to perform the analysis I'm doing using HISE. I'm trying to recreate Kontakt's AET filter.

            @Christoph-Hart Is there a way to add nodes to the eq programmatically?

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

            Christoph HartC 1 Reply Last reply Reply Quote 0
            • Christoph HartC
              Christoph Hart @d.healey
              last edited by

              @d-healey Why don't you use scriptnode for it?

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

                @Christoph-Hart Because I'm a noob :) can I load in curves from external analysis into a scriptnode filter?

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

                Christoph HartC 1 Reply Last reply Reply Quote 1
                • Christoph HartC
                  Christoph Hart @d.healey
                  last edited by

                  @d-healey Sure, it's called scriptnode for a reason. You can grab references to every node and set the parameter programatically.

                  d.healeyD 1 Reply Last reply Reply Quote 2
                  • d.healeyD
                    d.healey @Christoph Hart
                    last edited by

                    @Christoph-Hart I have some learning to do :)

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

                    Dan KorneffD 1 Reply Last reply Reply Quote 0
                    • Dan KorneffD
                      Dan Korneff @d.healey
                      last edited by

                      @d-healey Can't wait for the Patreon video ๐Ÿ™ƒ

                      Dan Korneff - Producer / Mixer / Audio Nerd

                      Christoph HartC 1 Reply Last reply Reply Quote 3
                      • Christoph HartC
                        Christoph Hart @Dan Korneff
                        last edited by

                        @Dan-Korneff Everybody is waiting for this video and I really don't know why it takes so long for this guy to learn scriptnode :)

                        1 Reply Last reply Reply Quote 7
                        • d.healeyD
                          d.healey
                          last edited by

                          I can't see a node that is like the EQ, are you suggesting I add individual filters for every band? Is this more/less efficient than the using the stock EQ?

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

                          Dan KorneffD 1 Reply Last reply Reply Quote 0
                          • Dan KorneffD
                            Dan Korneff @d.healey
                            last edited by

                            @d-healey I believe it's only 1 band per node.

                            Dan Korneff - Producer / Mixer / Audio Nerd

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

                              @Dan-Korneff And if I wanted to add 30 or so bands, any idea how the efficiency would compare to the EQ effect? And how would it compare to just adding 30 filter effects?

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

                              Matt_SFM 1 Reply Last reply Reply Quote 0
                              • Matt_SFM
                                Matt_SF @d.healey
                                last edited by

                                @d-healey I can be wrong but : Talking only about using 30 1-band EQ nodes, I would guess that once your ScriptFX is compiled into a HardcodedFX, there won't be much of a difference than using an EQ module with 30 bands.

                                Develop branch
                                Win10 & VS17 / Ventura & Xcode 14. 3

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

                                  Yes itโ€˜s pretty much the same.

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

                                    Excellent. Is the clone control node thing working properly?

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

                                    Christoph HartC 1 Reply Last reply Reply Quote 0
                                    • Christoph HartC
                                      Christoph Hart @d.healey
                                      last edited by

                                      @d-healey A simple test for your use case works, but the entire concept is a little unstable (it's basically the child panels of scriptnode) so I'm not sure I would recommend it at this point.

                                      HiseSnippet 1557.3oc6a0saaaCElJNxoNscHEqO.Fn2jh1Y3eRiSvtXNwIt0qKIdUtoc6lLVI5XNKQpJQ6D2gc01E8tALz89zGfVfAzmf8FrAr61EcGJIaIG63lnkM3EHGf.cN7PxOd346ix.zMb35DWWtCRISy91Djx0T05yDsq1FSYn5agT9H0cvtBhSVeWa12F65RLPJJotuzgRl4Qde98OaSrIloSBcgP6yo5jufZQEgdaT4gTSyZXCRSpUjnWoRccNqJ2j2EvSJ07HardG7gjcwxvlSEojdaCpf6nIvBhKDylbi9Zs4Gw7ieepK8YlDoQAjFLP9tQUaSMMZLXs5hPJy2HbkmxekeS0cnFzg9Cy.K40P1vdDMGnL2zfTgyAjTh.o48gzMT0zcn1hvVj34pp0YvFRKLjpiBE+XQJuVsJGBfIxYg6Pp4.FC6vxqlO+cyB+61eZqtLcAkyxxY6xEj8XKe6E+tEyr32uX1S1TqVSrM4z3vMMINSrY4tqyz53xrtVOi3b2r8vlcICCDV9ilSSe1xo59q5HAxY0YTwd1j.6ZbSCYtR9736.nfzF7ziquEVfkaJA9f3rINBpDNJaQ5AU09aQYT2h31Qvsg55w1+fJGtQWSrXzxIIuInAHeLxdnbih4RE8ixqNYM17md9Hej7wGX0dFg6MTaPE5smLdmaB3ExZ+ai2.F60U2tUKhtHDryqV6oSkddg.kIQUWLfpByuDHWKvLasmVXhjzWpFRHrcH1XGRSdCSb+kcwV1ljGA38tYelIWuiF8EjwYQ19PXSYDKq2FyXDS23P1ReAIfgdDuqfxNbGrvgdLRQc2tVZfTtNoZ.5.eJyI4Y914k1x5EMByvy38vmfFKHsUBZrvfFiPQ2kHNh6zwa6H3YXs3m6c8RxGz53BnMLM4GUkaYSCpdg8.OeM3l8sayYTcoK+HFfzMr3cgII.tO.61DSMkk66Sbb8FjETymC9CJ02ka.IG0ZXcHI1uAVzVxYjZQPQIwIm9vhyQvUzZB4PL3XO+LB.GK4xz6PuTQDe7q8jV.iaN+Qst69xV0wln8k6sRfhjioL7TA3yOTcSNibf7XUzH.9ld.FpRxEIhyADmOJDQgZEMwNGRDtABoLht+VfWRqNLvWQ0sWqCHOG0.6.GxCGRI8dU0ZNjm2kvz66MO.c33A5wZlTChSC.etiZJSGLCxwCJU1Fp1M.RrWGUxqVpXtMrd7Qq0rfAYkpq8skr2qXuGr558vFOtr1SbeT+8Vu55MuS45a2espnPDImm4FZA0X6PYA44PI5cvGeBe4qnIH1Rtaz3z5PNxOyG0q+o5.eopL66hFa3QSe9gT9XyOLWiM+.a5Tm+ET8Gfwm6HUPWORETgY4RnzdGxdgV87j897xq+B5lOYsp4xkis2Wa9U0tSiCe98WUZmKGXatdOilkJmT8LV0yB9A4UZfNcsRulO6EMxioBVzflmzJRdG7DGoyTCkNuxDJ70km5g9.h8m1BHS5W8pW89KV8ckHfbHUXD7sjZKpoLijKn03dzyIIS07G1vGmNIBFuQoEoiTVtv3kkqTYrxxW9tJmoxxJ+f0aCnEgmjL5PU4mprQWA2BdoGuWjcZbjJkJ8tSxQe8adysNafAcq+3W8.SJ0uLDD+xaeX2e9O+qQ3lSHIT70iyMKV47wMCzBGi0elW++yzH9lOdq2ErYnYw4h1v6HNBXp7au3GiiF0RmSMxzxudyXRTKU4BZoOsoNi51LL7VzFSSbVRwhvl+nnRNElU0bxDn4THQzIQzIQz4RknSwYcQmhIhNIhNIhNWpDcJMqK5TJQzIQzIQz4RknyJy5hNqjH5jH5jH5boRz4dy5hN2KQzIQzIQz4Rknypy5hNqlH5jH5jH5boRzo7rtnS4DQmDQmDQm+WJ5D2qZkpxUj49KpqYU13jTPmy8iqqpYaREZzCYgZagSvnIlM47NVXuqHa7tP6+Wbgdsv5N7CBt5fd25JOO.0m48q9Hi5NR6rEP8B11j27VjE0fdftt7Fe+IEPnI2mhwnOkhQeVIF84dwnOqFi9TNF8Yso1G4OFl.cP4MwDbzXa+iqTFvXk2ht+1nh0wh
                                      
                                      d.healeyD 1 Reply Last reply Reply Quote 1
                                      • ?
                                        A Former User
                                        last edited by

                                        Could this be a use-case for Faust when it's ready?

                                        Christoph HartC 1 Reply Last reply Reply Quote 1
                                        • d.healeyD
                                          d.healey @Christoph Hart
                                          last edited by

                                          @Christoph-Hart Thank you, I'll play around with it.

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

                                          1 Reply Last reply Reply Quote 0
                                          • Christoph HartC
                                            Christoph Hart @A Former User
                                            last edited by

                                            @iamlamprey said in EQ curve from object.:

                                            Could this be a use-case for Faust when it's ready?

                                            No, not really, Faust is not really suited for spectral processing, it shines in circuit simulation and physical modeling.

                                            Actually I also think that using 30+ bands of peak EQs is not the 100% right way to simulate AET as this amount of filters will smear the phase and is not super efficient (especially if it's per voice). The proper solution would be writing a FFT filter that applies interpolated gain reduction for each FFT bin based on the analysis of the loudest and softest sample:

                                            1. Create a samplemap with two layers (ff and pp)
                                            2. For each note / sample, do an FFT, and compare the gain factor for each bin (should be <1.0 so it only works subtractive)
                                            3. Write that gain factor array into a data file. You can just use audio files to store that, then you can load the data as SFZ into the realtime processor.
                                            4. Ditch the pp layer.
                                            5. Write a FFT processor that applies the gain factor on each bin (the FFT size of the analysis and of the realtime processor must be the same, so you need to find a compromise between latency and frequency resolution).

                                            Everything from 1-4 can be done inside HISE, but for 5. you need to write (or commission) a custom C++ module, but I would say that's rather beginner level spectral processing. Then you need to tweak the parameters to match your use case (FFT window, FFT size, smoothing between bins, etc).

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

                                            22

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.3k

                                            Posts