10 #define USE_TEST_MAIN // use the main() function in test_support.h
14 #ifdef USE_JMIDI // new way with JUCE midi
39 logMsg(
"Default MIDI in = %d", MidiInput::getDefaultDeviceIndex());
40 logMsg(
"Default MIDI out = %d", MidiOutput::getDefaultDeviceIndex());
68 ADSR env(1.0, 0.05, 0.1, 0.7, 0.6);
70 osc.setFrequency(1017.0f);
72 rev.setRoomSize(0.92);
75 logMsg(
"testing MIDIIn playback");
79 if(in.
mMsg.isNoteOn()) {
80 logMsg(
"MIDI note %d vel. %d", in.
mMsg.getNote(), in.
mMsg.getVelocity());
81 osc.setFrequency(in.
mMsg.getFrequency());
82 env.scaleValues(in.
mMsg.getVelocityFloat() / 2.0f );
85 if(in.
mMsg.isNoteOff()) {
107 class MIDIListener :
public Observer {
110 void update(
void * arg) {
116 MIDIListener(
MIDIIn * in) : mIn(in) { };
124 void testListener() {
127 MIDIListener lst(&in);
131 logMsg(
"Start MIDI listener");
146 void testMIDIFile() {
150 logMsg(
"Setting up instrument library");
151 for (
unsigned i = 0; i < 16; i++) {
153 lib[i].push_back(in);
160 rev.setRoomSize(0.8);
162 logMsg(
"Load MIDI score");
165 logMsg(
"Start MIDI player");
184 #ifdef USE_LOSC // liblo for OSC
191 void testOSCServer() {
193 logMsg(
"Setting up instrument library");
196 for (
unsigned i = 0; i < 16; i++) {
202 rev.setRoomSize(0.8);
215 logMsg(
"OSC server waiting for input\n");
226 void testOSCClientServer() {
228 logMsg(
"Setting up instrument library");
231 for (
unsigned i = 0; i < 16; i++) {
237 rev.setRoomSize(0.8);
257 logMsg(
"Sending OSC note cmds");
263 for (
unsigned i = 0; i < 64; i++) {
264 sprintf(pNam,
"/i%d/pn", (i % 16)+1);
265 float dur =
fRandM(0.15f, 1.5f);
266 float ampl =
fRandM(0.2, 0.8);
267 float freq =
fRandM(60, 500);
269 if (
lo_send(ad, pNam,
"ffff", dur, ampl, freq, pos) == -1) {
276 logMsg(
"Sending OSC quit");
277 if (
lo_send(ad,
"/q", NULL) == -1) {
291 "Dump ports", IO_test,
"Dump list of MIDI ports to stdout",
292 "Dump input", input_test,
"Dump MIDI input from default device",
293 "MIDI notes", play_test,
"Play MIDI notes (reads MIDI kbd)",
294 "MIDI output", output_test,
"Test sending MIDI output",
295 "MIDI listener", testListener,
"Start the MIDI listener object",
296 "MIDI file player", testMIDIFile,
"Play a MIDI file on an instrument library",
297 #ifdef USE_LOSC // liblo for OSC
298 "OSC client/server", testOSCClientServer,
"OSC client/server on a library",
299 "OSC server", testOSCServer,
"Start OSC server on a library",