Forum
    • Categories
    • Register
    • Login
    1. Home
    2. Ben Catman
    3. Posts
    B
    • Profile
    • Following 0
    • Followers 0
    • Topics 24
    • Posts 97
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: How can I make authentic chiptune sound via waveform generator?

      @OstinTheKr0t

      okok, tehre you go:

      here is a short explaination -

      It combines Sample Rate Reduction (Sample & Hold) and Bit Depth Quantization in a single SNEX node.How it works:The node processes audio in two distinct stages to achieve that classic "crushed" digital sound.

      1. Sample Rate Reduction (Temporal Distortion)Instead of processing every incoming sample, the node "freezes" the amplitude for a set number of samples using a counter and a buffer.The Logic:

      • A holdCounter tracks the "steps." When it hits zero, it grabs a new "snapshot" of the input signal and stores it in holdLeft/Right.The Result: This creates a "staircase" waveform. In the frequency domain, this introduces Aliasing, giving it that metallic, ringing Lo-Fi character.

      2. Bit Depth Reduction (Amplitude Quantization)This stage reduces the dynamic resolution of the signal, simulating older AD/DA converters (like 8-bit or 12-bit systems).

      The Math:

      1. We calculate the available "steps" based on the bit depth
        2. We scale the signal up, round it to the nearest integer, and scale it back down

      The Result: This introduces Quantization Noise and "fuzziness," especially audible on tails and quiet signals.

      template <typename T> void processFrame(T& data)
              {
                  // --- Sample Rate Reduction (Sample & Hold) ---
                  int divider = jmax(1, (int)srDivider);
      
                  if (holdCounter <= 0)
                  {
                      holdLeft = data[0];
                      holdRight = data[1];
                      holdCounter = divider;
                  }
                  holdCounter--;
      
                  float outL = holdLeft;
                  float outR = holdRight;
      
                  // --- Bit Crusher ---
                  
                  float steps = std::pow(2.0f, bitDepth) - 1.0f;  // calculate steps
                  steps = jmax(1.0f, steps);
      
                  outL = std::round(outL * steps) / steps;
                  outR = std::round(outR * steps) / steps;
      
                  data[0] = outL;
                  data[1] = outR;
              }
      
              int handleModulation(double& ) { return 0; }
              void setExternalData(const ExternalData& , int ) {}
      
              // -------------------------------------------------------------------------
              // Parameters:  0 = BitDepth  |  1 = SampleRateReduction
              // -------------------------------------------------------------------------
              template <int P> void setParameter(double v)
              {
                  if constexpr (P == 0)   // Bit Depth  (1 – 16)
                      bitDepth = (float)jlimit(1.0, 16.0, v);
      
                  if constexpr (P == 1)   // SR Divider (1 – 32)
                      srDivider = (float)jlimit(1.0, 32.0, v);
              }
      

      Play around with the settings, and you will get the classic NES - Sound :)

      I can gice you the .h files if you send me a dm

      Cheers Ben

      posted in General Questions
      B
      Ben Catman
    • RE: Samplerobot Loop Points

      @Christoph-Hart

      Hallo Christoph ;)
      grüße aus Österreich :)

      I was thinking about doing a little python script that creates the loop point meta data Hise needs for user samples. TBH i have never looked that much into your sample engine. Are there any specific metadata that hise needs? Would such a little project help the community ?

      cheers

      posted in General Questions
      B
      Ben Catman
    • RE: How can I make authentic chiptune sound via waveform generator?

      @Lindon

      as i have read quite a few times there is need for a low / highpass with steeper slopes.... i could give the community the code and everything and show them how to implement that as third party c++ node, if that helps.

      Pretty sure soon a kind of AI will help us all with that part of the job, but as long as we dont have this feature, i am more than willing to help others

      Cheers

      posted in General Questions
      B
      Ben Catman
    • RE: How can I make authentic chiptune sound via waveform generator?

      @OstinTheKr0t

      well i get it, but one thing i want to mention in advance is , that i would not want my (simple) code to be used in projects that are public. As you mentioned , you want "the user" not to force to install samples. That implies for me that you want to distribute the vst.

      COMMUNITY: What would you do ? I really want to help, but if this project is not for personal use, i have some problems with that.

      Anyways, - First you need to create the waveform itself - then you need to downsample and bitcrush it, depending on your needs.

      posted in General Questions
      B
      Ben Catman
    • RE: How can I make authentic chiptune sound via waveform generator?

      @OstinTheKr0t

      you need to be more specific on what you want to achieve? i am glad to help, as this community has also helped me a lot, but i need more information?

      Btw shall i do a written tutorial on how to combine c++ nodes with your project ? Would the community be interested in that ?

      posted in General Questions
      B
      Ben Catman
    • RE: How can I make authentic chiptune sound via waveform generator?

      Hey, i can figure that out in a few hours, i guess i can write a quick and dirty custom c++ node for bitcrushing and downsampling. Send me a dm if you like !

      81ee7492-d429-43ec-a5eb-34f3067bb677-image.png

      EDIT

      This is what i can offer 😼
      Already playing SMB Theme haha
      Cheers

      posted in General Questions
      B
      Ben Catman
    • RE: Radio Button - wrong default value

      @ulrik

      SOLVED - my bad. I am a bit tired today. ;) Thank you so much ! Hope you have seen the comment in my code as well haha

      posted in General Questions
      B
      Ben Catman
    • RE: Radio Button - wrong default value

      @ulrik
      Hey Ulrik,

      would you please check out my snippet - i connected a delayfx to your buttons and

      on my side, when i save the preset and open hise again, i can experience the same thing .

      HiseSnippet 1112.3ocwWstSabDEdVLaS1MsQMR4AXDp+vzRI9FNPhpv3aXqBFKLMMnnpzgcmEOh0y3N6XHVU8+88Ku.8QnuAsmY2E7rfIPrRSsPfm4b9Nmu4LmKC8kBOZTjPhrbOZ5XJx5KsGLkqF1XHgwQcahrdrsj3yDmLQoD7HT8oiIQQTejkUtc05X4rLJ9yeuccRHg6QmsEB8JAyitGaDSMa2909QVXXahO8H1HCsqTqqmf2PDJl.7ImcAzXh2YjSo8HZ0VxF0gDMDY8s1aTprWE+m6WpzFaU0iTktU.IHnXY+JUpt4VEKuEoxlUoE1.Y8Es7YJgbfhnnQHqkqK7mNXn3BdhCdEKhcRHUunHZ.34jsaKB80GQ8tnFCYg98uLPEg.qzeVXKWRX6o16y7YWs+rv2WGK.OCgY.zZorzKWF5UzjdELn2bnjkAkVNgROwdfmjMVMShlOOxtKWQkAD3dxjJI5hV5M4raH.M3p0GQNi1VBKtBQ9pEJrFF90puzEtphT3yIRb83Tih3e.eIxSopFhQiEbXQ9URkuxb.U5N.UJKnlzPxTsihyQ0HZEDP8.0Sjn010P+C0YtIVJBP8l6feq4hu0O2AKWTnkWY0eA3LiGx3TbvDtmhI3XA2j5ZCHEg48tD8ZvoKbBcU2e20gEfymtxwAzLRDRWerjo8wNf0NmlFqwrnWfW46LM75LtO8cGDLyxqBQPGG3mj.55QT0NJkjAk+z7vc+8Dsqi6e35FHj37RLimAFvSo1tompFjvvSf577y8LqMn6ydVmVGiqeL9nNsv+7N5+9Zb6CND2o0d861aW72iazoUqCGfq2pmiqQTrmPQOfmONPALBecQAAyUVpyCox4JV21R9g.lmOYzITo40jVQnzLa8t8sWua1NxKIAxPQAuKmoNXLkeaMoPoYcPugborB9lJtyviS6LjDpQLnAficZU.Jlxlc0QeDvKcc3oD4dBu7bf+ScaRTDcKtzSDbJGSkJlN.Z0jdNLfIogmicSZzYJw33ibZJIx5A2iC86l4xuo1TyEWv7UCmsww0FRYmNzXZVyZwyG2UJlL9ZgsOBJTxfB090+WnPYSJH9TQgaNWBlHJ7mDRTYGSpeLQp.nVJyrI87GdDSM0zxexlcdeo3Sr6yTdCmOGWZNbDxY+ufiou33qrSl8MifKa290eFddwiR7+CriGQD64Gl78hY7d7V5Vk6QCLxTP0tRvgYygdZs1TpudVfAhZkK+9subeS.wB1SbQevgskze6J67muuVG1M1ExP2mYTl+WaeDEJNfGR3kIqJ28NjU7CeicnXhhwOceBL8D7qcuIiF.Or0iBWXbNMT292ZIc+wj0Ezq0jX.k6Gu3efOoBKpWakJr3kB+r3iQDOo3sdIMw04BOLdG3byieVti89503h2r28H3kuu0yKqotAvRKJvxKJvJKJvMVTfUWTfOeQAt4cCT+OlryDkXTR2LDZ+9shm0ZY0hSfr73xXz+x5SXOH
      

      Cheers

      posted in General Questions
      B
      Ben Catman
    • Radio Button - wrong default value

      Hey guys, me again :)

      Today my next challenge is to get my radio buttons to work:

      3 Buttons, on radio channel 1 - they switch between 3 values (0,1,2) in my hardcoded master fx.
      Everything works, except, when i reload HISE (standalone, plugin, and also compiled vst), the start value is always 2 , altough i need 0 as my starting point.

      Do you guys have any idea?

      Cheers , Ben

      posted in General Questions
      B
      Ben Catman
    • Cubase - Button Automation issue

      Hey , one more question

      I have a simple button that activates some effects. That said and done, cubase wont recorde the button trigger. My button has the "ispluginParameter" enabled, and i have given it a name.

      Do you have any ideas ?

      Cheers Ben

      posted in General Questions
      B
      Ben Catman
    • RE: Multi Channel / Multi Output Help!

      @dannytaurus

      one more question - when i route my kick to channels 1 /2 and snare to 3/4 - how would create a compressor that acts as bus compressor for all channels or more in general - any effects that should affect the whole instrument, no matter on which channel my instruments are sending their signal to the daw ?

      posted in General Questions
      B
      Ben Catman
    • RE: Multi Channel / Multi Output Help!

      @dannytaurus

      SOLVED!

      Thank you so much. I needed to recompile with your settings - perfect!

      posted in General Questions
      B
      Ben Catman
    • RE: Multi Channel / Multi Output Help!

      @dannytaurus

      let me check that ! Thx !!!!

      posted in General Questions
      B
      Ben Catman
    • RE: Multi Channel / Multi Output Help!

      @lijas90

      Highjacking, sorry for that, but i am really frustrated:

      I want to route Sampler 1 to Output 1/2 and Sampler 2 to Output 3/4. My problem is, even in the plugin version of my drum sampler, i see only 2 outputs on my main Output container. In my sampler routing matrix i see all the outputs and can route them, but when i load the hise vst in cubase, it only gives me stereo out. I can do screeenshots later, but do you guys have any idea? I hust want to have a routing choice for snare, kick and so on ?

      Do i need to compile HISE itself with some other flags or so?

      Cheers
      Ben

      posted in General Questions
      B
      Ben Catman
    • Panel + Mouse position

      Hey guys

      can you please explain how i can trigger a certain velocity depending on the position of my mouse within a panel overlay of a troigger button ? I would appreciate it very much.

      Thank you so much
      Ben

      posted in General Questions
      B
      Ben Catman
    • RE: Auto-Generate 128-Frame Knob Filmstrips for HISE

      @the-red_1

      thats really great - awesome work! Thank you very much

      posted in Presets / Scripts / Ideas
      B
      Ben Catman
    • RE: Set arpeggiator only for a specified key range

      @David-Healey

      WOW AWESOME!

      Thank you!!

      posted in General Questions
      B
      Ben Catman
    • RE: Set arpeggiator only for a specified key range

      @David-Healey

      okok, do you have any idea how to script that so that it takes in the values of two sliders instead of fixed ones?

      and again, thank you !!

      posted in General Questions
      B
      Ben Catman
    • Set arpeggiator only for a specified key range

      Hey guys, me again,

      this thime i was wondering how i could set a key range, say c2 to c4 - and only keys within this range are being affected by the arpeggiator i have placed infront of my sampler.
      I want to kind of split the keyboard in 2 zones, - i zone has no arp, the other has. In the future i would also like to assign 2 arps to 2 different zones.

      Thank you so much
      ben

      posted in General Questions
      B
      Ben Catman
    • RE: Arpeggiator1.SemiSliderPack and its siblings...

      @David-Healey

      SOLVED!

      In the property editor you simpl have to set the processID and then set SliderPackIndex to 1 - voila.

      Sorry for asking, hope it helps other people

      Thank you so much

      posted in General Questions
      B
      Ben Catman