From b0c8881466f3d6d8ce713574a8137539b665db66 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Fri, 14 May 2010 17:44:24 +0200 Subject: [PATCH] Corretta installazione aggiungendo anche gli header. --- Makefile | 3 +++ main.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++--------- simple_audio.c | 6 ++++++ simple_audio.h | 3 +++ 4 files changed, 64 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 401bba4..1b49d7f 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ CC=cc C_SOURCE=simple_audio.c SHARED_LIB=libsimple_audio.so +HEADER_FILE=simple_audio.h all: libsimple_audio.so @@ -15,6 +16,8 @@ clean: install: install -m 755 $(SHARED_LIB) /usr/lib + install -m 755 $(HEADER_FILE) /usr/include uninstall: rm -rf /usr/lib/$(SHARED_LIB) + rm -rf /usr/include/$(HEADER_FILE) diff --git a/main.c b/main.c index 7c5705b..97a5c48 100644 --- a/main.c +++ b/main.c @@ -1,10 +1,11 @@ -#include "simple_audio.h" +#include #include #include int main(int argc, char** argv) { - + // Definiamo lo strumento sine che crea una semplice + // onda sinusoidale sa_instrument sine; sine.fs = (sa_fourier_series*) malloc(sizeof(sa_fourier_series)); sine.fs->cos_len = 0; @@ -13,6 +14,8 @@ int main(int argc, char** argv) { sine.fs->sin_values[0] = 1.0; sine.fs->a_0 = 0; + // Questo non assomiglia per nulla ad un organo, ma questo + // genere di tentativi ci piace. sa_instrument organ; int j; organ.fs = (sa_fourier_series*) malloc(sizeof(sa_fourier_series)); @@ -27,18 +30,58 @@ int main(int argc, char** argv) { organ.fs->sin_values[j] = 1.0 / (j+1) / 3.1415926; } + // Creo una nuova traccia stereo sa_track* track = sa_track_new(2); - - sample* ss = sa_note(organ, "A3", 44100); - sa_track_append(track, ss, 44100, 0); - sa_track_append(track, ss, 44100, 1); + int beat = 6500; + sample* ss; + + // Ci aggiungo un LA di un secondo + ss = sa_silence(beat); + sa_track_append (track, ss, beat, 0); + sa_track_append (track, ss, beat, 1); + for(j = 0; j< 3; j++ ) { + ss = sa_note(organ, "A3", beat * 0.9); + sa_track_append(track, ss, beat * 0.9, 0); + sa_track_append(track, ss, beat * 0.9, 1); + ss = sa_silence(0.1 * beat); + sa_track_append(track, ss, beat * 0.1, 0); + sa_track_append(track, ss, beat * 0.1, 1); + } + + ss = sa_note(organ, "F3", beat * 7.5); + sa_track_append(track, ss, beat * 7.5, 0); + sa_track_append(track, ss, beat * 7.5, 1); + ss = sa_silence(0.5 * beat); + sa_track_append(track, ss, beat * 0.5, 0); + sa_track_append(track, ss, beat * 0.5, 1); + + ss = sa_silence(beat); + sa_track_append (track, ss, beat, 0); + sa_track_append (track, ss, beat, 1); - ss = sa_note(organ, "B3", 44100); - sa_track_append(track, ss, 44100, 0); - sa_track_append(track, ss, 44100, 1); +for(j = 0; j< 3; j++ ) { + ss = sa_note(organ, "G3", beat * 0.9); + sa_track_append(track, ss, beat * 0.9, 0); + sa_track_append(track, ss, beat * 0.9, 1); + ss = sa_silence(0.1 * beat); + sa_track_append(track, ss, beat * 0.1, 0); + sa_track_append(track, ss, beat * 0.1, 1); + } + + ss = sa_note(organ, "E3", beat * 7.5); + sa_track_append(track, ss, beat * 7.5, 0); + sa_track_append(track, ss, beat * 7.5, 1); + ss = sa_silence(0.5 * beat); + sa_track_append(track, ss, beat * 0.5, 0); + sa_track_append(track, ss, beat * 0.5, 1); + + + // E salviamo su file sa_track_write(track, "prova.cdr"); + + sa_track_free(track); return 0; } diff --git a/simple_audio.c b/simple_audio.c index 3555d51..e860337 100644 --- a/simple_audio.c +++ b/simple_audio.c @@ -139,6 +139,12 @@ sample* sa_note(sa_instrument instrument, char* note, int len) { return s; } +sample* sa_silence(int len) { + sample* s = (sample*) malloc(sizeof(sample) * len); + memset(s, 0, len * sizeof(sample)); + return s; +} + sample sa_swap_bytes(sample s) { sample_b buf; unsigned char temp; diff --git a/simple_audio.h b/simple_audio.h index 83a7b15..11c4fb4 100644 --- a/simple_audio.h +++ b/simple_audio.h @@ -78,6 +78,9 @@ sample sa_double_to_sample(double); // nota scelta sample* sa_note(sa_instrument instrument, char* note, int len); +// Il silenzio :) +sample* sa_silence(int len); + // Scrive la traccia su file int sa_track_write(sa_track* t, char* filename); -- 2.1.4