SampleCellInterface.h
3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*============================================================================
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