#include <nitro/snd.h>
typedef struct SNDInstData
{
u8 type;
u8 padding_;
struct SNDInstParam {
u16 wave[2];
u8 original_key;
u8 attack;
u8 decay;
u8 sustain;
u8 release;
u8 pan;
} param;
} SNDInstData;
type |
The instrument type |
wave |
The waveform data information array |
original_key |
The original key. 60 is center node. |
attack |
The envelope's attack. Takes values in the range of 0 to 127. The larger the value, the faster the rise. |
decay |
The envelope's decay. Takes values in the range of 0 to 127. The larger the value, the faster the attenuation. |
sustain |
The envelope's sustain. Takes values in the range of 0 to 127. The larger the value, the higher the sustained gain. |
release |
The envelope's release. Takes values in the range of 0 to 127. The larger the value, the faster the attenuation.
(However, when the value is SND_BANK_DISABLE_RELEASE(=255) , it will not release, even when the note is off.)) |
pan |
The pan. Takes values in the range of 0 (left) to 64 (center) to 127 (right). |
The instrument data structure. This structure stores the parameters for each instrument inside the bank data.
This structure can be obtained with the SND_ReadInstData function and updated with the SND_WriteInstData function.
The instrument type takes the following values:
TABLE: SNDInstType
Label | Description |
---|---|
SND_INST_PCM | PCM waveform data |
SND_INST_PSG | PSG rectangular wave |
SND_INST_NOISE | Noise |
SND_INST_DIRECTPCM | PCM waveform data (direct address specification) |
SND_INST_NULL | Dummy instrument (Does not sound) |
The waveform information array wave
holds information about the waveform data. The meaning of this data differs for each instrument type
.
TABLE: Waveform Information Array
Inst Type | wave[0] | wave[1] |
---|---|---|
SND_INST_PCM | Index number inside the Waveform Archive | Waveform Archive number inside the bank |
SND_INST_PSG | Duty ratio | (Not Used) |
SND_INST_NOISE | (Not Used) | (Not Used) |
SND_INST_DIRECTPCM | Lower 16 bits of the address of the SNDWaveData structure |
Upper 16 bits of the address of the SNDWaveData structure |
SND_INST_NULL | (Not Used) | (Not Used) |
SND_ReadInstData
, SND_WriteInstData
, SNDWaveData
2005/05/10 Added description of operations when release is 255.
2005/03/17 Added the SND_INST_NULL
instrument type.
2005/01/19 Added a link to SNDWaveData
.
2004/10/21 Fixed a typo in the required include file.
2004/07/20 Initial version.
CONFIDENTIAL