Corretta installazione aggiungendo anche gli header.

Leonardo [2010-05-14 15:44]
Corretta installazione aggiungendo anche gli header.
Filename
Makefile
main.c
simple_audio.c
simple_audio.h
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 <simple_audio.h>
 #include <stdio.h>
 #include <stdlib.h>

 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);
ViewGit