Re: MIDI CC and PitchBend with AUDLSSynth
Re: MIDI CC and PitchBend with AUDLSSynth
- Subject: Re: MIDI CC and PitchBend with AUDLSSynth
- From: Info <email@hidden>
- Date: Mon, 15 Apr 2013 17:10:52 -0400
- Importance: Normal
You are sending Pitchbend on channel 13 (0x0c == 12 but channels start at 0)
and you are sending ccMessages on channel 13 also.
-----Original Message-----
From: Douglas Scott
Sent: Monday, April 15, 2013 4:35 PM
To: email@hidden list
Subject: Re: MIDI CC and PitchBend with AUDLSSynth
Umm, PitchBend is 0xE0, not 0xEC. That could make a wee bit of difference.
-DS
On Apr 15, 2013, at 1:20 PM, ben kamen <email@hidden> wrote:
Hi Douglas, Thanks for getting back so quickly.
Yes, I am getting notes out the dlssynth using the same code/the same
*dlsUnit. I am using the dereferenced *dlsSynth because I created an
objective c wrapper for managing multiple outputs and I wanted to pass in
the reference from my audiocontroller class.
I'm pasting here the relevant parts of in this wrapper class -- Note-On
and Note-Off, as well as PGM out work. But CC and pitch bend do not.
The data all comes from a 3d sensing device, and it appropriately
converted into the correct ranges -- all of the data works correctly over
"virtual" MIDI to FM8 in ableton.
I'm on 10.8.3
Thanks!
@property (assign) AudioUnit * dlsUnit;
-(id)initForVoice:(int)voice client:(MIDIClientRef)MIDIClient
dlsSynth:(AudioUnit*)dls{
///////....set up virtual and real MIDI ports using the MIDIClientRef....
dlsUnit = dls;
//////....MIDIRestart();
}
-(void)noteOn:(NSUInteger)note velocity:(NSUInteger)velocity{
Byte midiStatus = 144;
Byte _note = (Byte)note;
Byte _velocity = (Byte)velocity;
[self sendStatus:midiStatus byte1:_note byte2:_velocity];
}
-(void)noteOff:(NSUInteger)note velocity:(NSUInteger)velocity{
Byte midiStatus = 128;
Byte _note = (Byte)note;
Byte _velocity = (Byte)velocity;
[self sendStatus:midiStatus byte1:_note byte2:_velocity];
}
-(void)pgmOut:(NSUInteger)program{
Byte midiStatus = 0xC0;
//program;
Byte pgm = (Byte)program;
[self sendStatus:midiStatus byte1:pgm byte2:0x00];
}
-(void)ccMessage:(NSUInteger)cc value:(NSUInteger)value{
Byte midiStatus = 0xBc;
[self sendStatus:midiStatus byte1:(Byte)cc byte2:(Byte)value];
}
-(void)pitchBend:(NSUInteger)pitchBend{
Byte midiStatus = 0xEc;
NSUInteger lsb;
NSUInteger msb;
encode14BitValue(pitchBend, &msb, &lsb);
[self sendStatus:midiStatus byte1:(Byte)lsb byte2:(Byte)msb];
}
-(void)sendStatus:(Byte)status byte1:(Byte)byte1 byte2:(Byte)byte2{
Byte offset = 0;
if(output == dslOutput){
CheckError(
MusicDeviceMIDIEvent(*dlsUnit, status, byte1, byte2,
offset),
"could not send midi to dls synth");
}
/////if virtual MIDI, etc. send out MIDI using other methods
}
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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