73.VMjLg.D....OPwTUGkjSSQUPTUDHig1WvziHw3BLh.Ra0QWYeMFZeASOh.iHfLFZeESOhDiKvHBHsUGck80Xn8UL8HBLh7hO..
73.VMjLg.D....OPwTUGkjSSQUPTUDHig1WvziHw3BLh.Ra0QWYeMFZeASOh.iHfLFZeESOhDiKvHBHsUGck80Xn8UL8HBLh7hO..
1131.3ocaX1taZiDFEN2C6MP27+l0i+1qZqDLPXiTS.Eno+DQSbZP0KNJXz1b2uDhm2mCM8elG+wYNFlmYD23i+yu9GmbxGl84uL4hqluXvhwuy+vpMapabS2083ttOdZzYQ4wYmF3wvcBNQvkEvSgKWcFzD8ojKb4gT.NU4kvAVIPcf6h3DGwkllqCcmTUEKUsTG7NoqG8bj1VoCemUW2YQm9tKWu4p1t5Cuw2+oU+70Oc3bKdZ0lsO1tstuqy6ZebPSyKWw19aXd25a+wyuP5e7ugeScS6sq6dN7958wKeAOcyxn9qcz2f4BLPw8nwxkkDXfR6QmCJqGMQty7.CTQOZfbYkAFnpdzPc3F5vPgE5f+8NiESWAlXkEVJsEXlUWX4VegUPgAVZMFVEU1fwQVmg4nz.isRCKzEejgRsNCKzjQfxsFCKTjwfB03bPUVcMVRnDS.4rxBKTgAfRrpBKTggfBMvacOI2JJrPCFApzJJrPEFanzPCNGjyJJrPCl.JwJJrPCF.JyJJrPEFBJz.OSwJshBKzfQLsKxJJrPEFCJzfyAkXEEVnAS.kYEEVnAC.UXEEVnBCAEZfOwjDnlfYpIPnlfYpIPlZBDpIXlZBDpIXlZBDpIiUXlIPlXJ0P3kfYZIPXkfYRIPlSBDJIXlQBDBIiUZ9HPnifY1HPlLJyPHifYxHPHifYxHPlLBDxHiUYxHPHifYxHPHifYxHPlLJ2PHifYxHPHifYxnbVeyrQBCcj.MejvPHIPyHILTRBzbRByjREvvJIPSKAygWRflXRXlYRXnlDn4lDFxIAZ1IggdRfleRXlfpj8SfgRflhRX3nDnIoDlYoDFZJAZdJgE5R+1I0M8w1JgF1547aW0Te2u+N9cm6v8859WCvKauKr60Y9vKJejcjI87w1QlevmZGYSk741Q1u17k1QU7jkPHEGw3HGGA4HIGQ4HKGgwW89XRKV5DowVv7wjVLoESZwjVLoESZIjVBokHuBIsDRicG4SHsDRKgzRHsTRKkzRIsT4aLRKkzRIM13hOkzRIsLRKizxHsLRKS9ABokQZYjVFowdJ74jVNokSZ4jVNokK+djzxIsbRKmzJHMVt2WPZEjVAoUPZExO+IsBRqfzJIsRRqjzXkXeIoURZkjVoLaizJIsJRqhzpHsJRqhzXQReEoUQZUxjac1sL8NRleGISvijY3QxT7HYNdjLIORlkGISyijbORqH4phE0rnpE0snxE0tn5Ewu3DAiKV8YRthiwIRFmXYbhlg0Elst61G9V8l6BqCdeW8Scs6t8g9+WfKa2z941+qda2zMM1p.6g+y5u+vwzg6E++30UddC496Uzul5A3wQaWZayyuA5a2z8TaSS8SaU79kb95C01+0wA1MsM692ZkLe21tUqCCwoy8yV8xnYUnFOs96K2sd+PKY+Y+xhISu3pIK2eYKGLZz0imOe4rAKVL95q93o+x4uX1xAWMZ4roWuX+JhwEms+wcl6uqhhbm9We5j+meeRuc
31.3o8ByYiTjOFXfAaBvmPc2S+BNDGCwU8siA..2bMAzC
437.3ocYU2tRBCF.EG2O1kg4EP879KPFniHDTQvUeeZRJoaCWBcM1UUxzD1+musyyD4GS247dl59euqWumVL8sWmLeY9n7W5WWbr3PVlX3.wChA+GkciptQc2noaz1M55F8cigtwHXPVvkDvjPlDzjvlD3jPmD7jvmB9T74F7ofOE7ofOE7ofOE7ofOM7ogOM+gE9zvmF9zvmF9zvmF9LvmA9Lvmg+yC9LvmA9LvmA9LvmE9rvmE9rvmkuZ.eV3yBeV3yBeN3yAeN3yAeN3yw2cgOG74fOG74gOO74gOO74gOO74Y4B74gOO7Efu.7Efu.7Efu.7Efu.a+fu.7EguH7EguH7EguH7EguH7EY8bR+LKnErgVvJZA6nErjVvVZAqoErmVvhZAklNkPoIiIIqIIyII6IICJIKJISJbSQxQEoJY0iR4thjCKRtrH4zh711R11hxxM6me5vpMGud1rh5Q62mWc8dCGHaOcW47pu2b6y7ykT68xOVT1TW0zdW6f9MaJ+XQ14vkKGWT9Uandcd0xyGzFVc9zYKGe65oWuttnoIe6wSSJWWcXW4mW9hd74d+Ajq4ScN
//$<AutoDeclare>
// DO NOT EDIT THIS SECTION MANUALLY
Var
MidiIn : MidiInBlock
TriggerButton : Widget
//$</AutoDeclare>
// avoid feedback loops
On MidiEvent(m : MidiMessage) from MidiIn
End
// Send a sysex message
// If strange is set, the payload byte
// is incremented by 0x80 which does not
// conform to the MIDI standard
Function SendSysex(strange : Boolean)
var SysexMan : SysexManager
SysexMsg : SysexMessage
SysexMsg = # F0 00 01 F7;
SM_CreateSysex(SysexMan, SysexMsg);
If strange Then
SM_ChangeValue(SysexMan, 2, 129); // 129 = 0x01 + 0x80
Print("strange...");
Else
Print("normal...");
End
SM_SendMidiIn(SysexMan, MidiIn);
End
// Send MIDI messages (strange and not strange alternating)
On WidgetValueChanged(newValue : double) from TriggerButton
SendSysex(newValue == 1.0)
End