I need some additional MIDI features in ChucK for my application. I've already added code to support a MidiOut.progchange(channel,patch) method. Before I get too far along, I thought it would be a good idea to compare notes with the ChucK developers and see what the future plans are for MIDI support. I see in the Wiki the following note about features being debated for the next version: "Make MIDI more friendly, using named functions instead of numbers like was done with the HID, as discussed (Kas)" Also in the "Ongoing Feature Request" page: "Turn MIDI .msg parsing into a system of functions like was done with the HID (".isNoteOn()", ".isControlerChange()", etc) especially with a eye towards future incorporation of clock mesages and so on." This is basically where I'm going to. Initially I needed the progchange() function but I noticed while implementing it that a lot of this functionality is already present in the lower levels of ChucK (e.g. midiio_rtmidi.cpp and rtmidi.cpp). All I had to do was complete some work that was mostly done in the low level files and then add the progchange() method in chuck_lang.cpp. I think it would be easy enough to add other functions that appear to already existing lower down like polypress(), pitchblend(), allnotesoff(), noteon(), noteoff(), etc. I don't need all of that for my app but would be happy to continue working on it if it's something that's needed by other ChucK users. But if I do that, it would be nice to get some feedback on what method names the dev folks would prefer to see used in the ChucK VM. On the other hand, if this work is already under way by someone else, I don't want to step on any toes or release a patch with conflicting MIDI methods. Any thoughts on the best way to proceed? -Steve http://www.ncc.com/humans/srainwater
Steve; I don't need all of that for my app but would be happy to continue
working on it if it's something that's needed by other ChucK users. But if I do that, it would be nice to get some feedback on what method names the dev folks would prefer to see used in the ChucK VM. On the other hand, if this work is already under way by someone else, I don't want to step on any toes or release a patch with conflicting MIDI methods. Any thoughts on the best way to proceed?
I have long advocated that MIDI should (at least optionally) look a lot like the named HID functions and stand by that. As far as I can see right now this would consist mainly of some additional code and methods for the MIDI message, not so much for the actual abstraction of the port, aside from the issues with message length for messages of one or two bytes. The one thing I'm a bit torn about is the clock. If we'd have a big shred dedicated to parsing incoming MIDI running through that every time a clock message comes in might translate to a bit of a CPU hit. Another factor is the initiative to have a clock to sync ChucK to other instances of ChucK and to SC, PD (etc). I could imagine that MIDI clock could be made a part of that as well so that in one swoop we could sync laptops, grooveboxes and whatever else comes up. I actually imagine this clock to be a bit like the DAC and ADC in being a VM-wide object that could also sync multiple internal shreds and files using events. Perhaps such a clock, like the DAC, would need channels so I could sync to you over OSC while my groovebox in turn syncs to me over MIDI at 2/3 of the rate by me having one of my clock channels slaved to another. I'm working from the idea that all clocks are conceptually similar here and that how we'd like to work with them will be more or less constant and independant of the actual protocol and cables, though I suppose I'm also making a lot of assumptions here and it could be argued it's moving in the direction of "dumbing stuff down". Yours, Kas.
I'm working on a project using chuck that will involve making changes to the chuck code over the next couple of weeks. We'll be doing some work to expand the MIDI support and I'd like to be able to submit those changes back upstream. I'm curious which code developers would prefer patches against: 1. The chuck-1.2.1.2.tgz file available from: http://chuck.cs.princeton.edu/release/ or 2. The CVS repository accessible with: cvs -d :ext:anon-chuck at cvs.cs.princeton.edu:/cvs checkout chuck_dev The contents of the /v2 directory look like chuck and there's a VERSIONS file in /notes/VERSIONS that indicates it's chuck v1.3.1.3 Any recommendations on which I should start from? is the v1.3.1.3 stable enough for general use or just a development branch? What's the time frame for releasing v1.3.1.3? It looks like there aren't any MIDI changes listed, so would we be ok modifying the v1.2.1.2 code and submitting patches from that? Thanks! -Steve -- http://www.ncc.com/humans/srainwater/
R. Steven Rainwater wrote:
cvs -d :ext:anon-chuck at cvs.cs.princeton.edu:/cvs checkout chuck_dev
I cannot co anything with this line (even after replacing " at " with @). What exact command are you using? -- Atte http://atte.dk http://modlys.dk http://virb.com/atte
On Wed, 2009-09-16 at 08:37 +0200, Atte Andre Jensen wrote:
R. Steven Rainwater wrote:
cvs -d :ext:anon-chuck at cvs.cs.princeton.edu:/cvs checkout chuck_dev
I cannot co anything with this line (even after replacing " at " with @). What exact command are you using?
Sorry, I was attempting to follow the @ -> at thing which I'd seen in archived emails on the list. This is the actual command I'm using: cvs -d :ext:anon-chuck@cvs.cs.princeton.edu:/cvs checkout chuck_dev I'm ignoring the password prompt by hitting enter (since it's an anonymous access). This will retrieve a whole pile of stuff, of which the chuck_dev/v2 seems to be the actual chuck code. -Steve -- http://www.ncc.com/humans/srainwater/
R. Steven Rainwater wrote:
cvs -d :ext:anon-chuck@cvs.cs.princeton.edu:/cvs checkout chuck_dev
I'm ignoring the password prompt by hitting enter (since it's an anonymous access). This will retrieve a whole pile of stuff, of which the chuck_dev/v2 seems to be the actual chuck code.
Thanks. It appeared I didn't have rsh installed, my bad. How ever how it times out: [atte@vestbjerg chuck]$ cvs -d :ext:anon-chuck@cvs.cs.princeton.edu:/cvs checkout chuck_dev weeble.CS.Princeton.EDU: Connection timed out cvs [checkout aborted]: end of file from server (consult above messages if any) -- Atte http://atte.dk http://modlys.dk http://virb.com/atte
On Wed, Sep 16, 2009 at 4:43 PM, Atte Andre Jensen
R. Steven Rainwater wrote:
cvs -d :ext:anon-chuck@cvs.cs.princeton.edu:/cvs checkout chuck_dev
I'm ignoring the password prompt by hitting enter (since it's an anonymous access). This will retrieve a whole pile of stuff, of which the chuck_dev/v2 seems to be the actual chuck code.
Thanks. It appeared I didn't have rsh installed, my bad. How ever how it times out:
[atte@vestbjerg chuck]$ cvs -d :ext:anon-chuck@cvs.cs.princeton.edu:/cvs checkout chuck_dev weeble.CS.Princeton.EDU: Connection timed out cvs [checkout aborted]: end of file from server (consult above messages if any)
Just tried it, works for me. By the way, I mentioned this privately to Steven, but I'll just repeat it: I'm still keeping this git clone up-to-date if anyone prefers to use it. http://repo.or.cz/w/chuck-blob.git Steve
Hi,
[atte@vestbjerg chuck]$ cvs -d :ext:anon-chuck@cvs.cs.princeton.edu:/cvs checkout chuck_dev weeble.CS.Princeton.EDU: Connection timed out cvs [checkout aborted]: end of file from server (consult above messages if any)
If you are using CVS make sure you have this in your profile (or whatever configuration file your shell uses, I use bash as you can see). export CVS_RSH=ssh Other shells have a different format. Thanks Steve. I have seen the light and I am loving git. Thanks for keeping this repo. a
participants (5)
-
Adam Tindale
-
Atte Andre Jensen
-
Kassen
-
R. Steven Rainwater
-
Stephen Sinclair