View Single Post
Old 09-03-2018, 01:51 AM   #23
Human being with feelings
Join Date: Aug 2018
Location: Maastricht
Posts: 59

As I'm developing my own Teensy based controller I can use the OSC messages as they are defined in the default config. No changes of any kind are required for operation. However, it does make sense to comment out OSC messages you'll never use but it's not necessary.
I've gotten to the point where the initial Reaper track data dump is parsed and stored in structs like this one.
// struct containing Reaper track info & data
struct track{
  char        name[NAME_LENGTH];              // track name
  int         number;                         // track number
  char        volumeStr[VALUE_LENGTH];        // volume string    
  float       volume;                         // normalised volume
  char        panStr[VALUE_LENGTH];           // panning string    
  float       pan;                            // normalised panning
  bool        rec;                            // record arm
  bool        mute;                           // track mute
  bool        solo;                           // track solo
  bool        monitor;                        // track monitor
  TrackSend   send[NUM_OF_SENDS];             // track sends
  TrackInsert insert[NUM_OF_INSERTS];         // track effects/instrument plugins
typedef struct track Track;
A function displays the content on the serial monitor.
Selected track data:
	Name		SEM
	Number		1
	Volume		-8.42dB
	Pan		C
	Record		1
	Mute		0
	Solo		0
	Monitor		0

	Send 1		Lexicon		-38.6dB		center
	Send 2		AMS		-26.1dB		center
	Send 3		Send 3		-inf dB		center
	Send 4		Send 4		-inf dB		center
	Send 5		Send 5		-inf dB		center
	Send 6		Send 6		-inf dB		center
	Send 7		Send 7		-inf dB		center
	Send 8		Send 8		-inf dB		center

	Insert 1	1	Oberheim SEM V (Arturia)
	Insert 2	0	ReaDelay (Cockos)
	Insert 3	1	Red 2 EQ
	Insert 4	1	ReaEQ (Cockos)
	Insert 5	0	
	Insert 6	0	
	Insert 7	0	
	Insert 8	0
The string representations are shown, the normalised values are present but not shown here to reduce clutter.

Parameters of the selected plugin/instrument:
	Master Volume		0.8160
	Master Tune		        0.5000
	VCO1 Freq (fine)		0.5000
	VCO1 Freq (coarse)	0.0000
	VCO1 PW		       0.5000
	VCO1 Modulation Amount		0.4080
	VCO2 Freq (fine)		0.5000
	VCO2 Freq (coarse)	0.0000
	VCO2 PW		0.5000
	VCO2 Modulation Amount		0.5000
	VCO Hard Sync		off
	ENV1 Attack		0.0000
	ENV1 Decay		0.1000
	ENV1 Sustain		1.0000
	ENV2 Attack		0.0000
	ENV2 Decay		0.0000
Again we see the issue that this thread is about: The string does not contain the formatted string but the normalised value except for the parameter 'VCO Hard Sync' where the string is actually a formatted string.

Overview of the tracks (number, volume, pan, track name, 1st plugin name, 1st send name):
	1	-8.42dB		C	SEM		Oberheim SEM V (Arturia)		Lexicon
	2	0.00dB		C	Marshall		Big Muff		Lexicon
	3	0.00dB		C	Clean Guitar		ReaTuner		EMT Plate
	4	0.00dB		C	Synth		Pultec HLF-3C		Lexicon
	5	0.00dB		C	Lexicon		Lexicon 224		Send 1
	6	0.00dB		C	EMT Plate		EMT 140		Send 1
	7	0.00dB		C	AMS		AMS RMX16		Send 1
	8	-inf dB		C	Track 8				Send 1
	9	-inf dB		C	Track 9				Send 1
	10	-inf dB		C	Track 10				Send 1
	11	-inf dB		C	Track 11				Send 1
	12	-inf dB		C	Track 12				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
Just the first send and plugin are shown here, the purpose is to check if the parsing went OK. Now that I've got the basics covered I can start testing the behaviour (what is sent when).
Gerrit is offline   Reply With Quote