[chuck-users] chuck MIDI handling

Bruce Murphy pack-chucklist at rattus.net
Sun Jul 30 12:10:36 EDT 2006

On Sat, Jul 29, 2006 at 01:13:24PM -0400, Ge Wang wrote:
> Hi Bruce!
> > Just a question, before I run off and duplicate anything. I use a lot
> > of outboard MIDI stuff and am very interested in using chuck for glue
> > and MIDI generation. As far as I can see, MIDI handling in chuck is
> > fairly clumsy, particularly for MIDI generation.
> Although the days of bit-wise MIDI op days of chuck-1.1 are gone
> (probably a good thing), things could certainly use some improvements.
> What, in particular, do you have in mind?  If you can send some
> pseudocode that demonstrates the desired API functionalities,
> we can go from there.

Well, unless I'm missing some vast cornucopia of MIDI functionality,
the following would probably be nice.

midinum_from_name(namestr)	convert for eg a3 into a midi note

And the following methods for the MidiOut object:

set_default_channel(channelnum)   set default channels used by other
noteon(notenum, velocity)
noteon(notenum, velocity, channel)
noteoff(notenum, channel)
noteoff_velocity(notenum, velocity)
noteoff_velocity(notenum, velocity, channel)
controller(controllernum, value)
controller(controllernum, value, channel)
program_change(prognum, channel)
aftertouch(note, level)
aftertouch(note, level, channel)
channel_pressure(level, channel)
pitch(value, channel)


And a safe midi sending object (or an option to track the notes sent
to keep track of all the notes which have been turned on but not off and
then generate approprpriate noteoffs for them on closure, or calling of
a cleanup function.

I realise that this seems like a lot of extra stuff, but it seems
like a sane starting point for gtting convenient access to midi 
output. When I start looking at the midi input, I'm sure that'll 
inspire something similar.

> To my knowledge, no one is working on the MIDI interface at the
> moment (please correct me if I am wrong).  Depending on the
> generality of the interface, it could go either core or as a plug-in
> or library of some sort.  Of course, the plug-in architecture is still
> not here yet (at least undocumented), but we will be working on
> that.

I'd hope that basic MIDI protocol support would be in the core midi
objects, things to talk to specific hardware should be in libraries.

Packrat (BSc/BE;COSO;Wombat Implementor)
Nihil illegitemi carbovndvm

More information about the chuck-users mailing list