jacqueline
8f4e1ece75
Some minor cleanup, docs, assertions
8 months ago
jacqueline
f253d2ee75
Timeout when writing output samples throughout the audio pipeline
...
This allows the audio pipeline to remain responsive even when the drain
buffer has completely filled. This in turn means that you now see the
track info in the 'now playing' screen change if the current track
changes whilst you are paused.
Since I was fucking around a lot in the audio processor anyway, I also
added mono->stereo expansion so that playing mono tracks on Bluetooth no
longer destroys your ears.
8 months ago
jacqueline
f84474d94d
Introduce a PcmBuffer abstraction for handling source draining
11 months ago
jacqueline
265049c519
Count samples going in and out of the drain buffer
...
This is a more accurate way of knowing which track is playing when, and
also simplifies a lot of fragile logic in audio_fsm
12 months ago
jacqueline
b242ba9986
Improve decoder's interface to accept streams
12 months ago
jacqueline
26eb580043
move driver includes into a subdir as well
12 months ago
jacqueline
7d7f7755d1
start moving include files into subdirs
12 months ago
jacqueline
1573a8c4cd
WIP merge cyclically dependent components into one big component
12 months ago
jacqueline
a231fd1c8a
Replace cpp::span shim with std::span
12 months ago
jacqueline
239e6d8950
bump esp-idf to 5.2.1
1 year ago
jacqueline
4cec85af2d
implement handling of stream/playback ending
1 year ago
jacqueline
078b77d0f7
pass stream start/update/end events through the whole pipeline
1 year ago
jacqueline
175bfc4e3e
WIP rewrie audio pipeline+fsm guts for more reliability
1 year ago
jacqueline
d41f9f7033
Use drflac instead of miniflac
...
This one is fast as hell! Does seeking really good too. Thank u Doctor
Flac.
1 year ago
jacqueline
f2df12836f
tweak pipeline buffers rather than i2s dma buffer
...
this maintains the bluetooth changes to buffer sizes, but keeps the most
important i2s buffer the same size
1 year ago
jacqueline
b6d16a20a4
fix issues with leftover bytes in audio converter
1 year ago
Robin Howard
18d90051c9
Annotates the kTag with maybe_unused; they're only used for logging.
2 years ago
jacqueline
8608f9367f
Tune buffer sizes and locations for I2S
2 years ago
jacqueline
cbd99b2134
Increase sample buffer sizes
2 years ago
jacqueline
0032896251
Move UI task to priority 0 during playback
...
Also other misc task cleanup
2 years ago
jacqueline
485e9adfce
Performance tweaks for smoother tunes
...
- Pin the decoder task to APP_CORE to reduce context switches
- Increase sample buffer sizes
2 years ago
jacqueline
f3c5eec025
Rename the main audio tasks to be more sensible
2 years ago
jacqueline
c635d5011c
Put more audio pipeline wiring in control of the audio fsm
2 years ago
jacqueline
4e27de21e4
clean up a bunch of obselete audio code
2 years ago
jacqueline
9ddaca4fcb
remove unused dithering stuff
2 years ago
jacqueline
958160aa54
Use the libspeexdsp resampler
...
AFAICT it runs a little slower? but it's fixed point, and has much
better understood audio characteristics.
2 years ago
jacqueline
d8fc77101d
Give codecs complete control of their input files
2 years ago
jacqueline
93ccf11fc5
Investigate and improve core pinning for resampler
2 years ago
jacqueline
6c99f9f2fe
Fix resampler issue, do a little performance tuning
2 years ago
jacqueline
c38754401b
Downscaling working!
2 years ago
jacqueline
a66c342806
Resampling *basically* working? Just cleanup and buffering issues
2 years ago
jacqueline
4118d880c3
Fix dangle build issues, do some tweaks to investigate performance
2 years ago
jacqueline
60f7677132
Do our own resampling
2 years ago
jacqueline
31f6123b7b
Tweak buffer size and placement
2 years ago
jacqueline
3511852f39
Add very limited resampling (it's slow as shit)
2 years ago