You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**WAV recording** - 16-bit mono PCM from I2S or ADC microphone
14
14
-**RTTTL ringtone support** - Full Ring Tone Text Transfer Language parser
15
15
-**Thread-safe** - Safe for concurrent access
@@ -78,9 +78,10 @@ player.start()
78
78
```
79
79
80
80
**Supported formats:**
81
-
-**Encoding**: PCM (8/16/24/32-bit)
81
+
-**Encoding**: PCM (8/16/24/32-bit), IMA ADPCM (4-bit)
82
82
-**Channels**: Mono or stereo
83
83
-**Sample rate**: Any rate (auto-upsampled to ≥8000 Hz)
84
+
-**Repeat**: Pass `repeat_count` to loop playback N times
84
85
85
86
### Playing RTTTL Ringtones
86
87
@@ -142,6 +143,20 @@ sudo apt install ffmpeg
142
143
143
144
Priority and volume controls apply conceptually on desktop, although the external player handles the actual output.
144
145
146
+
### ADPCM WAV Encoding
147
+
148
+
IMA ADPCM compresses 16-bit PCM to 4 bits per sample, roughly quartering WAV file size with minimal quality loss — ideal for storage-constrained devices.
149
+
150
+
`ffmpeg` can encode ADPCM (`-acodec adpcm_ima_wav`) but has two drawbacks: it prepends silence that lengthens the file, and it only supports the default 4-bit depth. MicroPythonOS currently decodes 4-bit IMA ADPCM only. For better encoding results than `ffmpeg`, use [adpcm-xq](https://github.com/dbry/adpcm-xq), which avoids the silence padding and additionally supports 2 and 3-bit ADPCM (still good quality, even smaller files). If there's demand for it, 2 and 3-bit ADPCM decoding support could be added to MicroPythonOS too.
0 commit comments