summaryrefslogtreecommitdiff
path: root/shared-module/audioio
AgeCommit message (Collapse)Author
2019-07-25audiocore: Factor from audioioJeff Epler
When nrf pwm audio is introduced, it will be called `audiopwmio`. To enable code sharing with the existing (dac-based) `audioio`, factor the sample and mixer types to `audiocore`. INCOMPATIBLE CHANGE: Now, `Mixer`, `RawSample` and `WaveFile` must be imported from `audiocore`, not `audioio`.
2019-06-04[shared-module/audioio/WaveFile.h] Change sample_rate from uint16_t to ↵Carlos
uint32_t so it matches the sample rate type parsed from the WAV header format, fix #1922
2018-10-31add channels and bits_per_sample to audioio.WaveFilecaternuson
2018-10-09Rename stop to stop_voice in case we want stop to stop everything later.Scott Shawcroft
2018-10-05Fix M0 mathScott Shawcroft
2018-10-05Fix voice ending in the middle of a buffer.Scott Shawcroft
2018-10-05Introduce audioio.Mixer which can mix multiple audio samplesScott Shawcroft
to produce a single sample. Only works with 16 bit samples on the M4. Fixes #987
2018-08-16Compress all translated strings with Huffman coding.Scott Shawcroft
This saves code space in builds which use link-time optimization. The optimization drops the untranslated strings and replaces them with a compressed_string_t struct. It can then be decompressed to a c string. Builds without LTO work as well but include both untranslated strings and compressed strings. This work could be expanded to include QSTRs and loaded strings if a compress method is added to C. Its tracked in #531.
2018-08-07Support internationalisation.Scott Shawcroft
2018-06-14Fix playing audio from SD cardDan Halbert
2018-04-12Add audio output support!Scott Shawcroft
This evolves the API from 2.x (and breaks it). Playback devices are now separate from the samples themselves. This allows for greater playback flexibility. Two sample sources are audioio.RawSample and audioio.WaveFile. They can both be mono or stereo. They can be output to audioio.AudioOut or audiobusio.I2SOut. Internally, the dma tracking has changed from a TC counting block transfers to an interrupt generated by the block event sent to the EVSYS. This reduces the overhead of each DMA transfer so multiple can occure without using up TCs. Fixes #652. Fixes #522. Huge progress on #263