@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.

Posts
-
RE: machine learning to capture analog tech
-
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.
-
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. -
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.
-
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.4building from the autogenerated projucer file works as expected.
-
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-isonlineThe 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. -
RE: In plugin help system
@Christoph-Hart This new found magical power is intoxicating!
-
RE: In plugin help system
@Christoph-Hart I'm using markdown for my embedded documentation. Please don't kill it
-
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 -
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.
-
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
-
RE: HISE Meet Up
@Simon I just saw that a recorder is part of the High Performance Backend. Time for more server tinkering.
-
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.
-
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.
-
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.pdfThe 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.
Here's the Octave script if you want to play around with it:
% 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
-
RE: PKG notarisation issue
my command line prompt looks like:
codesign --deep --force --timestamp --options runtime --sign
-
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>
-
RE: How to get CPU serial number using HISE?
@Christoph-Hart @ustk Confirmed working:
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
GitLab (gitlab.korneff.co)
It requires 2 new files:
juce_Span.h
juce_EnumHelpers.hand edits to:
juce_core.h
juce_win32_SystemStats.cpp
juce_SystemStats.cpp
juce_OnlineUnlockStatus.cpp