diff --git a/SoundBrotching/.gitignore b/SoundBrotching/.gitignore index 70d02e9..edf216e 100644 --- a/SoundBrotching/.gitignore +++ b/SoundBrotching/.gitignore @@ -9,9 +9,9 @@ text2wav wav2text text2ao -essai panoramix genwaves soundbrotch +essai diff --git a/SoundBrotching/README.md b/SoundBrotching/README.md index 69c1aeb..4de3d87 100644 --- a/SoundBrotching/README.md +++ b/SoundBrotching/README.md @@ -1,6 +1,6 @@ # SoundBrotching -Stay tuned, film at 11. +Stay tuned, film at 440. ## Cheat Code @@ -10,9 +10,9 @@ de ce sous-projet fortranique sont ecrits en C, pour un accès facile à des bibliothèques tierces comme `libsndfile` ou `libao`, composants essentiels du SoundBrotching. -## Serious game +## Not so serious game -Quelques exemples simple, mais bruyants... +Quelques exemples simple, mais bruyants... `runme.sh` ### genwaves diff --git a/SoundBrotching/c-tools/support.c b/SoundBrotching/c-tools/support.c index 5abefce..73036cd 100644 --- a/SoundBrotching/c-tools/support.c +++ b/SoundBrotching/c-tools/support.c @@ -24,7 +24,17 @@ return 0; /* --------------------------------------------------------------- */ void print_version(char *msg) { -fprintf(stderr, "=== %s compiled %s, %s\n", \ +fprintf(stderr, "=== %s, support compiled %s, %s\n", \ msg, __DATE__, __TIME__); } /* --------------------------------------------------------------- */ +int check_textfile_validity(char *filename, int what) +{ + +#if DEBUG_LEVEL +fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, filename, what); +#endif + +return -1; +} +/* --------------------------------------------------------------- */ diff --git a/SoundBrotching/c-tools/support.h b/SoundBrotching/c-tools/support.h index 1c8b568..5e771b9 100644 --- a/SoundBrotching/c-tools/support.h +++ b/SoundBrotching/c-tools/support.h @@ -10,4 +10,6 @@ int display_sf_info(SF_INFO *psf, char *text); void print_version(char *title); +int check_textfile_validity(char *filename, int what); + /* --------------------------------------------------------- */ diff --git a/SoundBrotching/c-tools/text2wav.c b/SoundBrotching/c-tools/text2wav.c index 34508ea..cc021a9 100644 --- a/SoundBrotching/c-tools/text2wav.c +++ b/SoundBrotching/c-tools/text2wav.c @@ -1,5 +1,5 @@ /* - * TEXT TO WAV + * TEXT TO WAV - a klugeware from tTh 2023 */ #include @@ -27,7 +27,7 @@ int left, right; int nb_lus, idx; #if DEBUG_LEVEL -fprintf(stderr, ">>> %s ( '%s' )\n", __func__, outf); +fprintf(stderr, ">>> %s ( '%s' %d %d )\n", __func__, outf, sr, format); #endif if (format) { @@ -78,11 +78,16 @@ while (2==fscanf(input, "%d %d", &left, &right)) { sf_write_short(sndf, buffer, idx); sf_close(sndf); -fprintf(stderr, "%s: %d buffers written\n", __func__, nb_lus); +free(buffer); + +fprintf(stderr, "%s: %d samples written\n", __func__, nb_lus); return 0; } /* --------------------------------------------------------------- */ +/* + * this is a preview software, so no args parsiong yet... + */ int main(int argc, char *argv[]) { int foo; diff --git a/SoundBrotching/c-tools/wav2text.c b/SoundBrotching/c-tools/wav2text.c index 3ba0204..1ed2377 100644 --- a/SoundBrotching/c-tools/wav2text.c +++ b/SoundBrotching/c-tools/wav2text.c @@ -59,10 +59,7 @@ if ( NULL == (samples = malloc(BUFFER_SIZE*sizeof(short))) ) abort(); } -while ( (lu=sf_read_short(sndf, samples, BUFFER_SIZE)) > 0 ) - { - // fprintf(stderr, " LU = %5u\n", lu); - +while ( (lu=sf_read_short(sndf, samples, BUFFER_SIZE)) > 0 ) { for (foo=0; foo ", F9.3, " Hz")') n, freq + call sinw_burst2i(6, 44100, freq, freq, 0.9) + call silence_burst2i(2900) end do end program diff --git a/SoundBrotching/runme.sh b/SoundBrotching/runme.sh new file mode 100755 index 0000000..2324c7b --- /dev/null +++ b/SoundBrotching/runme.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +set -e # trap on error + +DATAFILE="essai.text" +OUTWAV="essai.wav" +make essai + +./essai | tee $DATAFILE | c-tools/text2wav $OUTWAV + +sndfile-spectrogram \ + --min-freq=30 --max-freq=2000 \ + --hann \ + $OUTWAV \ + 1200 600 \ + spectrogram.png diff --git a/SoundBrotching/soundbrotch.f90 b/SoundBrotching/soundbrotch.f90 index 1b50f36..93196ab 100644 --- a/SoundBrotching/soundbrotch.f90 +++ b/SoundBrotching/soundbrotch.f90 @@ -11,16 +11,14 @@ module soundbrotch integer, private :: samplerate = 48000 real, private :: diapason = 440.0 - contains +contains ! --------------------------------------------------------- subroutine soundbrotch_version () - write(0, '(1X,A)') "--- this is soundbrotch version alpha 666" + write(0, '(1X,A)') "--- this is soundbrotch version alpha 667" write(0, *) "--- samplerate", samplerate write(0, *) "--- diapason ", diapason end subroutine ! --------------------------------------------------------- - ! --------------------------------------------------------- - ! --------------------------------------------------------- ! premier essai, le prototype peut changer ! @@ -33,8 +31,9 @@ module soundbrotch integer :: idx, left, right real :: coef + ! XXX temporary dirty hack if (dst .NE. 6) then - STOP ' OUPS!' + STOP ' OUPS, NOT ON STDOUT!' endif coef = (3.141592654 * 2.0) / real(samplerate)