Listing 2: Creating a music event
QTAtomContainer MakeAMusicEvent()
{
SInt32 instrument = 1;
SInt32 eventTime = 15;
UInt16 noteNumber;
UInt16 noteVelocity;
QTAtomContainer anEvent = nil;
QTAtomContainer aMessage = nil;
OSStatus anError = noErr;
// create a new message
aMessage = PTNewMessage(kPTInstrumentClass, kPTNoteEvent);
// insert the parameters
noteNumber = 60;
noteVelocity = 0
anError = PTSetProperty(aMessage, kNoteNumber, sizeof(noteNumber), ¬eNumber);
anError = PTSetProperty(aMessage, kNoteVelocity, sizeof(noteVelocity), ¬eVelocity);
// create the event
anEvent = PTNewEvent(instrument, eventTime, aMessage);
// add the second message
noteNumber = 62;
noteVelocity = 90;
anError = PTSetProperty(aMessage, kNoteNumber, sizeof(noteNumber), ¬eNumber);
anError = PTSetProperty(aMessage, kNoteVelocity, sizeof(noteVelocity), ¬eVelocity);
anError = PTSetNthMessage(anEvent, 0, aMessage);
anError = PTReleaseMessage(aMessage);
// do something with the event, like add it to a track
anError = PTReleaseEvent(anEvent);
return anEvent;
}