HISE Logo Forum
    • Categories
    • Register
    • Login

    What is the process for writing my own module (not scriptnode)

    Scheduled Pinned Locked Moved C++ Development
    52 Posts 11 Posters 11.9k 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 @Orvillain
      last edited by

      @Orvillain oops yeah haha will post it when I get back.

      O 2 Replies Last reply Reply Quote 2
      • O
        Orvillain @Christoph Hart
        last edited by

        @Christoph-Hart No problem! Thanks for the quick turnaround. This is going to be seriously cool, I can feel it!! 😊 😊

        1 Reply Last reply Reply Quote 0
        • O
          Orvillain @Christoph Hart
          last edited by

          @Christoph-Hart Hey dude, any ETA on that snippet?

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

            @Orvillain There you go:

            HiseSnippet 1230.3ocuWs0aiTCE1SZmtz.qDU.uOpOkBUQIj1rcYEhjlKKAHsQaJk8sJGONIl3wdjGOsMfVo9HOxOU9G.G6YlLSXydQQvlJUkyM6OeNemicFojDZTjTgbJe0xPJx4SbGuTnm2YNlIPC5B5c6h03qnQZz4KCwQQTejiyNO2X2Y+cQ1O+02cNliEDZtJD5ZIiP+IV.SmqcTqejw48w9zqXAE79jVCHRQGIWFCXYG2ZnPLYAdF8BrwsRtnuGGMG47kt0O6oD7IjSaVmdxjl9Owu4DxYjFSwM7e5o3F1u1rQiFHm854yzR0XMVSiPN6dtze434x6DIav0rH1DN0HTGMF14D08kbeyQznE0YNi6OJKIEgfUYTdJamjT1m6Nj4yVoOO08oVCd4QTLA5TZc3syZvqdQ3Uq.71.jbJ.ocSfzAtiIJVnN2hAOer6.glplhg5TQnj3KpzCNtcjfGBc0.7BZeEHrJhJMqU6XO3eG8rxkgZUj16VrxSE38sd8DyXBZ0YT8y4xIX9KjwZlX1Pr.pfpJqGgOPm5fgiFDnJvDjUpxgqLbnIfURUUzYrH.EcsZ37I.ynxzXAQyjhJF+Np7uWde.5QRv8PESnqbX21W09a7Nz6q7zJC7s9AK7qN5YYw5IEWH0zKEUrKP4WU16eaZ5zMZyjlTRN2b31fYC2V81BrhHNXBUcLjP3wzUNB0u0IEtuYRQQNKIopUvQoXffouLjJdSLYTZo1PfRQEzxnszmuHk9zN1mI+E7szoRU.h4anzqoqNxd.J10axy1FVEVLiBGDEz965XLY0zS3mIi94AlZZFB.v..LjpzLyY2oK8VX.RBgde2tznEZYn02fPov.8s.u2uBqOzp0xbgen0cLe87UJ9yGZElksF3amKZ2Bu9uDxludGGzqK8i4X85C.LiISM.Df055LcVhHldYwwn+mMU38EhG3NhoIy2LFKsALBUq+OvX5rzG61a5TJQmCvcc6+xO.CNcS1+xokYXOMa9ZU8hf3h3.KwpOia6ScLD5z4nN+gadKenhFhUzqji33kUhvAgb5K.fer2DtjrXL62nu9bhTl24FOpPliEBJOZaFmr26cpp9auRsZhtVwfVHW37OFtplP6jhNSNnjYpRhbsrd7wTguU3ugOoFquJgAFqmYLefD5Bp9NoZgsFk9cjyiLEj8cuSgCCghv0TUjgt57H2ZUg+Ps4b4clYCrThLTlr5FI4KCmKELhQUhGY3tcfLVny.O7FiqvLtg4ONNBFd5eoXL3r8gMFl2ERe3a60GSfr5xQXy.iCbMieA5JUUkrh1lCzbZiI2l7dlbqlUL6YOIYL.fA1gavLTfnA1SxCIacx83lgr2HLZVCJelKvb9Un8oZtCaZ6Kt.uK.LBqfXfqeS5Xxj.mGxDWmL820TBPCw2uRtNHaf5icGtLOlTy6At2rIpKcJNlqKrFmZ2bnC49r6EJzjUTBYFe5SuO4PkCDqzJXX4xEtRADJbXVyhcVfQBlzUJoyePz0FqDLOC2.G4bobQ.1RM2pau9fzHEfIJ4MjjYClC2GY0.IDQJ6anQ1aC2dG.OX8FBY8k50B7q21.arsAdx1F3oaafM21.ex1F3Yu6.M+dh1wZYPxDNDZ3ndVRniSOg4wx1KmP+Cf1ouMo
            
            O 2 Replies Last reply Reply Quote 1
            • O
              Orvillain @Christoph Hart
              last edited by

              @Christoph-Hart Right! That is really cool! I'll dig into this when I get some chance and see how I can leverage this kind of system for my thing.

              1 Reply Last reply Reply Quote 0
              • O
                Orvillain @Christoph Hart
                last edited by

                @Christoph-Hart I think this is going to be amazing. Been looking at the snippet, and it mostly makes sense. Being able to throw data from a custom node to the UI is exactly what I want to do.

                So ultimately, consider the title of this thread to be null and void - custom node is where it is at! I've just got to port my HISEscript over to c++ and start properly learning scriptnode.

                1 Reply Last reply Reply Quote 0
                • griffinboyG
                  griffinboy @Christoph Hart
                  last edited by griffinboy

                  @Christoph-Hart

                  Thanks, I'm already making use of the new Global Cable feature!
                  It works great.

                  Here we are sending the drawing straight from Hise into a c++ node for playback!

                  ChazroxC ustkU LindonL Oli UllmannO ulrikU 5 Replies Last reply Reply Quote 9
                  • ChazroxC
                    Chazrox @griffinboy
                    last edited by

                    @griffinboy woah thats sick.

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

                      Noice. Are you doing any kind of band limiting with the drawings to reduce aliasing?

                      griffinboyG 1 Reply Last reply Reply Quote 1
                      • ustkU
                        ustk @griffinboy
                        last edited by ustk

                        @griffinboy Coool!!! I've done this a while back using a hidden sliderpack with 1024 sliders with a drawing method and a SNEX node if I reckon well. It was working but wasn't very effective and aliasing was awful. Yours seems to be very responsive! 👏

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

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

                          @griffinboy yes - very impressive - so you are going to use this to build a poly synth?

                          HISE Development for hire.
                          www.channelrobot.com

                          griffinboyG 1 Reply Last reply Reply Quote 0
                          • griffinboyG
                            griffinboy @Christoph Hart
                            last edited by griffinboy

                            @Christoph-Hart

                            no that's next. I'm either going to use the Vital or Serum method. Serum's is simpler so I might go with that. Precomputed mip maps using fir filters. Easier to program but it will use a lot of memory... Maybe I'll end up switching later down the line to a realtime FFT based mip map method like vital!

                            There is clear aliasing in the video - but it's not 'awful' that's probably because I am processing the drawing in real time using a buffer. I've got interpolation between a few different points using splines. I'm probably going to expose smoothing as a parameter for the user. This wasn't done to affect the sound of the waveform, I am just ocd about drawing shaky lines 🤷

                            Christoph HartC ustkU 2 Replies Last reply Reply Quote 1
                            • Oli UllmannO
                              Oli Ullmann @griffinboy
                              last edited by

                              @griffinboy
                              This looks great! :-)
                              Do you have any kind of hint how to realize this?

                              1 Reply Last reply Reply Quote 0
                              • ulrikU
                                ulrik @griffinboy
                                last edited by

                                @griffinboy Nice!

                                Hise Develop branch
                                MacOs 15.3.1, Xcode 16.2
                                http://musikboden.se

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

                                  @griffinboy said in What is the process for writing my own module (not scriptnode):

                                  Precomputed mip maps using fir filters. Easier to program but it will use a lot of memory...

                                  Yup, that's what I'm doing with the wavetable synthesiser module too. Sounds good enough for me.

                                  griffinboyG 2 Replies Last reply Reply Quote 1
                                  • griffinboyG
                                    griffinboy @Christoph Hart
                                    last edited by griffinboy

                                    @Christoph-Hart

                                    That's good to know.
                                    Doesn't it use a lot of memory? You'd have to store maps for each wavetable frame right, for various octaves? 😬
                                    Did you find a way around this or is that just the cost of precomputation?

                                    Vital gets around the memory issue by creating mip maps in real time. You probably already know, but it stores waveforms in the freq domain, silencing aliasing bins, and then inverse fft. Super nice, but the optimization sounds far more challenging since now the burden is on the cpu for efficient realtime fft.

                                    1 Reply Last reply Reply Quote 0
                                    • griffinboyG
                                      griffinboy @Lindon
                                      last edited by griffinboy

                                      @Lindon
                                      @Oli-Ullmann

                                      This is potentially for a commercial project,
                                      However if my the client says it's okay, I'll share how to do this.

                                      It's about time for a new c++ node tutorial I think...

                                      Oli UllmannO 1 Reply Last reply Reply Quote 3
                                      • Oli UllmannO
                                        Oli Ullmann @griffinboy
                                        last edited by

                                        @griffinboy
                                        I'm keeping my fingers crossed for the project! :-)
                                        But yes - a new C++ tutorial would be great! :-)

                                        Christoph HartC 1 Reply Last reply Reply Quote 2
                                        • Christoph HartC
                                          Christoph Hart @Oli Ullmann
                                          last edited by

                                          Doesn't it use a lot of memory?

                                          Less than samples lol. Something like 50-100MB per wavetable is completely neglible considering the fact that people are raw-dogging their uncompressed filmstrips into the system memory without hesitation.

                                          griffinboyG 1 Reply Last reply Reply Quote 2
                                          • griffinboyG
                                            griffinboy @Christoph Hart
                                            last edited by

                                            @Christoph-Hart

                                            Good point

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

                                            24

                                            Online

                                            1.8k

                                            Users

                                            12.0k

                                            Topics

                                            104.7k

                                            Posts