SampleCellInterface.h 3.5 KB
/*============================================================================
	SampleCellInterface
	
	Copyright C 1991,1992 Digidesign Inc.
	All rights reserved
	
	CONFIDENTIAL: This document contains confidential information. 
	Do not disclose any information contained in this documet to any
	third-party without the prior written consent of Digidesign Inc.
	
	Interface information and command constants for the SampleCell firmware.
	
	CHANGES:
	6/27/91	REC	Added kSCellDynachipNotResponding,kSCellReadDRAMValue,kSCellWRiteDRAMValue
	10/7/91 REC	Converted header into C++
	2/9/92	REC	Added prototypes for SendMIDIPacket MIDI write routine pointer
	3/30/92	REC 	Split out into SampleCellInterface.h and MIDICellDriverInterface.h
	5/16/92 REC 	Changed referenes from Dynachip to SoundChip
	
==============================================================================*/
#ifndef __SampleCellInterface__
#define __SampleCellInterface__

enum 
{
	kMinVelocityZoneNum = 0,
	kSCellINumVelocityZones = 3, // soft, medium, and loud per keygroup
	kSCellIINumVelocityZones = 6,
	

	kMinThresholdValue = 0,
	kMaxThresholdValue = 14,
	kZoneOffThresholdValue = 15,

        // how many midi velocity values each threshold value represents
	kMIDIVelocitiesPerThreshold = 8,

	kMinKeyGroupNum = 0,
	kSCellINumKeyGroups = 20,
	kSCellIINumKeyGroups = 60,
	kUnUsedKeyGroupFlag = 128,		// set HighNoteLimit to this
	
	kMinEnvelopeNum = 0,
	kSCellNumEnvelopes = 3,
	kMinEnvelopeValue = 0,
	kMaxEnvelopeValue = 99,

	kMinLFONum = 0,
	kSCellNumLFOs = 2,
	
	kMinRampGeneratorNum = 0,
	kSCellNumRampGenerators = 1,

	kMinModPathNum = 0,
	kSCellNumModPaths = 20,
	kNumModulationPaths = 20,
	kNoModSourceFlag = 18,
	kNoModDestinationFlag = 27,
	kMinModPathAmplitude = -99,
	kMaxModPathAmplitude = 99,

	kGateOff = 0,
	kGateOn = 1,
	
	kMinTrackingGeneratorNum = 0,
	kSCellINumTrackingGenerators = 1,
	kSCellIINumTrackingGenerators = 2,
	
	kSCellINumTrackPoints = 5,
	kSCellIINumTrackPoints = 9,
	
	kSCellMinTrackValue = 0,
	kSCellMaxTrackValue = 99,
	
	kSCellInstrument = 0,
	kSCellSound = 1,
	
	kPlayForwards = 0, // to set direction parameter in key zone record
	kPlayBackwards = 1,
			
	kMaxVolumeValue = 99,
	kMinVolumeValue = 0,
	
	kMaxAmplitudeValue = 99,
	kMinAmplitudeValue = 0,
	
	kPanCenter = 0,
	kPanLeft = -99,
	kPanRight = +99,
	
	kMinPriorityLevel = 0,
	kMaxPriorityLevel = 9,
	
	kLeftChannel = 1,
	kRightChannel = 2,
	
	kMuteOn = 1,
	kMuteOff = 0,
	
	kMaxFineTune = 126,
	kMinFineTune = 0,
	kZeroFineTune = 63,		// fine tune center
	
	kMaxFilterFrequency = 255,
	kMinFilterFrequency = 0,
	
	kModeOn = 1,	// modes of general parameters ie keytrack etc..
	kModeOff = 0,
	
	kMaxSampleRate = 50000,
	
	kMinLoopSize = 4,
	kMinSampleLength = 8,

	kNoChannelNum = -1,
	kSCellIMaxNumInstruments = 16,	// max num instruments on SCell I
	kSCellIMaxNumSounds = 16,	// max num sounds (single sample instruments) on SCell I


	kSCellIIMaxNumInstruments = 50,	// max num instruments on SCell II
	kSCellIIMaxNumSounds = 10,	// max num sounds (single sample instruments) on SCell II

	kSCellIMaxSampleNum = 1000,	// SCell I can hold 1000 samples
	kSCellIIMaxSampleNum = 1000,	// SCell II can hold 1000 samples
	kSCellZeroSampleNum = 0,	// sample number 0 is always the zero sample
	kSCellSineWaveSampleNum = 1,	// sample 1 is always a sine wave
	kSCellMinAllocatableSampleNum = 2,	// min real sample ie one we can load

	// Sample number of the one sample we use. The SampleCell editor doesn't use
	// this sample so we don't need to let it know we have allocated it...
	kSCellPlaybackSample = 1000
};

#endif