shithub: neindaw

ref: a6875be771d0b79f59abe6529231d294094b4a23
dir: /piper/piper.h/

View raw version
typedef struct Cmd Cmd;
typedef struct Synth Synth;

enum {
	CmdNote,
	CmdVol,
	CmdRaw,
};

struct Cmd {
	int type;
	union {
		struct {
			float freq;
			float dur;
			float vel;
		}note[3];
		char *raw;
		float vol;
	};
	int numnotes;
};

struct Synth {
	char *name;
	int (*cmd)(void *aux, Cmd *c);
	void *(*alloc)(char *path);
};

extern Synth ay_3_8910;
extern Synth kick_drum;
extern Synth piano;