LMMS
Loading...
Searching...
No Matches
sop.h File Reference
#include <stdint.h>
#include "player.h"

Go to the source code of this file.

Classes

class  Cad262Driver
class  CsopPlayer
struct  CsopPlayer::sop_inst
struct  CsopPlayer::sop_trk

Macros

#define BD   6
#define SD   7
#define TOM   8
#define CYMB   9
#define HIHAT   10
#define MAX_VOLUME   0x7f
#define LOG2_VOLUME   7 /* log2( MAX_VOLUME) */
#define MID_C   60 /* MIDI standard mid C */
#define SOP_TOM_PITCH   36 /* best frequency, in range of 0 to 95 */
#define TOM_TO_SD   7 /* 7 half-tones between voice 7 & 8 */
#define SOP_SD_PITCH   (SOP_TOM_PITCH + TOM_TO_SD)
#define NB_NOTES   96 /* 8 octave of 12 notes */
#define OCTAVE   12 /* half-tone by octave */
#define NB_STEP_PITCH   32 /* 32 steps between two half-tones */
#define LOG_NB_STEP_PITCH   5 /* LOG2( NB_STEP_PITCH ) */
#define NB_TABLE_DEMI_TON   OCTAVE
#define TABLE_SIZE   (NB_STEP_PITCH * NB_TABLE_DEMI_TON)
#define maxVoices   20
#define YMB_SIZE   80
#define SOP_HEAD_SIZE   76
#define SOP_SIGN_SIZE   7 /* "sopepos" signature */
#define SOP_FILENAME   13 /* size of file name tag */
#define SOP_TITLE   31 /* size of title tag */
#define SOP_DEF_TEMPO   120 /* default tempo BPM */
#define SOP_COMMENT   13 /* size of comment tag */
#define SOP_INSTNAME   8 /* size of instrument file name tag */
#define SOP_LONGNAME   19 /* size of instrument long name tag */
#define SOP_INST2OP   11 /* size of 2OP instrument data */
#define SOP_INST4OP   22 /* size of 4OP instrument data */
#define SOP_MAX_INST   128 /* maximum number of instruments */
#define SOP_MAX_TRACK   20 /* maximum number of tracks */
#define SOP_MAX_VOL   127 /* maximum volume */
#define SOP_CHAN_NONE   0 /* unused channel */
#define SOP_CHAN_4OP   1 /* channel in 4OP mode */
#define SOP_CHAN_2OP   2 /* channel in 2OP mode */
#define SOP_INST_4OP   0 /* 4OP instrument */
#define SOP_INST_2OP   1 /* 2OP instrument */
#define SOP_INST_BD   6 /* Bass Drum */
#define SOP_INST_SD   7 /* Snare Drum */
#define SOP_INST_TT   8 /* Tom Tom */
#define SOP_INST_CY   9 /* Cymbal */
#define SOP_INST_HH   10 /* Hi-Hat */
#define SOP_INST_NONE   12 /* Unused instrument */
#define SOP_EVNT_SPEC   1 /* Special event */
#define SOP_EVNT_NOTE   2 /* Note event */
#define SOP_EVNT_TEMPO   3 /* Tempo event */
#define SOP_EVNT_VOL   4 /* Volume event */
#define SOP_EVNT_PITCH   5 /* Pitch event */
#define SOP_EVNT_INST   6 /* Instrument event */
#define SOP_EVNT_PAN   7 /* Panning event */
#define SOP_EVNT_MVOL   8 /* Master volume event */

Macro Definition Documentation

◆ BD

#define BD   6

◆ CYMB

#define CYMB   9

◆ HIHAT

#define HIHAT   10

◆ LOG2_VOLUME

#define LOG2_VOLUME   7 /* log2( MAX_VOLUME) */

◆ LOG_NB_STEP_PITCH

#define LOG_NB_STEP_PITCH   5 /* LOG2( NB_STEP_PITCH ) */

◆ MAX_VOLUME

#define MAX_VOLUME   0x7f

◆ maxVoices

#define maxVoices   20

◆ MID_C

#define MID_C   60 /* MIDI standard mid C */

◆ NB_NOTES

#define NB_NOTES   96 /* 8 octave of 12 notes */

◆ NB_STEP_PITCH

#define NB_STEP_PITCH   32 /* 32 steps between two half-tones */

◆ NB_TABLE_DEMI_TON

#define NB_TABLE_DEMI_TON   OCTAVE

◆ OCTAVE

#define OCTAVE   12 /* half-tone by octave */

◆ SD

#define SD   7

◆ SOP_CHAN_2OP

#define SOP_CHAN_2OP   2 /* channel in 2OP mode */

◆ SOP_CHAN_4OP

#define SOP_CHAN_4OP   1 /* channel in 4OP mode */

◆ SOP_CHAN_NONE

#define SOP_CHAN_NONE   0 /* unused channel */

◆ SOP_COMMENT

#define SOP_COMMENT   13 /* size of comment tag */

◆ SOP_DEF_TEMPO

#define SOP_DEF_TEMPO   120 /* default tempo BPM */

◆ SOP_EVNT_INST

#define SOP_EVNT_INST   6 /* Instrument event */

◆ SOP_EVNT_MVOL

#define SOP_EVNT_MVOL   8 /* Master volume event */

◆ SOP_EVNT_NOTE

#define SOP_EVNT_NOTE   2 /* Note event */

◆ SOP_EVNT_PAN

#define SOP_EVNT_PAN   7 /* Panning event */

◆ SOP_EVNT_PITCH

#define SOP_EVNT_PITCH   5 /* Pitch event */

◆ SOP_EVNT_SPEC

#define SOP_EVNT_SPEC   1 /* Special event */

◆ SOP_EVNT_TEMPO

#define SOP_EVNT_TEMPO   3 /* Tempo event */

◆ SOP_EVNT_VOL

#define SOP_EVNT_VOL   4 /* Volume event */

◆ SOP_FILENAME

#define SOP_FILENAME   13 /* size of file name tag */

◆ SOP_HEAD_SIZE

#define SOP_HEAD_SIZE   76

◆ SOP_INST2OP

#define SOP_INST2OP   11 /* size of 2OP instrument data */

◆ SOP_INST4OP

#define SOP_INST4OP   22 /* size of 4OP instrument data */

◆ SOP_INST_2OP

#define SOP_INST_2OP   1 /* 2OP instrument */

◆ SOP_INST_4OP

#define SOP_INST_4OP   0 /* 4OP instrument */

◆ SOP_INST_BD

#define SOP_INST_BD   6 /* Bass Drum */

◆ SOP_INST_CY

#define SOP_INST_CY   9 /* Cymbal */

◆ SOP_INST_HH

#define SOP_INST_HH   10 /* Hi-Hat */

◆ SOP_INST_NONE

#define SOP_INST_NONE   12 /* Unused instrument */

◆ SOP_INST_SD

#define SOP_INST_SD   7 /* Snare Drum */

◆ SOP_INST_TT

#define SOP_INST_TT   8 /* Tom Tom */

◆ SOP_INSTNAME

#define SOP_INSTNAME   8 /* size of instrument file name tag */

◆ SOP_LONGNAME

#define SOP_LONGNAME   19 /* size of instrument long name tag */

◆ SOP_MAX_INST

#define SOP_MAX_INST   128 /* maximum number of instruments */

◆ SOP_MAX_TRACK

#define SOP_MAX_TRACK   20 /* maximum number of tracks */

◆ SOP_MAX_VOL

#define SOP_MAX_VOL   127 /* maximum volume */

◆ SOP_SD_PITCH

#define SOP_SD_PITCH   (SOP_TOM_PITCH + TOM_TO_SD)

◆ SOP_SIGN_SIZE

#define SOP_SIGN_SIZE   7 /* "sopepos" signature */

◆ SOP_TITLE

#define SOP_TITLE   31 /* size of title tag */

◆ SOP_TOM_PITCH

#define SOP_TOM_PITCH   36 /* best frequency, in range of 0 to 95 */

◆ TABLE_SIZE

#define TABLE_SIZE   (NB_STEP_PITCH * NB_TABLE_DEMI_TON)

◆ TOM

#define TOM   8

◆ TOM_TO_SD

#define TOM_TO_SD   7 /* 7 half-tones between voice 7 & 8 */

◆ YMB_SIZE

#define YMB_SIZE   80