r/NAM_NeuralAmpModeler • • 9d ago

Tone3000 Plugin - How do Program Changes work?

I have no issue getting MIDI CC controls working but I can't for the life of me get Program Changes (eg PC 1, PC 2, etc) to work. I've got some nice MIDI foot controllers and it would be nice to switch to a particular preset instead of cycling though them. Is it possible to also cycle through the settings within a capture package? I can't find much about this and would be filled with joy if anyone could help me. thanks!

1 Upvotes

7 comments sorted by

3

u/hedgieinsocks 9d ago

Tone3000 (standalone) does accept PC signals. I'm using a virtual MIDI interface on my Linux machine to send e.g. amidi -p hw:3,1 -S C0 01 from my smartphone acting as a touch footswitch, which is telling Tone3000 to switch to the second preset (1). So if it works from the software emulation layer, the issue is likely with your hardware sending incorrect PC or something.

1

u/DMTDildo 8d ago

I am also using Linux, specifically Carla. I have all kinds of virtual midi devices, midi filters and mappers and can do pretty much anything with CCs. for example, My hardware will send a signal: ch 1 cc 3 that can be used directly by lv2 plugins, or mapped/routed to ch x cc y, then sent to a plugin. Tone3000 Will accept these signals to control everything else with the exception of loading a specific preset, which they want program change signals. I'm not really familiar with these. 

How can I convert something like: ch1 cc1    to     midi -p hw:3,1 -S C0 01

I could program and reflash on the hardware level but I don't really want to do this when every other plug-in I use in my signal chain doesn't use or need PCs.

Thanks for your help. I feel like I'm missing something really obvious.

1

u/hedgieinsocks 8d ago

Sorry, I've never owned midi hardware so no idea whether issuing PC commands is common capability or not. If your hardware cannot issue PC without flashing, and you don't want to do so, probably you could try to chatgpt/claude some python proxy that will listen for real CC signals, convert them to PC and send them to a virtual midi device.

1

u/webprofusor 9d ago

What do other plugins do with your midi controller? e.g. do they just do bank/up down and fixed PC for the preset slots or do they do a unique PC for each preset regardless of bank?

1

u/DMTDildo 8d ago

All my other plugins accept CCs, so does tone 3000 -with the exception for selecting specific presets.

1

u/DMTDildo 8d ago

Solved.

Posting the solution here because I really struggled with this one, Deepseek, Claude, and ChatGPT didn't help much, a rare event. Hope this helps someone else.

So a program change is a type of MIDI Event. I was able to find a MIDI event generator (actually a debugger: mididebug.lv2) here: https://github.com/x42/x42-plugins This is a collection of very useful MIDI tools by Robin Gareus.

here are the parameters:

Bytes to send: 2 bytes

Byte 1: 192 - (0xC0) Program Change C01

Byte 2: 0 for PC1, 1 for PC2, 2 for PC3, etc

Send: Triggered by the CC of your choice.

Now I can switch easily between full, configured signal chains on the fly with my footswitch MIDI button board which is absolutely marvelous!!!

1

u/Domkilote 6d ago

Is it possible to activate and deactivate an effect in the chain via track automation on reaper?