declare version "2.81.0";
declare compile_options "-single -scal ../../build/bin/faust -I dsp -e dsp/midi_tester.dsp -o reference/midi_tester.box";
declare author "Vincent Rateau, GRAME";
declare filename "midi_tester.dsp";
declare license "GPL v3";
declare name "Faust Midi Tester";
declare reference "www.sonejo.net";
declare version "1.0";
ID_0 = _, 0;
ID_1 = (ID_0 : *);
ID_2 = hslider("Ctrl Value IN (Ctrl 50) [midi:ctrl 50]", 6e+01f, 0.0f, 127.0f, 1.0f);
ID_3 = hbargraph("Ctrl Value OUT (Ctrl 51) [midi:ctrl 51]", 0.0f, 127.0f);
ID_4 = (ID_2 : ID_3);
ID_5 = checkbox("Ctrl Bool IN (Ctrl 100) [midi:ctrl 100]");
ID_6 = hbargraph("Ctrl Bool OUT (Ctrl 101) [midi:ctrl 101]", 0.0f, 1.0f);
ID_7 = (ID_5 : ID_6);
ID_8 = ID_4, ID_7;
ID_9 = vgroup("CTRL IN/OUT", ID_8);
ID_10 = hslider("NoteOn Value IN (Note 50) [midi:keyon 50]", 6e+01f, 0.0f, 127.0f, 1.0f);
ID_11 = hbargraph("NoteOn Value OUT (Note 51) [midi:keyon 51]", 0.0f, 127.0f);
ID_12 = (ID_10 : ID_11);
ID_13 = checkbox("NoteOn Bool IN (Note 100) [midi:keyon 100]");
ID_14 = hbargraph("NoteOn Bool OUT (Note 101) [midi:keyon 101]", 0.0f, 1.0f);
ID_15 = (ID_13 : ID_14);
ID_16 = ID_12, ID_15;
ID_17 = vgroup("NOTE ON IN/OUT", ID_16);
ID_18 = hslider("NoteOff Value IN (Note 50) [midi:keyoff 50]", 6e+01f, 0.0f, 127.0f, 1.0f);
ID_19 = hbargraph("NoteOff Value OUT (Note 51) [midi:keyoff 51]", 0.0f, 127.0f);
ID_20 = (ID_18 : ID_19);
ID_21 = checkbox("NoteOff Bool IN (Note 100) [midi:keyoff 100]");
ID_22 = hbargraph("NoteOff Bool OUT (Note 101) [midi:keyoff 101]", 0.0f, 1.0f);
ID_23 = (ID_21 : ID_22);
ID_24 = ID_20, ID_23;
ID_25 = vgroup("NOTE OFF IN/OUT", ID_24);
ID_26 = checkbox("MIDI clock signal [midi:clock]");
ID_27 = checkbox("MIDI START/STOP [midi:start] [midi:stop]");
ID_28 = ID_26, ID_27;
ID_29 = vgroup("MIDI SYNC (IN)", ID_28);
ID_30 = ID_25, ID_29;
ID_31 = ID_17, ID_30;
ID_32 = ID_9, ID_31;
ID_33 = hgroup("[1]", ID_32);
ID_34 = hslider("Note KAT Value IN (Note 50) [midi:keypress 50]", 6e+01f, 0.0f, 127.0f, 1.0f);
ID_35 = hbargraph("Note KAT Value OUT (Note 51) [midi:keypress 51]", 0.0f, 127.0f);
ID_36 = (ID_34 : ID_35);
ID_37 = checkbox("Note KAT Bool IN (Note 100) [midi:keypress 100]");
ID_38 = hbargraph("Note KAT Bool OUT (Note 101) [midi:keypress 101]", 0.0f, 1.0f);
ID_39 = (ID_37 : ID_38);
ID_40 = ID_36, ID_39;
ID_41 = vgroup("KEY AFTERTOUCH (KAT) IN/OUT", ID_40);
ID_42 = hslider("ProgramChange Value IN (PC 50) [midi:pgm 50]", 6e+01f, 0.0f, 127.0f, 1.0f);
ID_43 = hbargraph("ProgramChange Value OUT (PC 51) [midi:pgm 51]", 0.0f, 127.0f);
ID_44 = (ID_42 : ID_43);
ID_45 = checkbox("ProgramChange Bool IN (PC 100) [midi:pgm 100]");
ID_46 = hbargraph("ProgramChange Bool OUT (PC 101) [midi:pgm 101]", 0.0f, 1.0f);
ID_47 = (ID_45 : ID_46);
ID_48 = ID_44, ID_47;
ID_49 = vgroup("PROGRAM CHANGE (PC) IN/OUT", ID_48);
ID_50 = hslider("Note CHAT Value IN (Note 50) [midi:chanpress 50]", 6e+01f, 0.0f, 127.0f, 1.0f);
ID_51 = hbargraph("Note CHAT Value OUT (Note 51) [midi:chanpress 51]", 0.0f, 127.0f);
ID_52 = (ID_50 : ID_51);
ID_53 = checkbox("Note CHAT Bool IN (Note 100) [midi:chanpress 100]");
ID_54 = hbargraph("Note CHAT Bool OUT (Note 101) [midi:chanpress 101]", 0.0f, 1.0f);
ID_55 = (ID_53 : ID_54);
ID_56 = ID_52, ID_55;
ID_57 = vgroup("CHANNEL AFTERTOUCH (CHAT) IN/OUT", ID_56);
ID_58 = hslider("Pitchwheel Value IN  [midi:pitchwheel]", 0.0f, -8192.0f, 8191.0f, 1.0f);
ID_59 = hbargraph("Pitchwheel Value OUT[midi:pitchwheel]", -8192.0f, 8191.0f);
ID_60 = (ID_58 : ID_59);
ID_61 = checkbox("Pitchwheel Bool IN [midi:pitchwheel]");
ID_62 = hbargraph("Pitchwheel Bool OUT [midi:pitchwheel]", 0.0f, 1.0f);
ID_63 = (ID_61 : ID_62);
ID_64 = ID_60, ID_63;
ID_65 = vgroup("PITCHWHEEL IN/OUT", ID_64);
ID_66 = ID_57, ID_65;
ID_67 = ID_49, ID_66;
ID_68 = ID_41, ID_67;
ID_69 = hgroup("[2]", ID_68);
ID_70 = ID_33, ID_69;
ID_71 = ID_70 :> _;
ID_72 = vgroup("FAUST MIDI TESTER", ID_71);
ID_73 = ID_1, ID_72;
ID_74 = ID_73 : attach;
process = ID_74;
