Re: MIDI note tranformations
Re: MIDI note tranformations
- Subject: Re: MIDI note tranformations
- From: William Stewart <email@hidden>
- Date: Tue, 27 Sep 2005 11:15:08 -0700
On 27/09/2005, at 7:01 AM, Lubor Prikryl - DSound wrote:
Hello Doug,
I am sorry to attempt to make you even busier than you are, but I
would like to ask you whether you think about adding something
between "automated" sending of MIDI data to an audio unit and
"manual" handling of buffers.
I.E. between AUMIDIControllerHandleMIDI and
AUMIDIControllerConnectSource.
We've been under the impression that few, if any, developers have
been using the AUMIDIController API, so were in the process of
deprecating it. Perhaps we should reconsider this.
I think it would be nice to allow a transformation of MIDI notes
and filtering of controllers.
The structure of parameters may looke like this:
SInt16 rcvChannel; //0-15, kAllChannels
SInt16 sndChannel; //0-15, kAllChannels, kDontChange
SInt16 lowVeloLimit;
SInt16 hiVeloLimit;
SInt16 lowNoteLimit;
SInt16 hiNoteLimit;
SInt16 noteTranspose;
SInt16 veloCurve[128]; //transformation of velocity,
//Transform: outVelo = veloCurve
[inVelo];
//examples: Linear - veloCurve[ii] =
ii; Fixed: veloCurve[ii] = constValue;
UInt32 filterFlags; //bit field
//...and anything you would find useful, as there is probably
nobody understanding MIDI better than the author of OMS and
CoreMidi...
This is already implemented:
<CoreMIDI/MIDIThruConnections.h>
This allows you to do some fairly sophisticated filtering of MIDI
messages between midi sources and destinations - this filtering is
done in the MIDI Server.
In fact we use this in AULab's MIDI Thru params editor - Create an
AULab document with a synth, and have a look at the synth's inspector
window's MIDI tab. This isn't the totality of the thru filtering that
can be done, but some of it. AULab creates virtual MIDI destinations
for the synths - then any of the sources that are sending midi to
this destination are filtered through the parameters described in
this way.
Doug may have more to add
Bill
Furthermore, there could be a set of utility functions, sending
simple data to the AU, getting to a little bit higher level, than
handling buffers, such as MIDISendNote, MIDISendProgramChange,
MIDISendVolume etc. Do you, other guys, would utilize it?
Cheers
Lubor Prikryl
DSound (CZ)
Audio Software Developer
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
mailto:email@hidden
tel: +1 408 974 4056
________________________________________________________________________
__
"Much human ingenuity has gone into finding the ultimate Before.
The current state of knowledge can be summarized thus:
In the beginning, there was nothing, which exploded" - Terry Pratchett
________________________________________________________________________
__
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden