shithub: neindaw

ref: 8291e90f0700652c6f3a3dce408244a67600ad46
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;
		}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;

int i36(uchar c);
float note2freq(int octave, uchar note);
int pathopen(char *path, char *fmt, ...);