From 384125b8cc2db733ea271bc21a6d8e12c4c4c017 Mon Sep 17 00:00:00 2001 From: tekkac Date: Mon, 8 Apr 2024 16:21:11 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=94=A8=20update=20to=20wave=20local?= =?UTF-8?q?=20script?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/data_to_wave.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/data_to_wave.py b/scripts/data_to_wave.py index bc8ad44..fcec257 100644 --- a/scripts/data_to_wave.py +++ b/scripts/data_to_wave.py @@ -10,10 +10,12 @@ with open(input_file) as f: data = f.read().splitlines() -# plt.plot("".join(data[5:-3])) -# plt.show() +i = 0 +while i < len(data): + if data[i].startswith('RIFF'): break + i+=1 -data_bytes = "".join(data[5:-3]) +data_bytes = "".join(data[i:-3]) data_bytes = data_bytes.encode('utf-8') data_bytes = data_bytes.decode('unicode-escape') data_bytes = data_bytes.encode('ISO-8859-1') From ad2b479d2135eca8aa364ee10d7dd4dbb5460668 Mon Sep 17 00:00:00 2001 From: tekkac Date: Mon, 8 Apr 2024 16:28:57 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=93=9D=20update=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 541abfd..09d957a 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,25 @@ ## About Generate valid WAV files in Cairo +## Features + - [x] Output WAV file + - [x] Handle bit-depths (4, 8, 16, 32) + - [ ] Handle multiple/stereo channels + - [x] Generate square wave form + - [x] Generate sawtooth wave forms + - [x] Generate triangle wave forms + - [ ] Generate sine wave forms + - [ ] Generate an instrument (see [Koji](https://github.com/cienicera/Koji)) + - [x] Play [Koji](https://github.com/cienicera/Koji) notes + - [ ] Play [Koji midi tracks](https://github.com/cienicera/Koji) + - [ ] Generate an 4/8-bit low sample rate sound pack (kick, bass, snare, hi-hat) + - [X] Play short melodies + + ## Local testing: ```bash -scarb test -f get_notes > tmp/test; -python scripts/data_to_wave.py tmp/test; +scarb test -f get_notes > tmp/test +python scripts/data_to_wave.py tmp/test mplayer tmp/test.wav ``` @@ -17,7 +32,6 @@ python scripts/get_notes.py mplayer tmp/out.wav ``` - ## Resources - [WAVE PCM File format](http://soundfile.sapp.org/doc/WaveFormat/) - Unix: `man sox`, `ffprobe file.wave`