Old 09-15-2018, 12:10 AM   #1
Gerrit
Human being with feelings
 
Join Date: Aug 2018
Location: Maastricht
Posts: 92
Default Teensy based OSC controller for Reaper

For anyone interested in building their own OSC controller for Reaper, I started a thread on a Teensy based OSC controller over at the PJRC Forum. My focus is on plugin control with extensive text feedback but the controller will of course also handle all the standard track functions.

Here's an example of the data received after triggering the 'reset all control surfaces' action:
Code:
SELECTED TRACK PARAMETERS
	Name		Clean Guitar
	Number		3
	Volume		0.00dB
	Pan		C
	Record		0
	Mute		0
	Solo		0
	Monitor		0

	Send 1		EMT Plate	-19.4dB		center
	Send 2		Time Cube	-46.9dB		center
	Send 3		Send 3		-inf dB		center
	Send 4		Send 4		-inf dB		center
	Send 5		                                		                		                
	Send 6		                                		                		                
	Send 7		                                		                		                
	Send 8		                                		                		                

	Insert 1	1	ReaTuner
	Insert 2	1	SPL TwinTube
	Insert 3	1	Dimension D Chorus
	Insert 4	0	
	Insert 5	0	
	Insert 6	0	
	Insert 7	0	
	Insert 8	0	

SELECTED INSERT PARAMETERS
	Preset		A
	Har On		On
	Sat On		On
	Freq		2
	Har		0.6140
	Sat		0.2000
	Output		0.5000
	Bypass		normal
	Wet		100
			
TRACK OVERVIEW
	1	-8.42dB		C	SEM		Oberheim SEM V		Lexicon
	2	0.00dB		C	Marshall	Big Muff		Lexicon
	3	0.00dB		C	Clean Guitar	ReaTuner		EMT Plate
	4	0.00dB		C	Piano		ReaInsert (Cockos)	Lexicon
	5	-9.72dB		C	Moog		ReaInsert (Cockos)	Lexicon
	6	0.00dB		C	ARP		ReaInsert (Cockos)	Lexicon
	7	-0.29dB		C	OB-6		ReaInsert (Cockos)	Send 1
	8	0.00dB		C	Prophet		ReaInsert (Cockos)	Send 1
	9	+1.13dB		C	Oppo					Lexicon
	10	0.00dB		C	Lexicon		Lexicon 224		Send 1
	11	0.00dB		C	EMT Plate	EMT 140			Send 1
	12	0.00dB		C	Time Cube	Cooper Time Cube	Send 1
	13	-inf dB		C	Track 13				Send 1
	14	-inf dB		C	Track 14				Send 1
	15	-inf dB		C	Track 15				Send 1
	16	-inf dB		C	Track 16				Send 1
A really great feature is the way naming works in Reaper, alias names created for plugins and/or parameters are sent over OSC!
Although the controller setup is pretty basic for now it's already possible to navigate to any plugin(parameter) for editing. Track number and name, plugin name and parameter name are displayed to provide context so the user knows exactly what's being edited and what the current setting is.
Reaper_OSC_test_small.jpg
I'm currently still exploring the possibilities, when I'm confident all the required functionality is available I'll start converting my Teensy based MIDI controller to OSC.
Zeus-DPC-Lexicon-front_small.jpg
The controller has 16 high resolution Bourns EM14 series optical rotary encoders for editing values and two 800x480 pixel displays for presenting data. The buttons on the controller are a subset of what's available on a Mackie MCU. The selection of functions is geared towards use for tracking and/or mastering i.e. working in detail on a single track.
The Reaper OSC interface also offers new possibilities for the controller, it will require some thinking to figure out how to make use of these possibilities with the current interface. The current MIDI controller plugin control only works with Logic Pro X, not with Reaper or any other DAW so I have to come up with something new anyhow.
Gerrit is offline   Reply With Quote
Old 09-15-2018, 12:50 AM   #2
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

Congratulations !
This in fact does seem like a very promising project !

BTW. (RE: " unfortunately OSC support is still rare") :
A friend of mine uses a RASPI 3 to connect his Guitar pedal board via OSC to an XR-18 Rack mixer. Works great. He did the programming in Python.
I use Reaper and OSCIIBot to connect my XTouch Compact to the same XR18. I did JSFX scripts and OSCIIBot Scripts in EEL for this.
Moreover the XR18 is connected via OSC with two Tablets (one Windows, and one Android) running the software provided with the XR18.

All lat the same time when practicing and "on stage".

-Michael

Last edited by mschnell; 09-15-2018 at 01:04 AM.
mschnell is offline   Reply With Quote
Old 09-15-2018, 03:23 AM   #3
Gerrit
Human being with feelings
 
Join Date: Aug 2018
Location: Maastricht
Posts: 92
Default

Quote:
Originally Posted by mschnell View Post
Congratulations !
This in fact does seem like a very promising project !

BTW. (RE: " unfortunately OSC support is still rare") :
A friend of mine uses a RASPI 3 to connect his Guitar pedal board via OSC to an XR-18 Rack mixer. Works great. He did the programming in Python.
I use Reaper and OSCIIBot to connect my XTouch Compact to the same XR18. I did JSFX scripts and OSCIIBot Scripts in EEL for this.
Moreover the XR18 is connected via OSC with two Tablets (one Windows, and one Android) running the software provided with the XR18.

All lat the same time when practicing and "on stage".

-Michael
Thanks
Nice setup you created!

I thought about using a RPi as it would allow for more complex graphical user interface design and it has ethernet is built in. On the other hand, a RPi is much more complex with a complete operating system and all that goes with it. A Pi also requires more power, USB buspower is out of the question and I don't know if POE (power over ethernet) can supply enough power. My OSC test controller with 2.4" display is USB bus powered. A Teensy or Arduino is essentially very simple and your program (sketch in Arduino terms) is very close to the hardware itself. With the available OSC library it's pretty easy to get OSC working on a Teensy although not so obvious if you're just getting into Arduino/Teensy programming. The basic OSC controller is intended as a starting point for developing a custom controller, the sketch contains most of the functions one would need to receive and send OSC messages. There're tons of examples when it comes to MIDI controllers but there's very little OSC stuff which is a shame because OSC is really great if you want feedback i.e. for two-way controllers.
Gerrit is offline   Reply With Quote
Old 09-15-2018, 05:12 AM   #4
Sju
Human being with feelings
 
Join Date: Jun 2015
Posts: 685
Default

I'll be following the threads keenly. I've got an Arduino Micro which I intend to turn into a Faderport-like controller. Thank you for documenting your project!
Sju is offline   Reply With Quote
Old 09-15-2018, 05:20 AM   #5
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
Default

AFAIR, POE can provide a lot of power as the switch and the device communicte which voltage is to be used, and can set 42 Volt. But I don't suppose, POE is implemented in the RASPi board, so additional hardware would be necessary. -> https://www.raspberrypi.org/products/poe-hat/

In fact OSC is less common than Midi, as USB is just plug and play, while OSC in by far the most incarnations is done via a network by UDP, and here you need to take care of knowing or detecting the correct IP addresses.

-Michael

Last edited by mschnell; 09-15-2018 at 06:25 AM.
mschnell is offline   Reply With Quote
Old 09-16-2018, 01:21 AM   #6
Gerrit
Human being with feelings
 
Join Date: Aug 2018
Location: Maastricht
Posts: 92
Default

Quote:
Originally Posted by Sju View Post
I'll be following the threads keenly. I've got an Arduino Micro which I intend to turn into a Faderport-like controller. Thank you for documenting your project!
This thread might interest you too: Teensy 3.6 controlled motorfader panel. The panel is I2C controlled so multiple panels can be linked to one controller. It's part of a step sequencer I'm working on, ARP style with presets and multiple parameters. This thread on shift registers contains some more pictures of the interior and construction of my MIDI controller.
When it comes to MIDI over USB the Teensy is king. The MIDI library has undergone a major upgrade last January, USB, USB host and serial are now all handled the same way. A Teensy can be a standard USB MIDI device with up to 16 virtual ports, there's even an example of a 3x3 MIDI USB interface in the Teensyduino installation.
My DAW controller also doubles as a hardware synth controller over a separate MIDI port. It can receive bulk program dumps from several synths which are stored on micro SD card, all the programs for 6 synths are stored this way. The controller allows you to select programs (with names) and edit 16 parameters. For each of the 6 synths the edit state (+selected program) is maintained so I can switch between synths and the controller remembers the tweaks.

Quote:
Originally Posted by mschnell View Post
AFAIR, POE can provide a lot of power as the switch and the device communicte which voltage is to be used, and can set 42 Volt. But I don't suppose, POE is implemented in the RASPi board, so additional hardware would be necessary. -> https://www.raspberrypi.org/products/poe-hat/

In fact OSC is less common than Midi, as USB is just plug and play, while OSC in by far the most incarnations is done via a network by UDP, and here you need to take care of knowing or detecting the correct IP addresses.

-Michael
You're correct, MIDI over USB is simpler to connect and get working but I think the lack of uptake of OSC has more to do with inertia in the industry. It seems to be a classic example of the chicken-egg problem.

MIDI is an excellent protocol for what is was designed to do but detailed textual feedback was not part of the design. There has been a recent extension of the MIDI standard to accommodate messages for querying and receiving more detailed data on the state of devices but it all seems a bit bolted on to me. Same with NRPN, an addition to patch a limitation in the standard.
OSC has been designed from the ground up to go beyond the limitations of MIDI, it's a much more modern protocol with decent datatypes. I think it's an elegant protocol with immense possibilities which deserves more attention.
Gerrit is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 08:47 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.