jacqueline
175bfc4e3e
WIP rewrie audio pipeline+fsm guts for more reliability
2 years ago
jacqueline
1455288190
Restore the previous track position when booting
2 years ago
jacqueline
b2f0e6d3a4
Clear the drain buffer also when seeking
2 years ago
jacqueline
173b09b015
Clear the drain buffer when skipping between tracks
2 years ago
jacqueline
d41f9f7033
Use drflac instead of miniflac
...
This one is fast as hell! Does seeking really good too. Thank u Doctor
Flac.
2 years 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.
2 years ago
ailurux
f54347794f
WIP: Flac not working-- coming back to this later
2 years ago
jacqueline
28651fa7e1
Wait for the sink buffer to drain before stopping playback
2 years ago
jacqueline
29a246a733
Make the drain buffer very large, and move it into PSRAM
...
the i2s handler and streambuffer metadata are both still in iram for
good performance. otherwise, this seems to be enough to make gapless
playback work.
2 years ago
jacqueline
c035ed2b4d
Don't mark the current track as changed when falling off the end of the queue
2 years ago
ailurux
c60bb9ee42
Fix issue with seeking whilst paused
2 years ago
ailurux
665679b885
WIP: seeking in lua example
2 years ago
ailurux
a49d754da6
Seeking working with hardcoded event, wav only
2 years ago
ailurux
62f6179abe
Added offset for track seeking, wav impl. only rn
2 years ago
jacqueline
786546653a
include repeat, replay, and shuffle in persisted queue info
2 years ago
jacqueline
cb379f4bc3
Cache pending nvs writes in memory
...
Includes refactoring nvs settings to be a bit less duplicated
2 years ago
jacqueline
a37b517356
Improve handing of tracks with missing titles
2 years ago
jacqueline
cb0c42060b
more i2s/bt drain buffer size tweaks
2 years ago
jacqueline
26df5c4a7f
Remember per-device bluetooth volume
2 years ago
ailurux
527374c72e
Don't hold lock on notifyChanged
2 years ago
ailurux
9512bd97bb
Add buttons for shuffle + repeat track
2 years ago
jacqueline
c1b03c151e
put opus' allocations into internal ram
...
it's a pretty chonky codec, but this seems like the best way to tame its
performance.
2 years ago
jacqueline
0bb12912bc
Implement basic volume control for bt outputs
2 years ago
jacqueline
99c56641e9
fix various of bluetooth issues
...
connecting and disconnecting is a bit more consistent now!
2 years 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)
2 years 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
2 years ago
jacqueline
e073309907
Properly persist bluetooth mode changes
2 years ago
jacqueline
299f3cc48f
Preserve the queue when going into standby
2 years ago
jacqueline
dad159dc3c
Use a single pool of bg workers instead of separate tasks per use case
...
Also: bump the number of workers tasks up to 3 from 2!
This makes bg db updates + playback work :)
2 years ago
Robin Howard
429abd1237
Fix bug where calling TrackQueue's next() repeatedly would increase the position despite running off the end of the queue.
2 years ago
jacqueline
2d7f9fc775
calculate length for CBR mp3 files
2 years ago
jacqueline
200a43fad3
fix issues with some song info not appearing
2 years ago
jacqueline
71b4673039
all screens basically working, but bluetooth is rough
2 years ago
jacqueline
7cdcd44e0c
Begin migration of remaining screens to Lua
2 years ago
ailurux
0e04eb918e
wav-codec ( #13 )
...
here is a wav decoder, enjoy!
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/13
Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
Co-authored-by: ailurux <ailuruxx@gmail.com>
Co-committed-by: ailurux <ailuruxx@gmail.com>
2 years ago
jacqueline
34cae4e6e4
add an alerts module for lua, and implement a volume indicator with it
2 years ago
jacqueline
938ba62f57
refactor handling of volume steps; improve controls
2 years ago
jacqueline
b6d16a20a4
fix issues with leftover bytes in audio converter
2 years ago
jacqueline
414f139ae3
Audio fsm usability tweaks
...
- persist the current volume when the screen locks
- pause playback if headphones are removed
2 years ago
jacqueline
ca5d7b867c
Add shuffle and repeat options for the playback queue
2 years ago
jacqueline
3f7f199cb9
Remove pre-iterator concepts
...
- No more IndexRecord/Result/dbGetPage nonsense
- Queue is just track ids
- i am so tired and have so much to do
2 years ago
jacqueline
009f69c929
Add basic track queue save/load support
...
Not wired up yet; I need to do a bunch of cleanup before i wire it in
2 years ago
jacqueline
4f5422e906
Rewrite the track queue to work directly with database iterators
2 years ago
jacqueline
7c6eb2997c
Migrate 'now playing' screen to lua
2 years ago
ailurux
5afdb89f9a
Remove delay from read ahead
2 years 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
2 years ago
jacqueline
19f0675b44
Make readahead a bit more robust for codecs with different io speeds
2 years ago
jacqueline
75a8f836d5
Wait for background readahead to finish before deleting its buffer
2 years ago
jacqueline
499d5a942f
Add a wrapper codec source that does readahead
2 years ago
jacqueline
d36fe9be6b
Use atomics for new file notification instead of a semaphore
2 years ago