btw, I quickly tried sending SysEx from ChucK on MacOS Sierra 10.12.6 and this seems to work, but it also sends spurious bytes when the msg is not a multiple of 3. Here's few lines of code I quickly put together to test this. I'll try on Linux and it would be great if anybody could try on Windows as well. On Mac I used MidiMonitor to check the MIDI out, on Windows a virtual port and something like Pd or Max should do the trick. No luck in receiving SysEx though, but I don't give up :P
//-------------------SYSEX-TEST------------------- MidiOut m_out; MidiMsg msg; m_out.open(0); // select MIDI out while( true ) { sysex_gen() @=> int buffer[]; for( 0 => int c; c < buffer.size(); c++) { chout <= buffer[c] <= " "; } chout <= IO.nl(); send_sysex( m_out, msg, buffer ); 2::second => now; } function int[] sysex_gen() { Math.random2( 6, 128 ) => int length; int buffer[ length ]; 240 => buffer[0]; 247 => buffer[ length - 1 ]; for( 0 => int c; c < length - 2; c++ ) { Math.random2( 0, 127 ) => buffer[ c + 1 ]; } return buffer; } function void send_sysex( MidiOut out, MidiMsg msg_out, int sys_msg[] ) { for( 0 => int c; c < sys_msg.size(); c++ ) { if( c % 3 == 0 ) { sys_msg[c] => msg_out.data1; if( c == sys_msg.size() - 1 ) { 0 => msg_out.data2; 0 => msg_out.data3; out.send( msg_out ); } } else if( c % 3 == 1 ) { sys_msg[c] => msg_out.data2; if( c == sys_msg.size() - 1 ) { 0 => msg_out.data3; out.send( msg_out ); } } else if( c % 3 == 2 ) { sys_msg[c] => msg_out.data3; out.send( msg_out ); } } } On Tue, 2 Jul 2019 at 22:15, Michael Heuer <heue...@gmail.com> wrote: > Great, thanks! I'll start a new thread asking how best to use it! > > michael > > > On Jul 2, 2019, at 3:53 PM, Mario Buoninfante <mario.buoninfa...@gmail.com> > wrote: > > Nice :) > MIDI clock works fine now (ChucK 1.4.0.0). There's a flag you can use to > activate it that I don't remember whether is ON or OFF by default, but > anyway is there. > Like I said there's a flag for SysEx as well, but that doesn't seem to do > much. > > Cheers, > Mario > > On Tue, 2 Jul 2019 at 21:43, Michael Heuer <heue...@gmail.com> wrote: > >> I'd say go for it! It would be nice to have proper SysEx and MIDI clock >> support in ChucK. >> >> I recall there was some progress on the latter; did I read somewhere that >> clock messages are available via RtMidi but simply disabled in ChucK for >> performance reasons? >> >> michael >> >> >> > On Jul 2, 2019, at 3:23 PM, Mario Buoninfante < >> mario.buoninfa...@gmail.com> wrote: >> > >> > Hi everybody, >> > >> > One month ago I got started with an Open Source project whose goal is >> to support some hardware on various platforms/environments/programming >> languages (Pd, SC, Processing, Lua, Python, JS, etc.) and of course my goal >> is to have ChucK on board as well (hopefully I'll share more info about the >> project in the next months). >> > The only issue I've got at the moment is that I need to talk SysEx with >> these gears, and as you know ChucK doesn't deal with SysEx. >> > I really care a lot about this project, mainly because it's open source >> and because will involve different communities (Pd, SC, JS, etc.) and would >> really love to include ChucK in this since is the tool I'm mainly using to >> experiment and make music and I truly believe has got something more than >> other languages/environments. >> > Thus, since I'm not a C++ person, I decided I'll ask a colleague of >> mine (a C++ programmer) to help out with this, also because he'll get >> involved in the project for other reasons anyway. >> > But before doing this I wanted to ask the developers and all those who >> are involved in maintaining ChucK, if there's any particular reason why >> SysEx messages are not currently supported. >> > From what I can see in the code (and after running few experiments) >> with the current architecture SysEx messages could be sent out (3 bytes at >> time though) but with a lot of limitations (didn't manage to receive SysEx >> messages though). >> > Also, I think RtMidi doesn't gate us from doing that (there's just a >> flag used to 'turn on/off' SysEx communication). >> > But it seems like there's nothing in place that allows to deal with >> MIDI messages bigger than 3 bytes and, from a "non-C++ person", it seems >> one way to fix this could potentially be to add a SysExIn/SysExOut and a >> SysExMsg classes that deal with these kind of MIDI messages. >> > Of course there could be a lot of things I'm missing here, and that's >> why I'm asking you for some help, even before asking for other help :) >> > Just to make sure there's nothing that prevents people from adding this >> functionality. >> > Then, last but not the least, ChucK is an open source project and I >> love it. There are a lot of people working with it, and I was wondering >> whether or not this would be a feature people are after. >> > Basically I'd like to hear from the community before even getting >> started with this. >> > >> > I hope this makes sense. Looking forward to hearing from you guys :) >> > >> > Cheers, >> > Mario >> > _______________________________________________ >> > chuck-users mailing list >> > chuck-users@lists.cs.princeton.edu >> > https://lists.cs.princeton.edu/mailman/listinfo/chuck-users >> >> _______________________________________________ >> chuck-users mailing list >> chuck-users@lists.cs.princeton.edu >> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users >> > _______________________________________________ > chuck-users mailing list > chuck-users@lists.cs.princeton.edu > https://lists.cs.princeton.edu/mailman/listinfo/chuck-users > > > _______________________________________________ > chuck-users mailing list > chuck-users@lists.cs.princeton.edu > https://lists.cs.princeton.edu/mailman/listinfo/chuck-users >
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users