Tom Kirchner
faa62e0c60
Add bitrate info
3 months ago
jacqueline
d3c15bf070
spello
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
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
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
77145e56f4
basic working flac and mp3 seeking
...
flac impl is fairly slow as it doesn't use the seek tables; for some
reason miniflac seems to get *really* upset if you seek the stream.
1 year ago
ailurux
f54347794f
WIP: Flac not working-- coming back to this later
1 year ago
ailurux
665679b885
WIP: seeking in lua example
1 year ago
ailurux
a49d754da6
Seeking working with hardcoded event, wav only
1 year ago
ailurux
62f6179abe
Added offset for track seeking, wav impl. only rn
1 year ago
jacqueline
2184b6c5f7
send a time=0 progress update after opening each file
...
this helps populate things like the now playing screen when a file is
opened without unpausing (e.g. when restoring a saved queue after boot)
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
200a43fad3
fix issues with some song info not appearing
1 year ago
jacqueline
7c6eb2997c
Migrate 'now playing' screen to lua
1 year ago
jacqueline
b3b512f10e
Don't start readahead until parsing the stream's header is finished
...
...but also disable readahead for now anyway, since it's unstable
1 year ago
Robin Howard
18d90051c9
Annotates the kTag with maybe_unused; they're only used for logging.
2 years ago
jacqueline
bb91724b94
Codec memory tweaks
...
- Ensure mad and ogg structs are allocated internally
- Free old codec before making a new one
2 years ago
jacqueline
f09ba5ffd5
Use bindey for databinding instead of hand rolling ui updates
2 years ago
jacqueline
8608f9367f
Tune buffer sizes and locations for I2S
2 years ago
jacqueline
0802b4e528
Unpin decoder task
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
a4ba7350a7
Fix docs nits, avoid recalculating frame length
2 years ago
jacqueline
06283e0714
Fix issues with timing stereo streams
2 years ago
jacqueline
c37ccb9851
Reintroduce track timer, now relying more on codecs
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
6c3501dbcb
Flesh out opus decoder. it doesn't work! i hate opus.
2 years ago
jacqueline
93ccf11fc5
Investigate and improve core pinning for resampler
2 years ago
jacqueline
c38754401b
Downscaling working!
2 years ago
jacqueline
60f7677132
Do our own resampling
2 years ago
jacqueline
3511852f39
Add very limited resampling (it's slow as shit)
2 years ago
jacqueline
cdaa2ac97a
Add duration for flacs
2 years ago
jacqueline
485eed2890
use libtag duration where available
2 years ago
jacqueline
97bd3be892
clang-format
2 years ago
jacqueline
10120f9a92
ux fixes
2 years ago
jacqueline
b05db70c14
Fix premature end of track
2 years ago
jacqueline
9b1b401dcb
big cleanup of new encoder + stream buffer types
2 years ago
jacqueline
f94be3db2f
make event queue go faster
2 years ago
jacqueline
d8194135bb
Do time tracking without floats
2 years ago