Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info.

MusicComponent.k.h

From Higher Intellect Vintage Wiki
Jump to navigation Jump to search
/*
    File:      MusicComponent.k.h
 
    Contains:   QuickTime interfaces
 
    Version:   Technology:   
             Release:   QuickTime 2.5 interfaces to use with ETO #20
 
    Copyright:   © 1984-1996 by Apple Computer, Inc.  All rights reserved.
 
    Bugs?:      If you find a problem with this file, send the file and version
             information (from above) and the problem description to:
 
                Internet:   [email protected]
                AppleLink:   APPLE.BUGS
 
*/
#ifndef __MUSICCOMPONENT_K__
#define __MUSICCOMPONENT_K__

#include 

/* MusicSynthesizerFlags*/
/*
 * Note that these controller numbers
 * are _not_ identical to the MIDI controller numbers.
 * These are _signed_ 8.8 values, and the LSB's are
 * always sent to a MIDI device. Controllers 32-63 are
 * reserved (for MIDI, they are LSB's for 0-31, but we
 * always send both).
 *
 * The full range, therefore, is -128.00 to 127.7f.
 *
 * _Excepting_ _volume_, all controls default to zero.
 *
 * Pitch bend is specified in fractional semitones! No
 * more "pitch bend range" nonsense. You can bend as far
 * as you want, any time you want.
*/
/* InstrumentMatch*/
/* KnobFlags*/
/*
 For non-gm instruments, instrument number of tone description == 0
 If you want to speed up while running, slam the inst num with what Get instrument number returns
 All missing knobs are slammed to the default value
*/
/*
 * Structures specific to the GenericMusicComponent
*/
/* knobTypes for MusicDerivedSetKnob */
/* elements of the misc long list */
/*
 * Calls specific to the GenericMusicComponent
*/
/*
 * Flags in GenericMusicConfigure call
*/

#ifndef MUSIC_BASENAME
   #error MUSIC_BASENAME must be defined to use this file
#endif
#ifndef MUSIC_GLOBALS
   #error MUSIC_GLOBALS must be defined to use this file
#endif
#define ADD_MUSIC_BASENAME(name) MUSIC_BASENAME()##name

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDescription) (MUSIC_GLOBALS(), SynthesizerDescription * sd);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPart) (MUSIC_GLOBALS(), long  part, long * midiChannel, long * polyphony);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPart) (MUSIC_GLOBALS(), long  part, long  midiChannel, long  polyphony);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartInstrumentNumber) (MUSIC_GLOBALS(), long  part, long  instrumentNumber);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartInstrumentNumber) (MUSIC_GLOBALS(), long  part);

extern pascal ComponentResult ADD_MUSIC_BASENAME(StorePartInstrument) (MUSIC_GLOBALS(), long  part, long  instrumentNumber);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartAtomicInstrument) (MUSIC_GLOBALS(), long  part, AtomicInstrument * ai, long  flags);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartAtomicInstrument) (MUSIC_GLOBALS(), long  part, AtomicInstrumentPtr  aiP, long  flags);

/* Obsolete calls*/
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentKnobDescriptionObsolete) (MUSIC_GLOBALS(), long  knobIndex, void * mkd);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDrumKnobDescriptionObsolete) (MUSIC_GLOBALS(), long  knobIndex, void * mkd);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetKnobDescriptionObsolete) (MUSIC_GLOBALS(), long  knobIndex, void * mkd);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartKnob) (MUSIC_GLOBALS(), long  part, long  knobID);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartKnob) (MUSIC_GLOBALS(), long  part, long  knobID, long  knobValue);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetKnob) (MUSIC_GLOBALS(), long  knobID);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetKnob) (MUSIC_GLOBALS(), long  knobID, long  knobValue);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartName) (MUSIC_GLOBALS(), long  part, StringPtr  name);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartName) (MUSIC_GLOBALS(), long  part, StringPtr  name);

extern pascal ComponentResult ADD_MUSIC_BASENAME(FindTone) (MUSIC_GLOBALS(), ToneDescription * td, long * instrumentNumber, unsigned long * fit);

extern pascal ComponentResult ADD_MUSIC_BASENAME(PlayNote) (MUSIC_GLOBALS(), long  part, long  pitch, long  velocity);

extern pascal ComponentResult ADD_MUSIC_BASENAME(ResetPart) (MUSIC_GLOBALS(), long  part);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartController) (MUSIC_GLOBALS(), long  part, MusicController  controllerNumber, long  controllerValue);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartController) (MUSIC_GLOBALS(), long  part, MusicController  controllerNumber);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetMIDIProc) (MUSIC_GLOBALS(), MusicMIDISendUPP * midiSendProc, long * refCon);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetMIDIProc) (MUSIC_GLOBALS(), MusicMIDISendUPP  midiSendProc, long  refCon);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentNames) (MUSIC_GLOBALS(), long  modifiableInstruments, Handle * instrumentNames, Handle * instrumentCategoryLasts, Handle * instrumentCategoryNames);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDrumNames) (MUSIC_GLOBALS(), long  modifiableInstruments, Handle * instrumentNumbers, Handle * instrumentNames);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetMasterTune) (MUSIC_GLOBALS());

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetMasterTune) (MUSIC_GLOBALS(), long  masterTune);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentAboutInfo) (MUSIC_GLOBALS(), long  part, InstrumentAboutInfo * iai);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDeviceConnection) (MUSIC_GLOBALS(), long  index, long * id1, long * id2);

extern pascal ComponentResult ADD_MUSIC_BASENAME(UseDeviceConnection) (MUSIC_GLOBALS(), long  id1, long  id2);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetKnobSettingStrings) (MUSIC_GLOBALS(), long  knobIndex, long  isGlobal, Handle * settingsNames, Handle * settingsCategoryLasts, Handle * settingsCategoryNames);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetMIDIPorts) (MUSIC_GLOBALS(), long * inputPortCount, long * outputPortCount);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SendMIDI) (MUSIC_GLOBALS(), long  portIndex, MusicMIDIPacket * mp);

extern pascal ComponentResult ADD_MUSIC_BASENAME(ReceiveMIDI) (MUSIC_GLOBALS(), MusicMIDIReadHookUPP  readHook, long  refCon);

extern pascal ComponentResult ADD_MUSIC_BASENAME(StartOffline) (MUSIC_GLOBALS(), unsigned long * numChannels, UnsignedFixed * sampleRate, unsigned short * sampleSize, MusicOfflineDataUPP  dataProc, long  dataProcRefCon);

extern pascal ComponentResult ADD_MUSIC_BASENAME(SetOfflineTimeTo) (MUSIC_GLOBALS(), long  newTimeStamp);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentKnobDescription) (MUSIC_GLOBALS(), long  knobIndex, KnobDescription * mkd);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDrumKnobDescription) (MUSIC_GLOBALS(), long  knobIndex, KnobDescription * mkd);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetKnobDescription) (MUSIC_GLOBALS(), long  knobIndex, KnobDescription * mkd);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInfoText) (MUSIC_GLOBALS(), long  selector, Handle * textH, Handle * styleH);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentInfo) (MUSIC_GLOBALS(), long  getInstrumentNamesFlags, InstrumentInfoListHandle * infoListH);

extern pascal ComponentResult ADD_MUSIC_BASENAME(Task) (MUSIC_GLOBALS());

extern pascal ComponentResult ADD_MUSIC_BASENAME(GenericConfigure) (MUSIC_GLOBALS(), long  mode, long  flags, long  baseResID);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GenericGetPart) (MUSIC_GLOBALS(), long  partNumber, GCPart ** part);

extern pascal ComponentResult ADD_MUSIC_BASENAME(GenericGetKnobList) (MUSIC_GLOBALS(), long  knobType, GenericKnobDescriptionListHandle * gkdlH);

extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedMIDISend) (MUSIC_GLOBALS(), MusicMIDIPacket * packet);

extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetKnob) (MUSIC_GLOBALS(), long  knobType, long  knobNumber, long  knobValue, long  partNumber, GCPart * p, GenericKnobDescription * gkd);

extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetPart) (MUSIC_GLOBALS(), long  partNumber, GCPart * p);

extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetInstrument) (MUSIC_GLOBALS(), long  partNumber, GCPart * p);

extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetPartInstrumentNumber) (MUSIC_GLOBALS(), long  partNumber, GCPart * p);

extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetMIDI) (MUSIC_GLOBALS(), MusicMIDISendProcPtr  midiProc, long  refcon, long  midiChannel);

extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedStorePartInstrument) (MUSIC_GLOBALS(), long  partNumber, GCPart * p, long  instrumentNumber);


/* MixedMode ProcInfo constants for component calls */
enum {
   uppMusicGetDescriptionProcInfo = 0x000003F0,
   uppMusicGetPartProcInfo = 0x00003FF0,
   uppMusicSetPartProcInfo = 0x00003FF0,
   uppMusicSetPartInstrumentNumberProcInfo = 0x00000FF0,
   uppMusicGetPartInstrumentNumberProcInfo = 0x000003F0,
   uppMusicStorePartInstrumentProcInfo = 0x00000FF0,
   uppMusicGetPartAtomicInstrumentProcInfo = 0x00003FF0,
   uppMusicSetPartAtomicInstrumentProcInfo = 0x00003FF0,
   uppMusicGetInstrumentKnobDescriptionObsoleteProcInfo = 0x00000FF0,
   uppMusicGetDrumKnobDescriptionObsoleteProcInfo = 0x00000FF0,
   uppMusicGetKnobDescriptionObsoleteProcInfo = 0x00000FF0,
   uppMusicGetPartKnobProcInfo = 0x00000FF0,
   uppMusicSetPartKnobProcInfo = 0x00003FF0,
   uppMusicGetKnobProcInfo = 0x000003F0,
   uppMusicSetKnobProcInfo = 0x00000FF0,
   uppMusicGetPartNameProcInfo = 0x00000FF0,
   uppMusicSetPartNameProcInfo = 0x00000FF0,
   uppMusicFindToneProcInfo = 0x00003FF0,
   uppMusicPlayNoteProcInfo = 0x00003FF0,
   uppMusicResetPartProcInfo = 0x000003F0,
   uppMusicSetPartControllerProcInfo = 0x00003FF0,
   uppMusicGetPartControllerProcInfo = 0x00000FF0,
   uppMusicGetMIDIProcProcInfo = 0x00000FF0,
   uppMusicSetMIDIProcProcInfo = 0x00000FF0,
   uppMusicGetInstrumentNamesProcInfo = 0x0000FFF0,
   uppMusicGetDrumNamesProcInfo = 0x00003FF0,
   uppMusicGetMasterTuneProcInfo = 0x000000F0,
   uppMusicSetMasterTuneProcInfo = 0x000003F0,
   uppMusicGetInstrumentAboutInfoProcInfo = 0x00000FF0,
   uppMusicGetDeviceConnectionProcInfo = 0x00003FF0,
   uppMusicUseDeviceConnectionProcInfo = 0x00000FF0,
   uppMusicGetKnobSettingStringsProcInfo = 0x0003FFF0,
   uppMusicGetMIDIPortsProcInfo = 0x00000FF0,
   uppMusicSendMIDIProcInfo = 0x00000FF0,
   uppMusicReceiveMIDIProcInfo = 0x00000FF0,
   uppMusicStartOfflineProcInfo = 0x0003FFF0,
   uppMusicSetOfflineTimeToProcInfo = 0x000003F0,
   uppMusicGetInstrumentKnobDescriptionProcInfo = 0x00000FF0,
   uppMusicGetDrumKnobDescriptionProcInfo = 0x00000FF0,
   uppMusicGetKnobDescriptionProcInfo = 0x00000FF0,
   uppMusicGetInfoTextProcInfo = 0x00003FF0,
   uppMusicGetInstrumentInfoProcInfo = 0x00000FF0,
   uppMusicTaskProcInfo = 0x000000F0,
   uppMusicGenericConfigureProcInfo = 0x00003FF0,
   uppMusicGenericGetPartProcInfo = 0x00000FF0,
   uppMusicGenericGetKnobListProcInfo = 0x00000FF0,
   uppMusicDerivedMIDISendProcInfo = 0x000003F0,
   uppMusicDerivedSetKnobProcInfo = 0x000FFFF0,
   uppMusicDerivedSetPartProcInfo = 0x00000FF0,
   uppMusicDerivedSetInstrumentProcInfo = 0x00000FF0,
   uppMusicDerivedSetPartInstrumentNumberProcInfo = 0x00000FF0,
   uppMusicDerivedSetMIDIProcInfo = 0x00003FF0,
   uppMusicDerivedStorePartInstrumentProcInfo = 0x00003FF0
};

#endif /* __MUSICCOMPONENT_K__ */