19 #ifndef __QUICKTIMEMUSIC__
20 #define __QUICKTIMEMUSIC__
22 #ifndef __COMPONENTS__
46 #ifndef __IMAGECOMPRESSION__
67 #if PRAGMA_STRUCT_ALIGN
68 #pragma options align = mac68k
69 #elif PRAGMA_STRUCT_PACKPUSH
71 #elif PRAGMA_STRUCT_PACK
77 kaiToneDescType = FOUR_CHAR_CODE(
'tone'),
78 kaiNoteRequestInfoType = FOUR_CHAR_CODE(
'ntrq'),
79 kaiKnobListType = FOUR_CHAR_CODE(
'knbl'),
80 kaiKeyRangeInfoType = FOUR_CHAR_CODE(
'sinf'),
81 kaiSampleDescType = FOUR_CHAR_CODE(
'sdsc'),
82 kaiSampleInfoType = FOUR_CHAR_CODE(
'smin'),
83 kaiSampleDataType = FOUR_CHAR_CODE(
'sdat'),
84 kaiSampleDataQUIDType = FOUR_CHAR_CODE(
'quid'),
85 kaiInstInfoType = FOUR_CHAR_CODE(
'iinf'),
86 kaiPictType = FOUR_CHAR_CODE(
'pict'),
87 kaiWriterType = FOUR_CHAR_CODE(
'©wrt'),
88 kaiCopyrightType = FOUR_CHAR_CODE(
'©cpy'),
89 kaiOtherStrType = FOUR_CHAR_CODE(
'str '),
90 kaiInstrumentRefType = FOUR_CHAR_CODE(
'iref'),
91 kaiInstGMQualityType = FOUR_CHAR_CODE(
'qual'),
92 kaiLibraryInfoType = FOUR_CHAR_CODE(
'linf'),
93 kaiLibraryDescType = FOUR_CHAR_CODE(
'ldsc')
109 kInstKnobMissingUnknown = 0,
110 kInstKnobMissingDefault = (1 << 0)
122 kMusicLoopTypeNormal = 0,
123 kMusicLoopTypePalindrome = 1
128 instSamplePreProcessFlag = 1 << 0
133 BigEndianOSType dataFormat;
134 BigEndianShort numChannels;
135 BigEndianShort sampleSize;
136 BigEndianUnsignedFixed sampleRate;
137 BigEndianShort sampleDataID;
153 typedef Handle AtomicInstrument;
154 typedef Ptr AtomicInstrumentPtr;
157 kQTMIDIComponentType = FOUR_CHAR_CODE(
'midi')
162 kOMSComponentSubType = FOUR_CHAR_CODE(
'OMS '),
163 kFMSComponentSubType = FOUR_CHAR_CODE(
'FMS '),
164 kMIDIManagerComponentSubType = FOUR_CHAR_CODE(
'mmgr'),
165 kOSXMIDIComponentSubType = FOUR_CHAR_CODE(
'osxm')
171 kMusicPacketPortLost =
173 kMusicPacketPortFound = 2,
175 kMusicPacketTimeGap =
181 kAppleSysexID = 0x11,
183 kAppleSysexCmdSampleSize = 0x0001,
185 kAppleSysexCmdSampleBreak =
187 kAppleSysexCmdAtomicInstrument =
189 kAppleSysexCmdDeveloper =
197 unsigned short length;
198 unsigned long reserved;
202 typedef CALLBACK_API(ComponentResult,
208 kSynthesizerConnectionFMS = 1,
209 kSynthesizerConnectionMMgr =
211 kSynthesizerConnectionOMS = 4,
212 kSynthesizerConnectionQT = 8,
213 kSynthesizerConnectionOSXMIDI =
217 kSynthesizerConnectionUnavailable =
252 FSSpecPtr sampleBankFile;
309 kMusicComponentType = FOUR_CHAR_CODE(
'musi'),
310 kInstrumentComponentType = FOUR_CHAR_CODE(
'inst')
315 kSoftSynthComponentSubType = FOUR_CHAR_CODE(
'ss '),
316 kGMSynthComponentSubType = FOUR_CHAR_CODE(
'gm ')
323 kSynthesizerDynamicVoice = 1 << 0,
325 kSynthesizerUsesMIDIPort = 1 << 1,
326 kSynthesizerMicrotone = 1 << 2,
327 kSynthesizerHasSamples = 1
329 kSynthesizerMixedDrums =
331 kSynthesizerSoftware =
333 kSynthesizerHardware =
335 kSynthesizerDynamicChannel =
338 kSynthesizerHogsSystemChannel =
341 kSynthesizerHasSystemChannel =
344 kSynthesizerSlowSetPart =
347 kSynthesizerOffline = 1 << 12,
348 kSynthesizerGM = 1 << 14,
349 kSynthesizerDLS = 1 << 15,
350 kSynthesizerSoundLocalization =
374 kControllerModulationWheel = 1,
375 kControllerBreath = 2,
377 kControllerPortamentoTime =
379 kControllerVolume = 7,
380 kControllerBalance = 8,
383 kControllerExpression = 11,
384 kControllerLever1 = 16,
385 kControllerLever2 = 17,
386 kControllerLever3 = 18,
387 kControllerLever4 = 19,
388 kControllerLever5 = 80,
389 kControllerLever6 = 81,
390 kControllerLever7 = 82,
391 kControllerLever8 = 83,
392 kControllerPitchBend = 32,
394 kControllerAfterTouch = 33,
395 kControllerPartTranspose =
397 kControllerTuneTranspose =
399 kControllerPartVolume = 42,
401 kControllerTuneVolume =
404 kControllerSustain = 64,
405 kControllerPortamento = 65,
406 kControllerSostenuto = 66,
407 kControllerSoftPedal = 67,
408 kControllerReverb = 91,
409 kControllerTremolo = 92,
410 kControllerChorus = 93,
411 kControllerCeleste = 94,
412 kControllerPhaser = 95,
413 kControllerEditPart = 113,
415 kControllerMasterTune = 114,
416 kControllerMasterTranspose = 114,
417 kControllerMasterVolume = 115,
418 kControllerMasterCPULoad = 116,
419 kControllerMasterPolyphony = 117,
420 kControllerMasterFeatures = 118
428 kQTMSKnobStartID = 0x02000000,
429 kQTMSKnobVolumeAttackTimeID = 0x02000001,
430 kQTMSKnobVolumeDecayTimeID = 0x02000002,
431 kQTMSKnobVolumeSustainLevelID = 0x02000003,
432 kQTMSKnobVolumeRelease1RateID = 0x02000004,
433 kQTMSKnobVolumeDecayKeyScalingID = 0x02000005,
434 kQTMSKnobVolumeReleaseTimeID = 0x02000006,
435 kQTMSKnobVolumeLFODelayID = 0x02000007,
436 kQTMSKnobVolumeLFORampTimeID = 0x02000008,
437 kQTMSKnobVolumeLFOPeriodID = 0x02000009,
438 kQTMSKnobVolumeLFOShapeID = 0x0200000A,
439 kQTMSKnobVolumeLFODepthID = 0x0200000B,
440 kQTMSKnobVolumeOverallID = 0x0200000C,
441 kQTMSKnobVolumeVelocity127ID = 0x0200000D,
442 kQTMSKnobVolumeVelocity96ID = 0x0200000E,
443 kQTMSKnobVolumeVelocity64ID = 0x0200000F,
444 kQTMSKnobVolumeVelocity32ID = 0x02000010,
445 kQTMSKnobVolumeVelocity16ID = 0x02000011,
446 kQTMSKnobPitchTransposeID = 0x02000012,
447 kQTMSKnobPitchLFODelayID = 0x02000013,
448 kQTMSKnobPitchLFORampTimeID = 0x02000014,
449 kQTMSKnobPitchLFOPeriodID = 0x02000015,
450 kQTMSKnobPitchLFOShapeID = 0x02000016,
451 kQTMSKnobPitchLFODepthID = 0x02000017,
452 kQTMSKnobPitchLFOQuantizeID = 0x02000018,
453 kQTMSKnobStereoDefaultPanID = 0x02000019,
454 kQTMSKnobStereoPositionKeyScalingID = 0x0200001A,
455 kQTMSKnobPitchLFOOffsetID = 0x0200001B,
456 kQTMSKnobExclusionGroupID = 0x0200001C,
457 kQTMSKnobSustainTimeID = 0x0200001D,
458 kQTMSKnobSustainInfiniteID = 0x0200001E,
459 kQTMSKnobVolumeLFOStereoID = 0x0200001F,
460 kQTMSKnobVelocityLowID = 0x02000020,
461 kQTMSKnobVelocityHighID = 0x02000021,
462 kQTMSKnobVelocitySensitivityID = 0x02000022,
463 kQTMSKnobPitchSensitivityID = 0x02000023,
464 kQTMSKnobVolumeLFODepthFromWheelID = 0x02000024,
465 kQTMSKnobPitchLFODepthFromWheelID = 0x02000025,
466 kQTMSKnobVolumeExpOptionsID = 0x02000026,
467 kQTMSKnobEnv1AttackTimeID = 0x02000027,
468 kQTMSKnobEnv1DecayTimeID = 0x02000028,
469 kQTMSKnobEnv1SustainLevelID = 0x02000029,
470 kQTMSKnobEnv1SustainTimeID = 0x0200002A,
471 kQTMSKnobEnv1SustainInfiniteID = 0x0200002B,
472 kQTMSKnobEnv1ReleaseTimeID = 0x0200002C,
473 kQTMSKnobEnv1ExpOptionsID = 0x0200002D,
474 kQTMSKnobEnv2AttackTimeID = 0x0200002E,
475 kQTMSKnobEnv2DecayTimeID = 0x0200002F,
476 kQTMSKnobEnv2SustainLevelID = 0x02000030,
477 kQTMSKnobEnv2SustainTimeID = 0x02000031,
478 kQTMSKnobEnv2SustainInfiniteID = 0x02000032,
479 kQTMSKnobEnv2ReleaseTimeID = 0x02000033,
480 kQTMSKnobEnv2ExpOptionsID = 0x02000034,
481 kQTMSKnobPitchEnvelopeID = 0x02000035,
482 kQTMSKnobPitchEnvelopeDepthID = 0x02000036,
483 kQTMSKnobFilterKeyFollowID = 0x02000037,
484 kQTMSKnobFilterTransposeID = 0x02000038,
485 kQTMSKnobFilterQID = 0x02000039,
486 kQTMSKnobFilterFrequencyEnvelopeID = 0x0200003A,
487 kQTMSKnobFilterFrequencyEnvelopeDepthID = 0x0200003B,
488 kQTMSKnobFilterQEnvelopeID = 0x0200003C,
489 kQTMSKnobFilterQEnvelopeDepthID = 0x0200003D,
490 kQTMSKnobReverbThresholdID = 0x0200003E,
491 kQTMSKnobVolumeAttackVelScalingID = 0x0200003F,
492 kQTMSKnobLastIDPlus1 = 0x02000040
497 kControllerMaximum = 0x00007FFF,
498 kControllerMinimum = (long)0xFFFF8000
503 OSType synthesizerType;
507 unsigned long voiceCount;
509 unsigned long partCount;
510 unsigned long instrumentCount;
511 unsigned long modifiableInstrumentCount;
515 unsigned long drumPartCount;
516 unsigned long drumCount;
517 unsigned long modifiableDrumCount;
518 unsigned long drumChannelMask;
521 unsigned long outputCount;
522 unsigned long latency;
524 unsigned long controllers[4];
525 unsigned long gmInstruments[4];
526 unsigned long gmDrums[4];
531 kVoiceCountDynamic = -1
536 BigEndianOSType synthesizerType;
537 Str31 synthesizerName;
538 Str31 instrumentName;
545 kFirstGMInstrument = 0x00000001,
546 kLastGMInstrument = 0x00000080,
547 kFirstGSInstrument = 0x00000081,
548 kLastGSInstrument = 0x00003FFF,
549 kFirstDrumkit = 0x00004000,
552 kLastDrumkit = 0x00004080,
553 kFirstROMInstrument = 0x00008000,
554 kLastROMInstrument = 0x0000FFFF,
555 kFirstUserInstrument = 0x00010000,
556 kLastUserInstrument = 0x0001FFFF
562 kInstrumentMatchSynthesizerType = 1,
563 kInstrumentMatchSynthesizerName = 2,
564 kInstrumentMatchName = 4,
565 kInstrumentMatchNumber = 8,
566 kInstrumentMatchGMNumber = 16,
567 kInstrumentMatchGSNumber = 32
576 kKnobInterruptUnsafe = 32,
578 kKnobKeyrangeOverride = 64,
580 kKnobGroupStart = 128,
581 kKnobFixedPoint8 = 1024,
582 kKnobFixedPoint16 = 2048,
583 kKnobTypeNumber = 0 << 12,
588 kKnobTypeNote = 3 << 12,
589 kKnobTypePan = 4 << 12,
590 kKnobTypeInstrument =
592 kKnobTypeSetting = 6 << 12,
594 kKnobTypeMilliseconds = 7 << 12,
595 kKnobTypePercentage = 8 << 12,
596 kKnobTypeHertz = 9 << 12,
597 kKnobTypeButton = 10 << 12
604 kDefaultKnobValue = 0x7FFFFFFE
637 notImplementedMusicErr = (0x80000000 | (0xFFFF & (notImplementedMusicOSErr))),
638 cantSendToSynthesizerErr =
639 (0x80000000 | (0xFFFF & (cantSendToSynthesizerOSErr))),
640 cantReceiveFromSynthesizerErr =
641 (0x80000000 | (0xFFFF & (cantReceiveFromSynthesizerOSErr))),
642 illegalVoiceAllocationErr =
643 (0x80000000 | (0xFFFF & (illegalVoiceAllocationOSErr))),
644 illegalPartErr = (0x80000000 | (0xFFFF & (illegalPartOSErr))),
645 illegalChannelErr = (0x80000000 | (0xFFFF & (illegalChannelOSErr))),
646 illegalKnobErr = (0x80000000 | (0xFFFF & (illegalKnobOSErr))),
647 illegalKnobValueErr = (0x80000000 | (0xFFFF & (illegalKnobValueOSErr))),
648 illegalInstrumentErr = (0x80000000 | (0xFFFF & (illegalInstrumentOSErr))),
649 illegalControllerErr = (0x80000000 | (0xFFFF & (illegalControllerOSErr))),
650 midiManagerAbsentErr = (0x80000000 | (0xFFFF & (midiManagerAbsentOSErr))),
651 synthesizerNotRespondingErr =
652 (0x80000000 | (0xFFFF & (synthesizerNotRespondingOSErr))),
653 synthesizerErr = (0x80000000 | (0xFFFF & (synthesizerOSErr))),
654 illegalNoteChannelErr = (0x80000000 | (0xFFFF & (illegalNoteChannelOSErr))),
655 noteChannelNotAllocatedErr =
656 (0x80000000 | (0xFFFF & (noteChannelNotAllocatedOSErr))),
657 tunePlayerFullErr = (0x80000000 | (0xFFFF & (tunePlayerFullOSErr))),
658 tuneParseErr = (0x80000000 | (0xFFFF & (tuneParseOSErr)))
663 kGetAtomicInstNoExpandedSamples = 1 << 0,
664 kGetAtomicInstNoOriginalSamples = 1 << 1,
665 kGetAtomicInstNoSamples =
666 kGetAtomicInstNoExpandedSamples | kGetAtomicInstNoOriginalSamples,
667 kGetAtomicInstNoKnobList = 1 << 2,
668 kGetAtomicInstNoInstrumentInfo = 1 << 3,
669 kGetAtomicInstOriginalKnobList = 1 << 4,
670 kGetAtomicInstAllKnobs = 1 << 5
680 kSetAtomicInstKeepOriginalInstrument = 1 << 0,
681 kSetAtomicInstShareAcrossParts = 1
683 kSetAtomicInstCallerTosses = 1 << 2,
685 kSetAtomicInstCallerGuarantees =
687 kSetAtomicInstInterruptSafe =
689 kSetAtomicInstDontPreprocess =
697 kInstrumentNamesModifiable = 1,
698 kInstrumentNamesBoth = 2
707 kGenericMusicComponentSubtype = FOUR_CHAR_CODE(
'gene')
730 kGenericMusicKnob = 1,
731 kGenericMusicInstrumentKnob = 2,
732 kGenericMusicDrumKnob = 3,
733 kGenericMusicGlobalController = 4
738 kGenericMusicResFirst = 0,
739 kGenericMusicResMiscStringList =
741 kGenericMusicResMiscLongList = 2,
742 kGenericMusicResInstrumentList =
744 kGenericMusicResDrumList = 4,
745 kGenericMusicResInstrumentKnobDescriptionList = 5,
746 kGenericMusicResDrumKnobDescriptionList = 6,
747 kGenericMusicResKnobDescriptionList = 7,
748 kGenericMusicResBitsLongList = 8,
750 kGenericMusicResModifiableInstrumentHW =
753 kGenericMusicResGMTranslation =
756 kGenericMusicResROMInstrumentData =
758 kGenericMusicResAboutPICT =
760 kGenericMusicResLast = 13
766 kGenericMusicMiscLongFirst = 0,
767 kGenericMusicMiscLongVoiceCount = 1,
768 kGenericMusicMiscLongPartCount = 2,
769 kGenericMusicMiscLongModifiableInstrumentCount = 3,
770 kGenericMusicMiscLongChannelMask = 4,
771 kGenericMusicMiscLongDrumPartCount = 5,
772 kGenericMusicMiscLongModifiableDrumCount = 6,
773 kGenericMusicMiscLongDrumChannelMask = 7,
774 kGenericMusicMiscLongOutputCount = 8,
775 kGenericMusicMiscLongLatency = 9,
776 kGenericMusicMiscLongFlags = 10,
777 kGenericMusicMiscLongFirstGMHW =
779 kGenericMusicMiscLongFirstGMDrumHW =
781 kGenericMusicMiscLongFirstUserHW =
783 kGenericMusicMiscLongLast = 14
788 long hwInstrumentNumber;
789 short controller[128];
801 kMusicGenericRange = 0x0100,
802 kMusicDerivedRange = 0x0200
810 kGenericMusicDoMIDI = 1 << 0,
814 kGenericMusicBank32 =
816 kGenericMusicErsatzMIDI =
819 kGenericMusicCallKnobs =
821 kGenericMusicCallParts =
823 kGenericMusicCallInstrument =
825 kGenericMusicCallNumber = 1 << 7,
828 kGenericMusicCallROMInstrument =
831 kGenericMusicAllDefaults =
836 typedef CALLBACK_API(ComponentResult, MusicOfflineDataProcPtr)(Ptr SoundData,
839 typedef STACK_UPP_TYPE(MusicOfflineDataProcPtr) MusicOfflineDataUPP;
842 unsigned long numChannels;
843 UnsignedFixed sampleRate;
844 unsigned short sampleSize;
849 long instrumentNumber;
859 QTAtomContainer itxtNames;
912 long instrumentNumber);
915 #define MusicSetInstrumentNumber(ci, part, instrumentNumber) \
916 MusicSetPartInstrumentNumber(ci, part, instrumentNumber)
967 AtomicInstrumentPtr aiP,
long flags);
1052 unsigned long *fit);
1092 #define MusicSetController(ci, part, controllerNumber, controllerValue) \
1093 MusicSetPartController(ci, part, controllerNumber, controllerValue)
1145 Handle *instrumentNames,
1146 Handle *instrumentCategoryLasts,
1147 Handle *instrumentCategoryNames);
1160 Handle *instrumentNumbers, Handle *instrumentNames);
1234 Handle *settingsNames, Handle *settingsCategoryLasts,
1235 Handle *settingsCategoryNames);
1248 long *outputPortCount);
1273 UnsignedFixed *sampleRate,
unsigned short *sampleSize,
1274 MusicOfflineDataUPP dataProc,
long dataProcRefCon);
1341 kGetInstrumentInfoNoBuiltIn = 1 << 0,
1342 kGetInstrumentInfoMidiUserInst = 1 << 1,
1343 kGetInstrumentInfoNoIText = 1 << 2
1382 long instrumentNumber);
1468 long knobValue,
long partNumber,
GCPart *p,
1532 long instrumentNumber);
1564 kNoteRequestNoGM = 1,
1565 kNoteRequestNoSynthType =
1567 kNoteRequestSynthMustMatch =
1573 kNoteRequestSpecifyMIDIChannel = 0x80
1590 midiChannelAssignment;
1592 BigEndianShort polyphony;
1593 BigEndianFixed typicalPolyphony;
1602 typedef struct OpaqueNoteChannel *NoteChannel;
1609 kPickEditAllowEdit = 8,
1610 kPickEditAllowPick = 16,
1611 kPickEditSynthGlobal = 32,
1612 kPickEditControllers = 64
1617 kNoteAllocatorComponentType = FOUR_CHAR_CODE(
'nota')
1685 NoteChannel *outChannel);
1783 long controllerNumber,
long controllerValue);
1822 long instrumentNumber);
1825 #define NASetNoteChannelInstrument(ci, noteChannel, instrumentNumber) \
1826 NASetInstrumentNumber(ci, noteChannel, instrumentNumber)
1827 #define NASetInstrument(ci, noteChannel, instrumentNumber) \
1828 NASetInstrumentNumber(ci, noteChannel, instrumentNumber)
1842 long reserved1,
long reserved2);
1881 ModalFilterUPP filterProc,
long refCon);
1948 StringPtr prompt,
long refCon, NoteChannel nc,
1949 AtomicInstrument ai,
long flags);
1962 AtomicInstrumentPtr instrument,
long flags,
1963 NoteChannel *outChannel);
1976 AtomicInstrumentPtr instrument,
long flags);
2026 long instrumentNumber);
2052 long controllerNumber,
long *controllerValue);
2061 unsigned long *tune;
2062 unsigned long *tunePtr;
2071 typedef CALLBACK_API(
void, TuneCallBackProcPtr)(
const TuneStatus *status,
2073 typedef CALLBACK_API(
void, TunePlayCallBackProcPtr)(
unsigned long *
event,
2074 long seed,
long refCon);
2076 typedef STACK_UPP_TYPE(TunePlayCallBackProcPtr) TunePlayCallBackUPP;
2081 kTunePlayerComponentType = FOUR_CHAR_CODE(
'tune')
2148 kTuneDontClipNotes =
2150 kTuneExcludeEdgeNotes = 4,
2155 kTunePlayDifference = 32,
2156 kTunePlayConcurrent = 64,
2157 kTuneStartNewMaster = 16384
2171 unsigned long tuneStartPosition,
unsigned long tuneStopPosition,
2172 unsigned long queueFlags, TuneCallBackUPP callBackProc,
long refCon);
2202 kTuneStopSustain = 2,
2203 kTuneStopInstant = 4,
2204 kTuneStopReleaseChannels = 8
2278 NoteChannel *noteChannelList,
2279 TunePlayCallBackUPP playCallBackProc,
long refCon);
2292 long velocityShift);
2384 long balance,
long mixFlags);
2397 long *balanceOut,
long *mixFlagsOut);
2399 typedef unsigned long MusicOpWord;
2400 typedef MusicOpWord *MusicOpWordPtr;
2472 kRestEventType = 0x00000000,
2473 kNoteEventType = 0x00000001,
2474 kControlEventType = 0x00000002,
2475 kMarkerEventType = 0x00000003,
2476 kUndefined1EventType = 0x00000008,
2477 kXNoteEventType = 0x00000009,
2478 kXControlEventType = 0x0000000A,
2479 kKnobEventType = 0x0000000B,
2480 kUndefined2EventType = 0x0000000C,
2481 kUndefined3EventType = 0x0000000D,
2482 kUndefined4EventType = 0x0000000E,
2483 kGeneralEventType = 0x0000000F,
2484 kXEventLengthBits = 0x00000002,
2485 kGeneralEventLengthBits =
2489 kRestEventLen = kEventLen,
2490 kNoteEventLen = kEventLen,
2491 kControlEventLen = kEventLen,
2492 kMarkerEventLen = kEventLen,
2493 kXNoteEventLen = kXEventLen,
2494 kXControlEventLen = kXEventLen,
2495 kGeneralEventLen = kXEventLen,
2497 kEventLengthFieldPos =
2499 kEventLengthFieldWidth =
2502 kEventTypeFieldPos = 29,
2503 kEventTypeFieldWidth = 3,
2504 kXEventTypeFieldPos = 28,
2505 kXEventTypeFieldWidth = 4,
2506 kEventPartFieldPos = 24,
2507 kEventPartFieldWidth = 5,
2508 kXEventPartFieldPos = 16,
2509 kXEventPartFieldWidth = 12,
2510 kRestEventDurationFieldPos = 0,
2511 kRestEventDurationFieldWidth = 24,
2512 kRestEventDurationMax =
2513 ((1L << kRestEventDurationFieldWidth) - 1),
2514 kNoteEventPitchFieldPos = 18,
2515 kNoteEventPitchFieldWidth = 6,
2516 kNoteEventPitchOffset =
2518 kNoteEventVolumeFieldPos = 11,
2519 kNoteEventVolumeFieldWidth = 7,
2520 kNoteEventVolumeOffset =
2522 kNoteEventDurationFieldPos = 0,
2523 kNoteEventDurationFieldWidth = 11,
2524 kNoteEventDurationMax = ((1L << kNoteEventDurationFieldWidth) - 1),
2525 kXNoteEventPitchFieldPos = 0,
2526 kXNoteEventPitchFieldWidth = 16,
2527 kXNoteEventDurationFieldPos = 0,
2528 kXNoteEventDurationFieldWidth = 22,
2529 kXNoteEventDurationMax = ((1L << kXNoteEventDurationFieldWidth) - 1),
2530 kXNoteEventVolumeFieldPos = 22,
2531 kXNoteEventVolumeFieldWidth = 7,
2532 kControlEventControllerFieldPos = 16,
2533 kControlEventControllerFieldWidth = 8,
2534 kControlEventValueFieldPos = 0,
2535 kControlEventValueFieldWidth = 16,
2536 kXControlEventControllerFieldPos = 0,
2537 kXControlEventControllerFieldWidth = 16,
2538 kXControlEventValueFieldPos = 0,
2539 kXControlEventValueFieldWidth = 16,
2540 kKnobEventValueHighFieldPos = 0,
2541 kKnobEventValueHighFieldWidth = 16,
2542 kKnobEventKnobFieldPos = 16,
2543 kKnobEventKnobFieldWidth = 14,
2544 kKnobEventValueLowFieldPos = 0,
2545 kKnobEventValueLowFieldWidth = 16,
2546 kMarkerEventSubtypeFieldPos = 16,
2547 kMarkerEventSubtypeFieldWidth = 8,
2548 kMarkerEventValueFieldPos = 0,
2549 kMarkerEventValueFieldWidth = 16,
2550 kGeneralEventSubtypeFieldPos = 16,
2551 kGeneralEventSubtypeFieldWidth = 14,
2552 kGeneralEventLengthFieldPos = 0,
2553 kGeneralEventLengthFieldWidth = 16
2556 #if TARGET_RT_LITTLE_ENDIAN
2559 kEndMarkerValue = 0x00000060
2565 kEndMarkerValue = 0x60000000
2572 #define qtma_MASK(bitWidth) ((1L << (bitWidth)) - 1)
2573 #define qtma_EXT(val, pos, width) \
2574 ((EndianU32_BtoN(val) >> (pos)) & qtma_MASK(width))
2575 #define qtma_EventLengthForward(xP, ulen) \
2577 unsigned long _ext; \
2578 unsigned long *lP = (unsigned long *)(xP); \
2579 _ext = qtma_EXT(*lP, kEventLengthFieldPos, kEventLengthFieldWidth); \
2582 ulen = (_ext < 2) ? 1 : 2; \
2586 ulen = (unsigned short)qtma_EXT(*lP, kGeneralEventLengthFieldPos, \
2587 kGeneralEventLengthFieldWidth); \
2594 #define qtma_EventLengthBackward(xP, ulen) \
2596 unsigned long _ext; \
2597 unsigned long *lP = (unsigned long *)(xP); \
2598 _ext = qtma_EXT(*lP, kEventLengthFieldPos, kEventLengthFieldWidth); \
2601 ulen = (_ext < 2) ? 1 : 2; \
2605 ulen = (unsigned short)qtma_EXT(*lP, kGeneralEventLengthFieldPos, \
2606 kGeneralEventLengthFieldWidth); \
2613 #define qtma_EventType(x) \
2614 ((qtma_EXT(x, kEventTypeFieldPos, kEventTypeFieldWidth) > 3) \
2615 ? qtma_EXT(x, kXEventTypeFieldPos, kXEventTypeFieldWidth) \
2616 : qtma_EXT(x, kEventTypeFieldPos, kEventTypeFieldWidth))
2617 #define qtma_RestDuration(x) \
2618 (qtma_EXT(x, kRestEventDurationFieldPos, kRestEventDurationFieldWidth))
2619 #define qtma_Part(x) (qtma_EXT(x, kEventPartFieldPos, kEventPartFieldWidth))
2620 #define qtma_XPart(m, l) \
2621 (qtma_EXT(m, kXEventPartFieldPos, kXEventPartFieldWidth))
2622 #define qtma_NotePitch(x) \
2623 (qtma_EXT(x, kNoteEventPitchFieldPos, kNoteEventPitchFieldWidth) + \
2624 kNoteEventPitchOffset)
2625 #define qtma_NoteVolume(x) \
2626 (qtma_EXT(x, kNoteEventVolumeFieldPos, kNoteEventVolumeFieldWidth) + \
2627 kNoteEventVolumeOffset)
2628 #define qtma_NoteDuration(x) \
2629 (qtma_EXT(x, kNoteEventDurationFieldPos, kNoteEventDurationFieldWidth))
2630 #define qtma_NoteVelocity qtma_NoteVolume
2631 #define qtma_XNotePitch(m, l) \
2632 (qtma_EXT(m, kXNoteEventPitchFieldPos, kXNoteEventPitchFieldWidth))
2633 #define qtma_XNoteVolume(m, l) \
2634 (qtma_EXT(l, kXNoteEventVolumeFieldPos, kXNoteEventVolumeFieldWidth))
2635 #define qtma_XNoteDuration(m, l) \
2636 (qtma_EXT(l, kXNoteEventDurationFieldPos, kXNoteEventDurationFieldWidth))
2637 #define qtma_XNoteVelocity qtma_XNoteVolume
2638 #define qtma_ControlController(x) \
2639 (qtma_EXT(x, kControlEventControllerFieldPos, \
2640 kControlEventControllerFieldWidth))
2641 #define qtma_ControlValue(x) \
2642 (qtma_EXT(x, kControlEventValueFieldPos, kControlEventValueFieldWidth))
2643 #define qtma_XControlController(m, l) \
2644 (qtma_EXT(l, kXControlEventControllerFieldPos, \
2645 kXControlEventControllerFieldWidth))
2646 #define qtma_XControlValue(m, l) \
2647 (qtma_EXT(m, kXControlEventValueFieldPos, kXControlEventValueFieldWidth))
2648 #define qtma_MarkerSubtype(x) \
2649 (qtma_EXT(x, kMarkerEventSubtypeFieldPos, kMarkerEventSubtypeFieldWidth))
2650 #define qtma_MarkerValue(x) \
2651 (qtma_EXT(x, kMarkerEventValueFieldPos, kMarkerEventValueFieldWidth))
2653 #define qtma_KnobValue(m, l) \
2654 ((qtma_EXT(m, kKnobEventValueHighFieldPos, kKnobEventValueHighFieldWidth) \
2656 (qtma_EXT(l, kKnobEventValueLowFieldPos, kKnobEventValueLowFieldWidth)))
2658 #define qtma_KnobKnob(m, l) \
2659 (qtma_EXT(l, kKnobEventKnobFieldPos, kKnobEventKnobFieldWidth))
2660 #define qtma_GeneralSubtype(m, l) \
2661 (qtma_EXT(l, kGeneralEventSubtypeFieldPos, kGeneralEventSubtypeFieldWidth))
2662 #define qtma_GeneralLength(m, l) \
2663 (qtma_EXT(m, kGeneralEventLengthFieldPos, kGeneralEventLengthFieldWidth))
2664 #define qtma_StuffRestEvent(x, duration) \
2665 (x = (kRestEventType << kEventTypeFieldPos) | \
2666 ((long)(duration) << kRestEventDurationFieldPos), \
2667 x = EndianU32_NtoB(x))
2668 #define qtma_StuffNoteEvent(x, part, pitch, volume, duration) \
2669 (x = (kNoteEventType << kEventTypeFieldPos) | \
2670 ((long)(part) << kEventPartFieldPos) | \
2671 (((long)(pitch)-kNoteEventPitchOffset) << kNoteEventPitchFieldPos) | \
2672 (((long)(volume)-kNoteEventVolumeOffset) << kNoteEventVolumeFieldPos) | \
2673 ((long)(duration) << kNoteEventDurationFieldPos), \
2674 x = EndianU32_NtoB(x))
2675 #define qtma_StuffControlEvent(x, part, control, value) \
2676 (x = (kControlEventType << kEventTypeFieldPos) | \
2677 ((long)(part) << kEventPartFieldPos) | \
2678 ((long)(control) << kControlEventControllerFieldPos) | \
2679 ((long)((value) & qtma_MASK(kControlEventValueFieldWidth)) \
2680 << kControlEventValueFieldPos), \
2681 x = EndianU32_NtoB(x))
2682 #define qtma_StuffMarkerEvent(x, markerType, markerValue) \
2683 (x = (kMarkerEventType << kEventTypeFieldPos) | \
2684 ((long)(markerType) << kMarkerEventSubtypeFieldPos) | \
2685 ((long)(markerValue) << kMarkerEventValueFieldPos), \
2686 x = EndianU32_NtoB(x))
2687 #define qtma_StuffXNoteEvent(w1, w2, part, pitch, volume, duration) \
2688 (w1 = (kXNoteEventType << kXEventTypeFieldPos) | \
2689 ((long)(part) << kXEventPartFieldPos) | \
2690 ((long)(pitch) << kXNoteEventPitchFieldPos), \
2691 w1 = EndianU32_NtoB(w1), \
2692 w2 = (kXEventLengthBits << kEventLengthFieldPos) | \
2693 ((long)(duration) << kXNoteEventDurationFieldPos) | \
2694 ((long)(volume) << kXNoteEventVolumeFieldPos), \
2695 w2 = EndianU32_NtoB(w2))
2696 #define qtma_StuffXControlEvent(w1, w2, part, control, value) \
2697 (w1 = (kXControlEventType << kXEventTypeFieldPos) | \
2698 ((long)(part) << kXEventPartFieldPos) | \
2699 ((long)((value) & qtma_MASK(kXControlEventValueFieldWidth)) \
2700 << kXControlEventValueFieldPos), \
2701 w1 = EndianU32_NtoB(w1), \
2702 w2 = (kXEventLengthBits << kEventLengthFieldPos) | \
2703 ((long)(control) << kXControlEventControllerFieldPos), \
2704 w2 = EndianU32_NtoB(w2))
2705 #define qtma_StuffKnobEvent(w1, w2, part, knob, value) \
2706 (w1 = (kKnobEventType << kXEventTypeFieldPos) | \
2707 ((long)(part) << kXEventPartFieldPos) | \
2708 ((long)(value >> 16) << kKnobEventValueLowFieldPos), \
2709 w1 = EndianU32_NtoB(w1), \
2710 w2 = (kXEventLengthBits << kEventLengthFieldPos) | \
2711 ((long)(knob) << kKnobEventKnobFieldPos) | \
2712 ((long)(value & 0xFFFF) << kKnobEventValueLowFieldPos), \
2713 w2 = EndianU32_NtoB(w2))
2714 #define qtma_StuffGeneralEvent(w1, w2, part, subType, length) \
2715 (w1 = (kGeneralEventType << kXEventTypeFieldPos) | \
2716 ((long)(part) << kXEventPartFieldPos) | \
2717 ((long)(length) << kGeneralEventLengthFieldPos), \
2718 w1 = EndianU32_NtoB(w1), \
2719 w2 = (kGeneralEventLengthBits << kEventLengthFieldPos) | \
2720 ((long)(subType) << kGeneralEventSubtypeFieldPos) | \
2721 ((long)(length) << kGeneralEventLengthFieldPos), \
2722 w2 = EndianU32_NtoB(w2))
2723 #define qtma_NeedXGeneralEvent(length) \
2724 (((unsigned long)(length)) > (unsigned long)0xffff)
2729 kGeneralEventNoteRequest = 1,
2730 kGeneralEventPartKey = 4,
2731 kGeneralEventTuneDifference =
2734 kGeneralEventAtomicInstrument = 6,
2735 kGeneralEventKnob = 7,
2736 kGeneralEventMIDIChannel = 8,
2738 kGeneralEventPartChange =
2742 kGeneralEventNoOp = 10,
2744 kGeneralEventUsedNotes = 11,
2746 kGeneralEventPartMix =
2756 kMarkerEventBeat = 1,
2758 kMarkerEventTempo = 2
2765 kCurrentlyNativeEndian = 1,
2766 kCurrentlyNotNativeEndian = 2
2780 #if !OPAQUE_UPP_TYPES
2783 uppMusicMIDISendProcInfo = 0x00000FF0
2789 uppMusicMIDISendProcInfo,
2790 GetCurrentArchitecture());
2793 #define NewMusicMIDISendUPP(userRoutine) \
2794 (MusicMIDISendUPP) \
2795 NewRoutineDescriptor((ProcPtr)(userRoutine), uppMusicMIDISendProcInfo, \
2796 GetCurrentArchitecture())
2810 #if !OPAQUE_UPP_TYPES
2813 uppMusicOfflineDataProcInfo = 0x00000FF0
2816 inline MusicOfflineDataUPP
2820 uppMusicOfflineDataProcInfo,
2821 GetCurrentArchitecture());
2824 #define NewMusicOfflineDataUPP(userRoutine) \
2825 (MusicOfflineDataUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
2826 uppMusicOfflineDataProcInfo, \
2827 GetCurrentArchitecture())
2841 #if !OPAQUE_UPP_TYPES
2844 uppTuneCallBackProcInfo = 0x000003C0
2850 uppTuneCallBackProcInfo,
2851 GetCurrentArchitecture());
2854 #define NewTuneCallBackUPP(userRoutine) \
2856 NewRoutineDescriptor((ProcPtr)(userRoutine), uppTuneCallBackProcInfo, \
2857 GetCurrentArchitecture())
2871 #if !OPAQUE_UPP_TYPES
2874 uppTunePlayCallBackProcInfo = 0x00000FC0
2877 inline TunePlayCallBackUPP
2881 uppTunePlayCallBackProcInfo,
2882 GetCurrentArchitecture());
2885 #define NewTunePlayCallBackUPP(userRoutine) \
2886 (TunePlayCallBackUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
2887 uppTunePlayCallBackProcInfo, \
2888 GetCurrentArchitecture())
2902 #if !OPAQUE_UPP_TYPES
2909 #define DisposeMusicMIDISendUPP(userUPP) DisposeRoutineDescriptor(userUPP)
2923 #if !OPAQUE_UPP_TYPES
2930 #define DisposeMusicOfflineDataUPP(userUPP) DisposeRoutineDescriptor(userUPP)
2944 #if !OPAQUE_UPP_TYPES
2951 #define DisposeTuneCallBackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
2965 #if !OPAQUE_UPP_TYPES
2972 #define DisposeTunePlayCallBackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
2987 #if !OPAQUE_UPP_TYPES
2991 MusicMIDISendUPP userUPP)
2993 return (ComponentResult)CALL_THREE_PARAMETER_UPP(
2994 userUPP, uppMusicMIDISendProcInfo,
self, refCon, mmp);
2997 #define InvokeMusicMIDISendUPP(self, refCon, mmp, userUPP) \
2998 (ComponentResult) CALL_THREE_PARAMETER_UPP( \
2999 (userUPP), uppMusicMIDISendProcInfo, (self), (refCon), (mmp))
3013 MusicOfflineDataUPP userUPP);
3014 #if !OPAQUE_UPP_TYPES
3018 MusicOfflineDataUPP userUPP)
3020 return (ComponentResult)CALL_THREE_PARAMETER_UPP(
3021 userUPP, uppMusicOfflineDataProcInfo, SoundData, numBytes, myRefCon);
3024 #define InvokeMusicOfflineDataUPP(SoundData, numBytes, myRefCon, userUPP) \
3026 CALL_THREE_PARAMETER_UPP((userUPP), uppMusicOfflineDataProcInfo, \
3027 (SoundData), (numBytes), (myRefCon))
3041 TuneCallBackUPP userUPP);
3042 #if !OPAQUE_UPP_TYPES
3045 TuneCallBackUPP userUPP)
3047 CALL_TWO_PARAMETER_UPP(userUPP, uppTuneCallBackProcInfo, status, refCon);
3050 #define InvokeTuneCallBackUPP(status, refCon, userUPP) \
3051 CALL_TWO_PARAMETER_UPP((userUPP), uppTuneCallBackProcInfo, (status), (refCon))
3065 TunePlayCallBackUPP userUPP);
3066 #if !OPAQUE_UPP_TYPES
3070 TunePlayCallBackUPP userUPP)
3072 CALL_THREE_PARAMETER_UPP(userUPP, uppTunePlayCallBackProcInfo,
event, seed,
3076 #define InvokeTunePlayCallBackUPP(event, seed, refCon, userUPP) \
3077 CALL_THREE_PARAMETER_UPP((userUPP), uppTunePlayCallBackProcInfo, (event), \
3082 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
3084 #define NewMusicMIDISendProc(userRoutine) NewMusicMIDISendUPP(userRoutine)
3085 #define NewMusicOfflineDataProc(userRoutine) NewMusicOfflineDataUPP(userRoutine)
3086 #define NewTuneCallBackProc(userRoutine) NewTuneCallBackUPP(userRoutine)
3087 #define NewTunePlayCallBackProc(userRoutine) NewTunePlayCallBackUPP(userRoutine)
3088 #define CallMusicMIDISendProc(userRoutine, self, refCon, mmp) \
3089 InvokeMusicMIDISendUPP(self, refCon, mmp, userRoutine)
3090 #define CallMusicOfflineDataProc(userRoutine, SoundData, numBytes, myRefCon) \
3091 InvokeMusicOfflineDataUPP(SoundData, numBytes, myRefCon, userRoutine)
3092 #define CallTuneCallBackProc(userRoutine, status, refCon) \
3093 InvokeTuneCallBackUPP(status, refCon, userRoutine)
3094 #define CallTunePlayCallBackProc(userRoutine, event, seed, refCon) \
3095 InvokeTunePlayCallBackUPP(event, seed, refCon, userRoutine)
3101 kQTMIDIGetMIDIPortsSelect = 0x0001,
3102 kQTMIDIUseSendPortSelect = 0x0002,
3103 kQTMIDISendMIDISelect = 0x0003,
3104 kMusicGetDescriptionSelect = 0x0001,
3105 kMusicGetPartSelect = 0x0002,
3106 kMusicSetPartSelect = 0x0003,
3107 kMusicSetPartInstrumentNumberSelect = 0x0004,
3108 kMusicGetPartInstrumentNumberSelect = 0x0005,
3109 kMusicStorePartInstrumentSelect = 0x0006,
3110 kMusicGetPartAtomicInstrumentSelect = 0x0009,
3111 kMusicSetPartAtomicInstrumentSelect = 0x000A,
3112 kMusicGetPartKnobSelect = 0x0010,
3113 kMusicSetPartKnobSelect = 0x0011,
3114 kMusicGetKnobSelect = 0x0012,
3115 kMusicSetKnobSelect = 0x0013,
3116 kMusicGetPartNameSelect = 0x0014,
3117 kMusicSetPartNameSelect = 0x0015,
3118 kMusicFindToneSelect = 0x0016,
3119 kMusicPlayNoteSelect = 0x0017,
3120 kMusicResetPartSelect = 0x0018,
3121 kMusicSetPartControllerSelect = 0x0019,
3122 kMusicGetPartControllerSelect = 0x001A,
3123 kMusicGetMIDIProcSelect = 0x001B,
3124 kMusicSetMIDIProcSelect = 0x001C,
3125 kMusicGetInstrumentNamesSelect = 0x001D,
3126 kMusicGetDrumNamesSelect = 0x001E,
3127 kMusicGetMasterTuneSelect = 0x001F,
3128 kMusicSetMasterTuneSelect = 0x0020,
3129 kMusicGetInstrumentAboutInfoSelect = 0x0022,
3130 kMusicGetDeviceConnectionSelect = 0x0023,
3131 kMusicUseDeviceConnectionSelect = 0x0024,
3132 kMusicGetKnobSettingStringsSelect = 0x0025,
3133 kMusicGetMIDIPortsSelect = 0x0026,
3134 kMusicSendMIDISelect = 0x0027,
3135 kMusicStartOfflineSelect = 0x0029,
3136 kMusicSetOfflineTimeToSelect = 0x002A,
3137 kMusicGetInstrumentKnobDescriptionSelect = 0x002B,
3138 kMusicGetDrumKnobDescriptionSelect = 0x002C,
3139 kMusicGetKnobDescriptionSelect = 0x002D,
3140 kMusicGetInfoTextSelect = 0x002E,
3141 kMusicGetInstrumentInfoSelect = 0x002F,
3142 kMusicTaskSelect = 0x0031,
3143 kMusicSetPartInstrumentNumberInterruptSafeSelect = 0x0032,
3144 kMusicSetPartSoundLocalizationSelect = 0x0033,
3145 kMusicGenericConfigureSelect = 0x0100,
3146 kMusicGenericGetPartSelect = 0x0101,
3147 kMusicGenericGetKnobListSelect = 0x0102,
3148 kMusicGenericSetResourceNumbersSelect = 0x0103,
3149 kMusicDerivedMIDISendSelect = 0x0200,
3150 kMusicDerivedSetKnobSelect = 0x0201,
3151 kMusicDerivedSetPartSelect = 0x0202,
3152 kMusicDerivedSetInstrumentSelect = 0x0203,
3153 kMusicDerivedSetPartInstrumentNumberSelect = 0x0204,
3154 kMusicDerivedSetMIDISelect = 0x0205,
3155 kMusicDerivedStorePartInstrumentSelect = 0x0206,
3156 kMusicDerivedOpenResFileSelect = 0x0207,
3157 kMusicDerivedCloseResFileSelect = 0x0208,
3158 kNARegisterMusicDeviceSelect = 0x0000,
3159 kNAUnregisterMusicDeviceSelect = 0x0001,
3160 kNAGetRegisteredMusicDeviceSelect = 0x0002,
3161 kNASaveMusicConfigurationSelect = 0x0003,
3162 kNANewNoteChannelSelect = 0x0004,
3163 kNADisposeNoteChannelSelect = 0x0005,
3164 kNAGetNoteChannelInfoSelect = 0x0006,
3165 kNAPrerollNoteChannelSelect = 0x0007,
3166 kNAUnrollNoteChannelSelect = 0x0008,
3167 kNASetNoteChannelVolumeSelect = 0x000B,
3168 kNAResetNoteChannelSelect = 0x000C,
3169 kNAPlayNoteSelect = 0x000D,
3170 kNASetControllerSelect = 0x000E,
3171 kNASetKnobSelect = 0x000F,
3172 kNAFindNoteChannelToneSelect = 0x0010,
3173 kNASetInstrumentNumberSelect = 0x0011,
3174 kNAPickInstrumentSelect = 0x0012,
3175 kNAPickArrangementSelect = 0x0013,
3176 kNAStuffToneDescriptionSelect = 0x001B,
3177 kNACopyrightDialogSelect = 0x001C,
3178 kNAGetIndNoteChannelSelect = 0x001F,
3179 kNAGetMIDIPortsSelect = 0x0021,
3180 kNAGetNoteRequestSelect = 0x0022,
3181 kNASendMIDISelect = 0x0023,
3182 kNAPickEditInstrumentSelect = 0x0024,
3183 kNANewNoteChannelFromAtomicInstrumentSelect = 0x0025,
3184 kNASetAtomicInstrumentSelect = 0x0026,
3185 kNAGetKnobSelect = 0x0028,
3186 kNATaskSelect = 0x0029,
3187 kNASetNoteChannelBalanceSelect = 0x002A,
3188 kNASetInstrumentNumberInterruptSafeSelect = 0x002B,
3189 kNASetNoteChannelSoundLocalizationSelect = 0x002C,
3190 kNAGetControllerSelect = 0x002D,
3191 kTuneSetHeaderSelect = 0x0004,
3192 kTuneGetTimeBaseSelect = 0x0005,
3193 kTuneSetTimeScaleSelect = 0x0006,
3194 kTuneGetTimeScaleSelect = 0x0007,
3195 kTuneGetIndexedNoteChannelSelect = 0x0008,
3196 kTuneQueueSelect = 0x000A,
3197 kTuneInstantSelect = 0x000B,
3198 kTuneGetStatusSelect = 0x000C,
3199 kTuneStopSelect = 0x000D,
3200 kTuneSetVolumeSelect = 0x0010,
3201 kTuneGetVolumeSelect = 0x0011,
3202 kTunePrerollSelect = 0x0012,
3203 kTuneUnrollSelect = 0x0013,
3204 kTuneSetNoteChannelsSelect = 0x0014,
3205 kTuneSetPartTransposeSelect = 0x0015,
3206 kTuneGetNoteAllocatorSelect = 0x0017,
3207 kTuneSetSofterSelect = 0x0018,
3208 kTuneTaskSelect = 0x0019,
3209 kTuneSetBalanceSelect = 0x001A,
3210 kTuneSetSoundLocalizationSelect = 0x001B,
3211 kTuneSetHeaderWithSizeSelect = 0x001C,
3212 kTuneSetPartMixSelect = 0x001D,
3213 kTuneGetPartMixSelect = 0x001E
3216 #if PRAGMA_STRUCT_ALIGN
3217 #pragma options align = reset
3218 #elif PRAGMA_STRUCT_PACKPUSH
3220 #elif PRAGMA_STRUCT_PACK
3224 #ifdef PRAGMA_IMPORT_OFF
3227 #pragma import reset
Component Manager Interfaces.
long BigEndianLong
Definition: Endian.h:549
QuickTime Image Compression Interfaces.
Memory Manager Interfaces.
long Fixed
Definition: MacTypes.h:153
unsigned char * StringPtr
Definition: MacTypes.h:477
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
ComponentResult MusicFindTone(MusicComponent mc, ToneDescription *td, long *libraryIndexOut, unsigned long *fit)
ComponentResult NASetNoteChannelVolume(NoteAllocator na, NoteChannel noteChannel, Fixed volume)
ComponentResult QTMIDIUseSendPort(QTMIDIComponent ci, long portIndex, long inUse)
ComponentResult MusicGetPartInstrumentNumber(MusicComponent mc, long part)
ComponentResult InvokeMusicMIDISendUPP(ComponentInstance self, long refCon, MusicMIDIPacket *mmp, MusicMIDISendUPP userUPP)
ComponentResult MusicDerivedSetKnob(MusicComponent mc, long knobType, long knobNumber, long knobValue, long partNumber, GCPart *p, GenericKnobDescription *gkd)
ComponentResult NASetNoteChannelSoundLocalization(NoteAllocator na, NoteChannel noteChannel, Handle data)
ComponentResult NASetInstrumentNumberInterruptSafe(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber)
ComponentResult MusicStartOffline(MusicComponent mc, unsigned long *numChannels, UnsignedFixed *sampleRate, unsigned short *sampleSize, MusicOfflineDataUPP dataProc, long dataProcRefCon)
ComponentResult TuneSetSofter(TunePlayer tp, long softer)
TuneCallBackUPP NewTuneCallBackUPP(TuneCallBackProcPtr userRoutine)
ComponentResult MusicDerivedOpenResFile(MusicComponent mc)
void InvokeTuneCallBackUPP(const TuneStatus *status, long refCon, TuneCallBackUPP userUPP)
ComponentResult NARegisterMusicDevice(NoteAllocator na, OSType synthType, Str31 name, SynthesizerConnections *connections)
MusicOfflineDataUPP NewMusicOfflineDataUPP(MusicOfflineDataProcPtr userRoutine)
ComponentResult MusicDerivedCloseResFile(MusicComponent mc, short resRefNum)
ComponentResult NASetAtomicInstrument(NoteAllocator na, NoteChannel noteChannel, AtomicInstrumentPtr instrument, long flags)
ComponentResult MusicDerivedSetPartInstrumentNumber(MusicComponent mc, long partNumber, GCPart *p)
ComponentResult TuneSetTimeScale(TunePlayer tp, TimeScale scale)
ComponentResult TuneSetSoundLocalization(TunePlayer tp, Handle data)
ComponentResult TuneGetVolume(TunePlayer tp)
ComponentResult NASetNoteChannelBalance(NoteAllocator na, NoteChannel noteChannel, long balance)
ComponentResult MusicGetDescription(MusicComponent mc, SynthesizerDescription *sd)
ComponentResult TuneQueue(TunePlayer tp, unsigned long *tune, Fixed tuneRate, unsigned long tuneStartPosition, unsigned long tuneStopPosition, unsigned long queueFlags, TuneCallBackUPP callBackProc, long refCon)
ComponentResult MusicGetInstrumentAboutInfo(MusicComponent mc, long part, InstrumentAboutInfo *iai)
ComponentResult NAUnregisterMusicDevice(NoteAllocator na, long index)
ComponentResult MusicGetInstrumentInfo(MusicComponent mc, long getInstrumentInfoFlags, InstrumentInfoListHandle *infoListH)
ComponentResult NADisposeNoteChannel(NoteAllocator na, NoteChannel noteChannel)
ComponentResult MusicGetKnobSettingStrings(MusicComponent mc, long knobIndex, long isGlobal, Handle *settingsNames, Handle *settingsCategoryLasts, Handle *settingsCategoryNames)
ComponentResult MusicSendMIDI(MusicComponent mc, long portIndex, MusicMIDIPacket *mp)
ComponentResult TuneGetIndexedNoteChannel(TunePlayer tp, long i, NoteChannel *nc)
ComponentResult NATask(NoteAllocator na)
ComponentResult TuneStop(TunePlayer tp, long stopFlags)
ComponentResult NAGetKnob(NoteAllocator na, NoteChannel noteChannel, long knobNumber, long *knobValue)
ComponentResult MusicSetMIDIProc(MusicComponent mc, MusicMIDISendUPP midiSendProc, long refCon)
ComponentResult NAFindNoteChannelTone(NoteAllocator na, NoteChannel noteChannel, ToneDescription *td, long *instrumentNumber)
MusicMIDISendUPP NewMusicMIDISendUPP(MusicMIDISendProcPtr userRoutine)
ComponentResult NANewNoteChannel(NoteAllocator na, NoteRequest *noteRequest, NoteChannel *outChannel)
ComponentResult MusicGenericGetPart(MusicComponent mc, long partNumber, GCPart **part)
ComponentResult MusicSetMasterTune(MusicComponent mc, long masterTune)
ComponentResult TuneSetPartTranspose(TunePlayer tp, unsigned long part, long transpose, long velocityShift)
ComponentResult NASendMIDI(NoteAllocator na, NoteChannel noteChannel, MusicMIDIPacket *mp)
ComponentResult TuneSetPartMix(TunePlayer tp, unsigned long partNumber, long volume, long balance, long mixFlags)
ComponentResult MusicGenericConfigure(MusicComponent mc, long mode, long flags, long baseResID)
ComponentResult InvokeMusicOfflineDataUPP(Ptr SoundData, long numBytes, long myRefCon, MusicOfflineDataUPP userUPP)
ComponentResult MusicGetPartKnob(MusicComponent mc, long part, long knobID)
ComponentResult TuneTask(TunePlayer tp)
ComponentResult MusicGetPartName(MusicComponent mc, long part, StringPtr name)
ComponentResult NASetController(NoteAllocator na, NoteChannel noteChannel, long controllerNumber, long controllerValue)
ComponentResult MusicSetPart(MusicComponent mc, long part, long midiChannel, long polyphony)
ComponentResult NAGetMIDIPorts(NoteAllocator na, QTMIDIPortListHandle *inputPorts, QTMIDIPortListHandle *outputPorts)
ComponentResult NACopyrightDialog(NoteAllocator na, PicHandle p, StringPtr author, StringPtr copyright, StringPtr other, StringPtr title, ModalFilterUPP filterProc, long refCon)
ComponentResult TuneGetTimeBase(TunePlayer tp, TimeBase *tb)
ComponentResult MusicGetMIDIProc(MusicComponent mc, MusicMIDISendUPP *midiSendProc, long *refCon)
ComponentResult MusicUseDeviceConnection(MusicComponent mc, long id1, long id2)
ComponentResult NAGetIndNoteChannel(NoteAllocator na, long index, NoteChannel *nc, long *seed)
ComponentResult MusicResetPart(MusicComponent mc, long part)
ComponentResult TuneSetHeader(TunePlayer tp, unsigned long *header)
ComponentResult MusicGetInstrumentKnobDescription(MusicComponent mc, long knobIndex, KnobDescription *mkd)
ComponentResult NAPrerollNoteChannel(NoteAllocator na, NoteChannel noteChannel)
ComponentResult QTMIDISendMIDI(QTMIDIComponent ci, long portIndex, MusicMIDIPacket *mp)
ComponentResult NASaveMusicConfiguration(NoteAllocator na)
ComponentResult NAGetRegisteredMusicDevice(NoteAllocator na, long index, OSType *synthType, Str31 name, SynthesizerConnections *connections, MusicComponent *mc)
ComponentResult MusicGetKnobDescription(MusicComponent mc, long knobIndex, KnobDescription *mkd)
ComponentResult MusicSetKnob(MusicComponent mc, long knobID, long knobValue)
ComponentResult MusicSetPartController(MusicComponent mc, long part, MusicController controllerNumber, long controllerValue)
ComponentResult MusicDerivedSetInstrument(MusicComponent mc, long partNumber, GCPart *p)
void DisposeMusicMIDISendUPP(MusicMIDISendUPP userUPP)
ComponentResult MusicDerivedSetMIDI(MusicComponent mc, MusicMIDISendUPP midiProc, long refcon, long midiChannel)
ComponentResult MusicGenericGetKnobList(MusicComponent mc, long knobType, GenericKnobDescriptionListHandle *gkdlH)
ComponentResult NAResetNoteChannel(NoteAllocator na, NoteChannel noteChannel)
ComponentResult MusicGetPartAtomicInstrument(MusicComponent mc, long part, AtomicInstrument *ai, long flags)
ComponentResult TuneInstant(TunePlayer tp, unsigned long *tune, unsigned long tunePosition)
ComponentResult NAUnrollNoteChannel(NoteAllocator na, NoteChannel noteChannel)
ComponentResult NAStuffToneDescription(NoteAllocator na, long gmNumber, ToneDescription *td)
ComponentResult MusicSetPartInstrumentNumber(MusicComponent mc, long part, long instrumentNumber)
ComponentResult NASetInstrumentNumber(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber)
ComponentResult NAPlayNote(NoteAllocator na, NoteChannel noteChannel, long pitch, long velocity)
ComponentResult NAPickEditInstrument(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, long refCon, NoteChannel nc, AtomicInstrument ai, long flags)
ComponentResult NASetKnob(NoteAllocator na, NoteChannel noteChannel, long knobNumber, long knobValue)
ComponentResult MusicGetDrumKnobDescription(MusicComponent mc, long knobIndex, KnobDescription *mkd)
ComponentResult MusicSetOfflineTimeTo(MusicComponent mc, long newTimeStamp)
ComponentResult NAGetNoteChannelInfo(NoteAllocator na, NoteChannel noteChannel, long *index, long *part)
NoteAllocator TuneGetNoteAllocator(TunePlayer tp)
ComponentResult TuneUnroll(TunePlayer tp)
UInt8 NoteRequestMIDIChannel
Definition: QuickTimeMusic.h:1585
ComponentResult MusicSetPartName(MusicComponent mc, long part, StringPtr name)
ComponentResult MusicGetKnob(MusicComponent mc, long knobID)
ComponentResult TunePreroll(TunePlayer tp)
ComponentResult MusicDerivedMIDISend(MusicComponent mc, MusicMIDIPacket *packet)
ComponentResult MusicGetMasterTune(MusicComponent mc)
ComponentResult MusicGenericSetResourceNumbers(MusicComponent mc, Handle resourceIDH)
ComponentResult NANewNoteChannelFromAtomicInstrument(NoteAllocator na, AtomicInstrumentPtr instrument, long flags, NoteChannel *outChannel)
ComponentResult TuneGetStatus(TunePlayer tp, TuneStatus *status)
ComponentResult TuneGetPartMix(TunePlayer tp, unsigned long partNumber, long *volumeOut, long *balanceOut, long *mixFlagsOut)
ComponentResult TuneSetHeaderWithSize(TunePlayer tp, unsigned long *header, unsigned long size)
ComponentResult MusicSetPartAtomicInstrument(MusicComponent mc, long part, AtomicInstrumentPtr aiP, long flags)
ComponentResult MusicDerivedStorePartInstrument(MusicComponent mc, long partNumber, GCPart *p, long instrumentNumber)
ComponentResult NAPickArrangement(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, long zero1, long zero2, Track t, StringPtr songName)
ComponentResult MusicGetMIDIPorts(MusicComponent mc, long *inputPortCount, long *outputPortCount)
ComponentResult MusicGetInfoText(MusicComponent mc, long selector, Handle *textH, Handle *styleH)
ComponentResult NAPickInstrument(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, ToneDescription *sd, unsigned long flags, long refCon, long reserved1, long reserved2)
ComponentResult TuneSetBalance(TunePlayer tp, long balance)
ComponentResult TuneGetTimeScale(TunePlayer tp, TimeScale *scale)
ComponentResult MusicGetDrumNames(MusicComponent mc, long modifiableInstruments, Handle *instrumentNumbers, Handle *instrumentNames)
ComponentResult MusicDerivedSetPart(MusicComponent mc, long partNumber, GCPart *p)
ComponentResult MusicGetInstrumentNames(MusicComponent mc, long modifiableInstruments, Handle *instrumentNames, Handle *instrumentCategoryLasts, Handle *instrumentCategoryNames)
void InvokeTunePlayCallBackUPP(unsigned long *event, long seed, long refCon, TunePlayCallBackUPP userUPP)
ComponentResult QTMIDIGetMIDIPorts(QTMIDIComponent ci, QTMIDIPortListHandle *inputPorts, QTMIDIPortListHandle *outputPorts)
TunePlayCallBackUPP NewTunePlayCallBackUPP(TunePlayCallBackProcPtr userRoutine)
ComponentResult MusicPlayNote(MusicComponent mc, long part, long pitch, long velocity)
ComponentResult MusicStorePartInstrument(MusicComponent mc, long part, long instrumentNumber)
ComponentResult NAGetNoteRequest(NoteAllocator na, NoteChannel noteChannel, NoteRequest *nrOut)
void DisposeTuneCallBackUPP(TuneCallBackUPP userUPP)
ComponentResult MusicGetPart(MusicComponent mc, long part, long *midiChannel, long *polyphony)
ComponentResult MusicSetPartSoundLocalization(MusicComponent mc, long part, Handle data)
ComponentResult MusicSetPartInstrumentNumberInterruptSafe(MusicComponent mc, long part, long instrumentNumber)
ComponentResult MusicTask(MusicComponent mc)
void DisposeTunePlayCallBackUPP(TunePlayCallBackUPP userUPP)
ComponentResult MusicGetPartController(MusicComponent mc, long part, MusicController controllerNumber)
void DisposeMusicOfflineDataUPP(MusicOfflineDataUPP userUPP)
ComponentResult MusicSetPartKnob(MusicComponent mc, long part, long knobID, long knobValue)
ComponentResult TuneSetNoteChannels(TunePlayer tp, unsigned long count, NoteChannel *noteChannelList, TunePlayCallBackUPP playCallBackProc, long refCon)
SInt32 MusicController
Definition: QuickTimeMusic.h:371
ComponentResult NAGetController(NoteAllocator na, NoteChannel noteChannel, long controllerNumber, long *controllerValue)
ComponentResult MusicGetDeviceConnection(MusicComponent mc, long index, long *id1, long *id2)
ComponentResult TuneSetVolume(TunePlayer tp, Fixed volume)
Interface to Quickdraw Graphics.
Sound Manager Interfaces.
Definition: Components.h:220
Definition: QuickTimeMusic.h:618
Definition: QuickTimeMusic.h:787
Definition: QuickTimeMusic.h:720
Definition: QuickTimeMusic.h:711
Definition: QuickTimeMusic.h:114
Definition: QuickTimeMusic.h:102
Definition: QuickTimeMusic.h:97
Definition: QuickTimeMusic.h:132
Definition: QuickTimeMusic.h:627
Definition: QuickTimeMusic.h:856
Definition: QuickTimeMusic.h:848
Definition: QuickTimeMusic.h:608
Definition: QuickTimeMusic.h:196
Definition: QuickTimeMusic.h:1587
Definition: QuickTimeMusic.h:1597
Definition: QuickTimeMusic.h:841
Definition: Quickdraw.h:326
Definition: PPCToolbox.h:168
Definition: QuickTimeMusic.h:263
Definition: QuickTimeMusic.h:257
Definition: QuickTimeMusic.h:241
Definition: QuickTimeMusic.h:502
Definition: QuickTimeMusic.h:535
Definition: QuickTimeMusic.h:2060
Definition: OpenTransportProtocol.h:205