HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. Dan Korneff
    3. Posts
    • Profile
    • Following 1
    • Followers 6
    • Topics 194
    • Posts 2,629
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: machine learning to capture analog tech

      @Morphoice The basics are they are using ML models to analyze and replicate the behavior of analog equipment. They run various test signals through them and use the results to train a model that can predict how the device will respond to any input signal.
      The Kemper Profiler uses a different approach. They capture the full response of an amp or effect at different settings. It creates a snapshot of the device and builds a profile. This is closer to convolution than ML.
      The real problem you're going to run into with time-based dynamics (like a compressor with slow release) is the model will start to emphasize the non-linear behavior. The result of these ML compressors ends up sounding like saturators rather than compressors.
      I'm on the same path as @griffinboy where I'm focusing on making models of specific components and inserting them between other analog models.
      If you want to start tinkering with Neural models in HISE, here's a thread of my starting process:
      https://forum.hise.audio/topic/8701/simple-ml-neural-network/108?_=1748359797127
      @griffinboy also posted a thread about some details to the training scripts.
      I haven't had time to fully dig in for the last few months, but plan to soon.

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: Whitebox Packages - plugins changes into folders

      @parabuh said in Whitebox Packages - plugins changes into folders:

      If i set my username it works but i think it will not work on different machine.

      If you select "keep owner and group" when you add the file to Packages, it SHOULD use the owner/group of the logged in user who is installing. Try that.

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: Whitebox Packages - plugins changes into folders

      @parabuh I've found that this is 100% a permissions issue.
      In my setup, If I place a binary on my network share and create an installer via packages, the bundle will turn into a folder after install. If the binary is placed on my local machine and I create an installer, the result is a proper bundle.

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: Bad CPU type in executable

      @Christoph-Hart said in Bad CPU type in executable:

      @d-healey file size is smaller but the real reason is I just forgot that people still use intel machines :)

      Any chance you can swap it out with the UB? Virtualization of ARM processors is still in the experimental phase.

      posted in Newbie League
      Dan KorneffD
      Dan Korneff
    • RE: Build failure when exporting plugin on OSX, xcbeautify: Bad CPU type in executable

      I'm seeing this in the latest version of HISE as well on multiple MacOS:

      batchCompileOSX: line 7: /HISE/tools/Projucer/xcbeautify: Bad CPU type in executable
      

      macOS 15.4.1 + Xcode 16.3
      macOS 13.7.5 + Xcode 15.4

      building from the autogenerated projucer file works as expected.

      posted in Newbie League
      Dan KorneffD
      Dan Korneff
    • RE: HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution

      I think I've been here before:
      https://forum.hise.audio/topic/8742/how-to-debug-server-isonline

      The functions check google and amazon to see if they are reachable, but some macos systems have issues with http calls.
      I've updated the source to point to my https domain. I reasoned it wasn't important if they are online but unable to reach my server.

      posted in Bug Reports
      Dan KorneffD
      Dan Korneff
    • RE: In plugin help system

      @Christoph-Hart This new found magical power is intoxicating! 😳 😁

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: In plugin help system

      @Christoph-Hart I'm using markdown for my embedded documentation. Please don't kill it 😘

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: 8 Times more CPU consumption on Aida-X Neural Models

      @Christoph-Hart said in 8 Times more CPU consumption on Aida-X Neural Models:

      To be honest: I‘m a bit „disincentivized“ in fixing the NAM stuff because I don‘t see a use case except for loading in existing models from that one website with potential infringement of other peoples work, but maybe my understanding of the possible use cases here is wrong.

      There is also widespread adoption for the NAM format. Darkglass just released a NAM compatible product:
      https://www.darkglass.com/creation/anagram/
      https://www.tone3000.com/blog/unveiling-anagram-darkglass-electronics

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: 8 Times more CPU consumption on Aida-X Neural Models

      @Christoph-Hart said in 8 Times more CPU consumption on Aida-X Neural Models:

      @Dan-Korneff alright then it stays, the people have spoken :)

      Just out of curiosity: who is using this in a real project and does it work there? Like except for the NAM loader?

      To be honest: I‘m a bit „disincentivized“ in fixing the NAM stuff because I don‘t see a use case except for loading in existing models from that one website with potential infringement of other peoples work, but maybe my understanding of the possible use cases here is wrong.

      Adding NAM support is super helpful for some people as the training scripts are solid and actively maintained. I'll be using RT-Neural on this end for the parameterized support. Still making a few tweaks to the training script I started with, but I’m planning to build around it soon.

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: 8 Times more CPU consumption on Aida-X Neural Models

      @Christoph-Hart said in 8 Times more CPU consumption on Aida-X Neural Models:

      I'd rather remove the entire RT Neural framework from HISE so it doesn't raise false expectations

      giphy.gif

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: DSP compiling error on WIN, works fine on MAC

      headquarters-of-microsoft-apple-and-linux-v0-n9hjzqyyv15b1.png

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: HISE Meet Up

      @Simon I just saw that a recorder is part of the High Performance Backend. Time for more server tinkering. 😆

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: Settings.setZoomLevel()?

      Are you referring to the plug-in preview in HISE? If so, I have to close the window and reopen to see the updated size here.

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: Cable broadcaster and callback not updating above 1.0

      I haven't messed with the global cable much. It might be capped at a 1?
      Are your meters running on a gain factor of 0-1? If so, you'll need to convert Gain to dB. Then, you need to map the dBFS range to the analog VU meter scale, so that -18 dBFS (or -20 dBFS) aligns with 0 VU on your meter.

      EDIT: if your meter is actually PPM, 0 would be referenced to -9 dBFS or -12 dBFS.

      posted in Bug Reports
      Dan KorneffD
      Dan Korneff
    • RE: The Shader Train Don't Slow Down!

      @clevername27 nice!

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: Anybody understand what Sine Shaping Distortion does / how to make it?

      Maybe I've been living under a rock, but I haven't heard of a sine shaper before, so this piqued my interest. It's a type of non-linear waveshaper that folds the input signal back onto itself in a sinusoidal pattern. Apparently, it produces a smooth and natural-sounding harmonic generation.

      There's some analysis here:
      http://www.openmusiclabs.com/files/otasine.pdf

      The formula seems to be pretty simple:

      output = sin(foldAmount * asin(input));
      // foldAmount controls how much the wave folds.
      

      I threw together a quick Octave script to see what's going on.

      sineShaper.png

      Here's the Octave script if you want to play around with it:

      sineShaperScript

      % Korneff - Sinusoidal Wavefolder Variations
      clear; clc; close all;
      
      Fs = 48e3;        % Sampling frequency 48 kHz
      
      %% Choose Input Type: 'sine', 'impulse', or 'dc_sweep'
      inputType = 'sine'; % <-- Change to 'sine', 'impulse', or 'dc_sweep'
      
      %% Input Signal Setup
      switch inputType
          case 'sine'
              f = 2;              % Frequency of sine wave (2 Hz)
              duration = 2/f;     % Duration = 2 cycles (2 periods)
              T = 0:1/Fs:duration;
              Vin = sin(2*pi*f*T)'; % Column vector for Vin
          case 'impulse'
              N = 2048;
              Vin = [1; zeros(N-1, 1)];
              T = (0:N-1)/Fs;
          case 'dc_sweep'
              N = 500;                      % Number of sweep points
              Vin = linspace(-1, 1, N)';    % DC sweep from -1 to 1 V
              T = Vin;                      % Use sweep voltage as x-axis
          otherwise
              error('Invalid inputType selected. Choose ''sine'', ''impulse'', or ''dc_sweep''.');
      end
      
      %% Sinusoidal Wavefolder Functions
      
      % (1) Standard Sinusoidal Wavefolder
      function y = standard_sinusoidal_wavefolder(x, foldAmount)
          y = sin(foldAmount * asin(x));
      end
      
      % (2) Phase-Inverted Sinusoidal Wavefolder
      function y = inverted_sinusoidal_wavefolder(x, foldAmount)
          y = -sin((pi/2) * asin(x)); % The phase-inverted version
      end
      
      %% Single Processing Loop
      Vout1 = zeros(size(Vin)); % Standard Sinusoidal Wavefolder
      Vout2 = zeros(size(Vin)); % Phase-Inverted Sinusoidal Wavefolder
      
      foldAmount = 2;  % Controls how much the wave folds (adjustable)
      
      for n = 1:length(Vin)
          Vout1(n) = standard_sinusoidal_wavefolder(Vin(n), foldAmount);
          Vout2(n) = inverted_sinusoidal_wavefolder(Vin(n), foldAmount);
      end
      
      %% Plotting
      if strcmp(inputType, 'sine')
          figure;
          subplot(2,1,1);
          plot(T, Vin, 'b-', 'LineWidth', 1);
          hold on;
          plot(T, Vout1, 'r-', 'LineWidth', 1);
          legend('Vin', 'Standard Wavefolder Vout');
          title('Standard Sinusoidal Wavefolder Output');
          xlabel('Time (s)');
          ylabel('Amplitude');
          grid on;
      
          subplot(2,1,2);
          plot(T, Vin, 'b-', 'LineWidth', 1);
          hold on;
          plot(T, Vout2, 'g-', 'LineWidth', 1);
          legend('Vin', 'Inverted Wavefolder Vout');
          title('Inverted Sinusoidal Wavefolder Output (-sin(π/2 x))');
          xlabel('Time (s)');
          ylabel('Amplitude');
          grid on;
      
      elseif strcmp(inputType, 'dc_sweep')
          figure;
          subplot(2,1,1);
          plot(T, Vout1, 'r-', 'LineWidth', 1);
          title('DC Sweep: Standard Sinusoidal Wavefolder');
          xlabel('Vin (V)');
          ylabel('Vout (V)');
          grid on;
          xlim([-1, 1]);
          ylim([-1, 1]);
      
          subplot(2,1,2);
          plot(T, Vout2, 'g-', 'LineWidth', 1);
          title('DC Sweep: Inverted Sinusoidal Wavefolder');
          xlabel('Vin (V)');
          ylabel('Vout (V)');
          grid on;
          xlim([-1, 1]);
          ylim([-1, 1]);
      
      else % impulse
          figure;
          subplot(2,1,1);
          stem(T, Vout1, 'filled');
          title('Impulse Response - Standard Wavefolder');
          xlabel('Time (s)');
          ylabel('Amplitude');
          grid on;
      
          subplot(2,1,2);
          stem(T, Vout2, 'filled');
          title('Impulse Response - Inverted Wavefolder');
          xlabel('Time (s)');
          ylabel('Amplitude');
          grid on;
      
          % Frequency response
          [H1, W1] = freqz(Vout1, 1, 2048, Fs);
          [H2, W2] = freqz(Vout2, 1, 2048, Fs);
      
          figure;
          subplot(2,1,1);
          semilogx(W1, 20*log10(abs(H1)), 'LineWidth', 1);
          title('Frequency Response: Standard Sinusoidal Wavefolder');
          xlabel('Frequency (Hz)');
          ylabel('Magnitude (dB)');
          grid on;
      
          subplot(2,1,2);
          semilogx(W2, 20*log10(abs(H2)), 'LineWidth', 1);
          title('Frequency Response: Inverted Sinusoidal Wavefolder');
          xlabel('Frequency (Hz)');
          ylabel('Magnitude (dB)');
          grid on;
      end
      

      EDIT: script link fixed

      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: PKG notarisation issue

      my command line prompt looks like:

      codesign --deep --force --timestamp --options runtime --sign 
      
      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: PKG notarisation issue

      I had this happen to me a couple months back. I think it ended up being an issue with a file that was part of the package. I haven't tried the new export feature yet, but I think you can get the log file to see the exact issue with:

      xcrun notarytool log <submission-id>
      
      
      posted in General Questions
      Dan KorneffD
      Dan Korneff
    • RE: How to get CPU serial number using HISE?

      @Christoph-Hart @ustk Confirmed working:

      Link Preview Image
      finalize UniqueID: Use stable SMBIOS fields to generate ID on Windows (70837bae) · Commits · Dan Korneff / HISE · GitLab

      The open source framework for sample based instruments

      favicon

      GitLab (gitlab.korneff.co)

      It requires 2 new files:
      juce_Span.h
      juce_EnumHelpers.h

      and edits to:
      juce_core.h
      juce_win32_SystemStats.cpp
      juce_SystemStats.cpp
      juce_OnlineUnlockStatus.cpp

      posted in General Questions
      Dan KorneffD
      Dan Korneff