beat

Arrange audio samples into something bigger
git clone https://git.ce9e.org/beat.git

commit
9fe6033d924cf05dd812a5bac9171a273b5a9795
parent
6528fd52d082e9baa4ab9b54da385dbf5e53b86a
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2019-12-17 14:40
move BPM -> FPB conversion into C

Diffstat

M Makefile 3 +--
M beat.c 4 ++--

2 files changed, 3 insertions, 4 deletions


diff --git a/Makefile b/Makefile

@@ -1,9 +1,8 @@
    1     1 BPM = 110
    2     2 SAMPLERATE = 44100
    3    -1 FPB = $(shell echo $(SAMPLERATE) \* 60 / $(BPM) | bc)
    4     3 
    5     4 build/beat.flac: Makefile beat src/bumm.flac src/tack.flac
    6    -1 	./beat $@ $(SAMPLERATE) $$(($(FPB) / 2)) 8 2 0 src/bumm.flac 2 src/tack.flac 3 src/bumm.flac 4 src/bumm.flac 6 src/tack.flac
   -1     5 	./beat $@ $(SAMPLERATE) $$(($(BPM) * 2)) 8 2 0 src/bumm.flac 2 src/tack.flac 3 src/bumm.flac 4 src/bumm.flac 6 src/tack.flac
    7     6 
    8     7 beat: beat.c Makefile
    9     8 	gcc -lm -lsndfile $< -o $@

diff --git a/beat.c b/beat.c

@@ -53,14 +53,14 @@ void add_file_at_beat(const char *path, int beat, struct context ctx) {
   53    53 
   54    54 int main(int argc, char **argv) {
   55    55     if (argc < 6 || argc % 2 != 0) {
   56    -1         printf("Usage: beat OUTFILE SAMPLERATE FRAMES_PER_BEAT BEATS TRACKS BEAT INFILE [BEAT INFILE…]\n");
   -1    56         printf("Usage: beat OUTFILE SAMPLERATE BPM BEATS TRACKS BEAT INFILE [BEAT INFILE…]\n");
   57    57         exit(1);
   58    58     }
   59    59 
   60    60     struct context ctx;
   61    61 
   62    62     ctx.samplerate = atoi(argv[2]);
   63    -1     ctx.frames_per_beat = atoi(argv[3]);
   -1    63     ctx.frames_per_beat = ctx.samplerate * 60 / atoi(argv[3]);
   64    64     ctx.frames = atoi(argv[4]) * ctx.frames_per_beat;
   65    65     ctx.factor = 1 / sqrt(atoi(argv[5]));
   66    66