jens and Claude Sonnet 5
97b1c34cee
Add generic headless plugin test host (Phase 1: core + audio I/O)
...
tools/testhost/ is a standalone CLI executable, not a JaySynth-specific
tool: it drives any VST2 plugin offline (no audio device, no GUI event
loop) via JUCE's own format-agnostic AudioPluginFormatManager /
AudioPluginInstance hosting API, so adding another format later (VST3,
LADSPA, eventually LV2) is just another addFormat() call - none of the
host logic changes.
- PluginHost: format-agnostic load/prepare/process/release, parameter
get/set, and patch/bank state I/O, all delegating straight to
AudioProcessor. Always queries the plugin's real input/output channel
counts rather than assuming "0 in" (instrument) or a fixed channel
layout - the same code path drives JaySynth (0 in/2 out, MIDI-driven)
and a stereo/mono effect identically.
- AudioInputSource: fills the plugin's input channels with silence
(default, correct no-op for instruments), a sine tone, white/pink
noise, or an impulse - what makes the host equally useful for
effect plugins, which need a real input signal to do anything.
- WavRecorder: records the plugin's actual output channel count to a
WAV file via WavAudioFormat/AudioFormatWriter.
- main.cpp: CLI (--plugin/--patch/--param/--note/--input/--duration/
--wav/--sampleRate/--blockSize), with basic NaN/Inf output detection.
Has its own JuceLibraryCode-equivalent package that compiles only the
module amalgams needed for hosting (not juce_audio_plugin_client,
which is the plugin-side VST entry point and would collide with this
executable's own main()), reusing the already-vendored
sdk/juce/JUCE-3.1.1 rather than a second JUCE copy - the host and any
plugin it loads are decoupled at the VST2 ABI, not the JUCE source
level, so this doesn't need to track JaySynth's own future JUCE
version bump.
Verified: builds clean (no new warnings) via
`MAKE_HOME=... make -C tools/testhost`. Smoke-tested against two very
different real plugins:
- build/linux/release/JaySynth.so (0 in/2 out, MIDI-driven): --note
60 100 --duration 2 --wav produces correct-length, non-silent,
NaN-free stereo audio.
- /usr/lib/vst/ZamDelay-vst.so (1 in/1 out, real third-party VST2
effect, no MIDI): --input pink --duration 2 --wav correctly sizes
input/output to mono and produces non-silent, NaN-free audio -
proof the host is generic, not JaySynth-shaped.
- /usr/lib/vst/ZamEQ2-vst.so: the host's own NaN/Inf detection caught
a real NaN in this plugin's default state on first render - exactly
the kind of regression this tool exists to catch without a GUI.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_011dhtwRLARk4eiPngcQykLJ
2026-07-27 19:09:06 +02:00
jens
e9a5784ed1
refactored pacth import/export
2026-05-10 16:10:51 +02:00
jens
f72a89ed61
no setCurrentProgram on getCurrentSatte
2026-05-10 13:55:47 +02:00
jens
17b12fe3f1
fix midi controller dialog
2026-05-10 13:37:38 +02:00
jens
255858cee8
- combo boxes have midi controller dialog
...
- reduce update of parameter sliders during Midi Controller Dialog
2026-05-10 13:08:35 +02:00
jens
15bcf87529
improved assignment of midi controllers
2026-05-10 12:11:34 +02:00
jens
31a0c4c009
fixed NRPN
2026-05-10 10:53:26 +02:00
jens
6e67193c3d
- robusten and refactored NRPN
...
- increased number of midicontrollers from 128 to 1024
2026-05-10 10:36:24 +02:00
jens
cbdb18e6ba
handleController for CC and NPRN
2026-05-09 22:11:40 +02:00
jens
bc2020e612
NRPN: normalized by max value
2026-05-09 22:04:21 +02:00
jens
8ce2db511b
added Midi NRPN
2026-05-09 20:37:17 +02:00
jens
6be1b4a911
updated .gitignore
2026-05-09 08:37:16 +02:00
jens
a8e6593eed
used -pre suffix for version
2026-05-09 08:34:24 +02:00
jens
c392104aec
- refactored kml import/export
...
- added ability to import patch file with midicc defined without patch parameter
- fixed notes cut off by calling getStateInformation()
- disabled limiter
- increased version to v1.1.0-pre
2026-05-09 08:34:01 +02:00
jens
0de8c05f00
fixed behavior whenn unison and humanize is set over midi
2026-05-09 08:30:12 +02:00
jens
597c70bb53
fixed eval_blep
2026-05-09 08:29:00 +02:00
jens
c7c9366dbb
- refactored
...
- remove DC
2025-08-22 14:49:50 +02:00
jens
2ab8c68c9b
m-files fixed wavwrite
2025-08-22 13:39:23 +02:00
jens
21411d2c56
m-files compile clean
2025-08-21 21:09:48 +02:00
jens
4f7803a8b4
added doc
2025-08-21 07:52:16 +02:00
jens
64c6745c76
added matlab
2025-08-21 07:27:52 +02:00
jens
fd522e1b99
no SYNTH_DEBUG for release build
2025-08-18 21:55:31 +02:00
jens
7e11e3e72b
fixed midi sync led
2025-08-18 21:42:19 +02:00
jens
ed737f526f
updated .gitignore
2025-08-18 18:35:13 +02:00
jens
83afc11612
- added run and install target
2025-08-18 18:32:08 +02:00
jens
8a81dd649e
added web URL for later reference
2025-08-18 18:31:26 +02:00
jens
42e877c08d
fixed includes
2025-08-18 18:30:55 +02:00
jens
1e0760e49b
fixed includes
2025-08-18 18:29:25 +02:00
jens
db4fdf68ff
fixed MidiClock now working with ardour
2025-08-18 18:22:55 +02:00
jens
314b57b1ed
fixing MidiClock (Zwischenstand #3 )
2025-08-18 09:37:39 +02:00
jens
a3ad0e989e
fixing MidiClock (Zwischenstand #2 )
2025-08-16 15:10:26 +02:00
jens
159fa60b08
fixing MidiClock (Zwischenstand)
2025-08-16 14:16:13 +02:00
jens
e3fb2074f6
DSP: changed from float to double
2025-08-08 17:44:01 +02:00
jens
7fcbb9b509
Fixed code problems
2025-08-08 16:36:22 +02:00
jens
3a19db6a86
Fixed code problems
2025-08-08 16:36:09 +02:00
jens
d73f172fc1
added bear target
2025-08-08 16:35:29 +02:00
jens
f05e3be55f
Fixed code problems
2025-08-08 16:35:04 +02:00
jens
2ec3cc9543
added run target
2025-08-08 13:54:33 +02:00
jens
0f70ea025c
change submodule/make
2025-08-08 13:54:08 +02:00
jens
2ac71f33f1
added new waves
2025-08-06 22:08:46 +02:00
jens
73332a7292
refactored wavetable constants
2025-08-06 22:08:13 +02:00
jens
4bf46df821
- added 12bit wace for Microwave
...
- refactored
2025-08-06 21:15:12 +02:00
jens
072280c603
refactored waves
2025-08-06 07:51:29 +02:00
jens
4a4d67f5f1
- wavetable using Waldorf Microwave "wave.bin" (16bit) is broken
...
- wavetable uses "wave2.bin" (8bit) Waveforms
-
2025-08-05 19:36:59 +02:00
jens
12783fdfdb
removed unused include
2025-08-03 20:51:34 +02:00
jens
63e1daa706
export waves to uild folder
2025-08-03 20:42:07 +02:00
jens
bc8a2b5b20
cleaned up
2025-08-03 20:35:59 +02:00
jens
26c3ee4cb6
- fixed problems
...
- updated .gitignore
2025-08-03 17:04:57 +02:00
jens
c0e651bf68
- refactored
2025-08-03 10:57:01 +02:00
jens
d801ce21e8
added patch
2025-08-02 14:36:02 +02:00
jens
025818a042
[sdk/vstsdk2.4]
...
- refactored
- created patch
2025-08-02 14:34:53 +02:00
jens
3bda521d62
- fixed master volume
...
- added osc jitter to blep waveform saw, square and tri
2025-08-02 12:04:40 +02:00
jens
ff6ba8a179
permit to override default make environment
2025-08-02 10:24:41 +02:00
jens
2afe0cfccc
change submodule/make
2025-08-02 10:23:53 +02:00
jens
e666247a45
change submodule/fir
2025-08-02 10:22:04 +02:00
jens
dab1ed956f
juce: use
2025-08-02 10:17:55 +02:00
jens
0dd21799f9
[VCO/Blit/Sawtooth]
...
- added slight random frequency deviation for more vivid sound
2025-07-31 18:15:08 +02:00
jens
bcfe5e4edd
fixed
2025-07-31 18:14:23 +02:00
jens
4d25a24e53
disabled limiter
2025-07-31 18:13:16 +02:00
jens
3e63bdd4ce
added sounds
2025-07-31 18:01:49 +02:00
jens
465bc88e8f
removed linefeed
2025-07-31 16:41:24 +02:00
jens
6e8b990391
-fixed includes
2025-07-31 16:39:38 +02:00
jens
6fc6b9f567
- added submodules
2025-07-29 20:43:25 +02:00
jens
7ef6975cb3
- adde exra sounds
2024-03-04 08:40:52 +01:00
jens
42d155fdac
- compile clean for GCC 13
2024-03-04 08:34:54 +01:00
jens
10e92afcf4
- fixed updating GUI params
2023-05-04 22:14:18 +02:00
jens
63bb047c1e
- fixed unisono toggle
2023-05-04 21:16:50 +02:00
jens
89502ec978
Refactored
2023-05-03 18:06:30 +02:00
jens
6bd4590a54
- added legacy (< v1.0.0) import for patches
...
- added legacy (< v1.0.0) import for banks
2023-05-03 17:59:08 +02:00
jens
c9c06c9d97
- fixed crash on setStateInformation/setCurrentStateInformation
...
- fixed crash on getStateInformation/getCurrentStateInformation
2023-05-02 19:47:51 +02:00
jens
764f5fdf74
- fixed leakage during patch load
...
- fixed leakage during bank load
2023-05-02 18:21:12 +02:00
jens
4b73b5ba69
- put version info into Makefile
2023-05-02 18:19:48 +02:00
jens
ca353251f4
- refactored XML structure
...
- new XML structure not compatible to old structure
2023-04-29 00:05:13 +02:00
jens
08b70cb57b
- refactored XML structure
...
- new XML structure not compatible to old structure
2023-04-29 00:00:34 +02:00
jens
c5a87ef41b
Added xmb, xmp files
2023-04-28 19:49:34 +02:00
jens
92d911d9ed
Remember directory
2023-04-28 15:38:29 +02:00
jens
ea4397907f
- added load of fxb through GUI
...
- added load of fxp through GUI
2023-04-28 14:08:59 +02:00
jens
b4add9e530
- constify
...
- refactored MidiCC
- JaySynthSound is not MidiCC, but has MidiCC
- refactored xml import export for patches and banks
2023-04-28 12:32:26 +02:00
jens
5850ab5d46
- Bank/Patch load/save: Opens fileChooser on btn press and calls pluginProcessor
2023-04-28 09:47:31 +02:00
jens
45f2696b77
Added GUI buttons for bank/patch load and save
2023-04-28 08:31:59 +02:00
jens
8819167c54
Fixed waves path for linux
2023-04-28 08:30:23 +02:00
jens
e247245d5f
- revert removing fir
2023-04-26 22:01:57 +02:00
jens
cb14eaef59
- cleaned up module Makefiles
...
- reduce variable settings in Makefile
2023-04-26 21:39:41 +02:00
jens
6dadebb700
- refactored sound banks and sound patches
...
- added Microwave raw waveforms
- added additional sound bank
2023-04-26 14:55:26 +02:00
jens
7932c098e8
- fixed uppercase in inclusion of MMReg.h
...
- fixed _uuidof for MinGW
2023-04-26 14:45:54 +02:00
jens
b4f4b1fa66
- Refactored MAke system. Put sources into config.mk
...
- export variables of main Makefile
2023-04-26 10:50:12 +02:00
jens
91518b32e5
- added Makefile for windows target
2023-04-26 10:48:03 +02:00
jens
05ec69ca99
- added Make files for windows target using mingw
2023-04-26 10:47:27 +02:00
jens
51311d41c0
- deleted
2023-04-26 10:46:41 +02:00
jens
5e20cebcc6
- fixed Juce path
2023-04-21 14:50:46 +02:00
jens
3af11a3278
- added config.mk and Makefile for Jay's build system
2023-04-21 14:29:31 +02:00
jens
978c752e8b
- use jsy_min/jsy_max
...
- fixed includes
- removed redundant MW table
- added Missing JK_MidiClock
2023-04-21 14:25:04 +02:00
jens
2fcbc59880
- Makefile now for Linux
...
- compile clean
2023-04-21 14:21:38 +02:00
jens
762b8f0e7d
- clean working copy for leaving SVN
2022-06-28 19:04:46 +02:00
jens
62a2d47cb3
- BPM display use BPM calculation from LFO
...
- LFO: fixed S&H waveforms
git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@737 b431acfa-c32f-4a4a-93f1-934dc6c82436
2020-08-24 11:46:40 +00:00
jens
ef6d5fdb7e
- also feed Global LFO 2..4 with Midi Clock
...
- set parameter text for MIDISYNC_MODE
git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@736 b431acfa-c32f-4a4a-93f1-934dc6c82436
2020-08-17 20:53:43 +00:00
jens
c5ba984db2
- reverted removing JK Midi Clock
...
git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@735 b431acfa-c32f-4a4a-93f1-934dc6c82436
2020-08-17 17:44:52 +00:00
jens
e60083523d
- removed JK Midi clock
...
git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@734 b431acfa-c32f-4a4a-93f1-934dc6c82436
2020-08-17 17:34:44 +00:00
jens
2eb2a15b18
- removed JK Midi clock
...
git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@733 b431acfa-c32f-4a4a-93f1-934dc6c82436
2020-08-17 17:33:44 +00:00
jens
a561dbeb19
- set thread name in initializer
...
git-svn-id: http://moon:8086/svn/software/trunk/projects/JaySynth@732 b431acfa-c32f-4a4a-93f1-934dc6c82436
2020-08-17 12:07:25 +00:00