done for gur day, removed markov stuff, started on Grain struct
parent
141636d742
commit
89f385011c
5
ampler.c
5
ampler.c
|
@ -3,7 +3,6 @@
|
||||||
#include "ampler.h"
|
#include "ampler.h"
|
||||||
|
|
||||||
#include "random.c"
|
#include "random.c"
|
||||||
#include "markov.c"
|
|
||||||
#include "audio.c"
|
#include "audio.c"
|
||||||
#include "draw.c"
|
#include "draw.c"
|
||||||
|
|
||||||
|
@ -42,10 +41,10 @@ Ampler_state *init() {
|
||||||
puts(SDL_GetError());
|
puts(SDL_GetError());
|
||||||
|
|
||||||
// TODO: iterate a directory to load samples
|
// TODO: iterate a directory to load samples
|
||||||
load_sample(state, "./mix.wav");
|
//load_sample(state, "./mix.wav");
|
||||||
//load_sample(state, "./haunted.wav");
|
//load_sample(state, "./haunted.wav");
|
||||||
//load_sample(state, "./loop2.wav");
|
//load_sample(state, "./loop2.wav");
|
||||||
//load_sample(state, "./loop.wav");
|
load_sample(state, "./loop.wav");
|
||||||
//load_sample(state, "./chord.wav");
|
//load_sample(state, "./chord.wav");
|
||||||
|
|
||||||
puts("init.");
|
puts("init.");
|
||||||
|
|
33
ampler.h
33
ampler.h
|
@ -38,8 +38,12 @@ for ; N##_i < arraylen(ARRAY); N##_i += 1, N = &((ARRAY)[N##_i]) do
|
||||||
#define MIN(a, b) ((a) < (b) ? (a) : (b))
|
#define MIN(a, b) ((a) < (b) ? (a) : (b))
|
||||||
|
|
||||||
#define SAMPLE_RATE (44100)
|
#define SAMPLE_RATE (44100)
|
||||||
#define CHANNELS (2)
|
#define CHANNELS (1)
|
||||||
#define FRAME_SAMPLES (SAMPLE_RATE / 60)
|
#define FRAME_SAMPLES (SAMPLE_RATE / 60)
|
||||||
|
#define GRAIN_SAMPLES (SAMPLE_RATE / 36)
|
||||||
|
|
||||||
|
#define GRID_WIDTH (36)
|
||||||
|
#define GRID_HEIGHT (36)
|
||||||
|
|
||||||
typedef struct Sound_src Sound_src;
|
typedef struct Sound_src Sound_src;
|
||||||
struct Sound_src {
|
struct Sound_src {
|
||||||
|
@ -54,19 +58,21 @@ struct Sound_src {
|
||||||
enum { SND_FREE = 0, SND_STOPPED, SND_PLAYING, SND_LOOPING, } state;
|
enum { SND_FREE = 0, SND_STOPPED, SND_PLAYING, SND_LOOPING, } state;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct Grain Grain;
|
||||||
|
struct Grain {
|
||||||
|
s8 samples[GRAIN_SAMPLES];
|
||||||
|
// not sure what else to store here?
|
||||||
|
// maybe file origin?
|
||||||
|
// speed multiplier?
|
||||||
|
// ending?
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct Udp_msg Udp_msg;
|
typedef struct Udp_msg Udp_msg;
|
||||||
struct Udp_msg {
|
struct Udp_msg {
|
||||||
s8 text[32]; // includes null terminator
|
s8 text[32]; // includes null terminator
|
||||||
enum { MSG_FREE = 0, MSG_TRIGGER, } state;
|
enum { MSG_FREE = 0, MSG_TRIGGER, } state;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct Markov_4 Markov_4;
|
|
||||||
struct Markov_4 {
|
|
||||||
u8 start;
|
|
||||||
u8 chain[256][256];
|
|
||||||
u8 lens[256];
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct Ampler_state Ampler_state;
|
typedef struct Ampler_state Ampler_state;
|
||||||
struct Ampler_state {
|
struct Ampler_state {
|
||||||
u32 size; // in bytes, off this struct
|
u32 size; // in bytes, off this struct
|
||||||
|
@ -77,8 +83,7 @@ struct Ampler_state {
|
||||||
Udp_msg messages[64];
|
Udp_msg messages[64];
|
||||||
s8 frame_mix[CHANNELS][FRAME_SAMPLES];
|
s8 frame_mix[CHANNELS][FRAME_SAMPLES];
|
||||||
s8 frame_rec[CHANNELS][FRAME_SAMPLES];
|
s8 frame_rec[CHANNELS][FRAME_SAMPLES];
|
||||||
|
Grain grains[GRID_WIDTH][GRID_HEIGHT];
|
||||||
Markov_4 markov;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -86,4 +91,12 @@ void udp_init(Ampler_state *);
|
||||||
void udp_frame(Ampler_state *);
|
void udp_frame(Ampler_state *);
|
||||||
void udp_quit(Ampler_state *);
|
void udp_quit(Ampler_state *);
|
||||||
|
|
||||||
|
/*
|
||||||
|
typedef struct Markov_4 Markov_4;
|
||||||
|
struct Markov_4 {
|
||||||
|
u8 start;
|
||||||
|
u8 chain[256][256];
|
||||||
|
u8 lens[256];
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue