jacqueline
175bfc4e3e
WIP rewrie audio pipeline+fsm guts for more reliability
1 year ago
jacqueline
1455288190
Restore the previous track position when booting
1 year ago
jacqueline
b2f0e6d3a4
Clear the drain buffer also when seeking
1 year ago
jacqueline
173b09b015
Clear the drain buffer when skipping between tracks
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
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
jacqueline
28651fa7e1
Wait for the sink buffer to drain before stopping playback
1 year 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.
1 year ago
jacqueline
c035ed2b4d
Don't mark the current track as changed when falling off the end of the queue
1 year ago
ailurux
c60bb9ee42
Fix issue with seeking whilst paused
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
786546653a
include repeat, replay, and shuffle in persisted queue info
1 year ago
jacqueline
cb379f4bc3
Cache pending nvs writes in memory
...
Includes refactoring nvs settings to be a bit less duplicated
1 year ago
jacqueline
a37b517356
Improve handing of tracks with missing titles
1 year ago
jacqueline
cb0c42060b
more i2s/bt drain buffer size tweaks
1 year ago
jacqueline
26df5c4a7f
Remember per-device bluetooth volume
1 year ago
ailurux
527374c72e
Don't hold lock on notifyChanged
1 year ago
ailurux
9512bd97bb
Add buttons for shuffle + repeat track
1 year 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.
1 year ago
jacqueline
0bb12912bc
Implement basic volume control for bt outputs
1 year ago
jacqueline
99c56641e9
fix various of bluetooth issues
...
connecting and disconnecting is a bit more consistent now!
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
e073309907
Properly persist bluetooth mode changes
1 year ago
jacqueline
299f3cc48f
Preserve the queue when going into standby
1 year 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 :)
1 year ago
Robin Howard
429abd1237
Fix bug where calling TrackQueue's next() repeatedly would increase the position despite running off the end of the queue.
1 year ago
jacqueline
2d7f9fc775
calculate length for CBR mp3 files
1 year ago
jacqueline
200a43fad3
fix issues with some song info not appearing
1 year ago
jacqueline
71b4673039
all screens basically working, but bluetooth is rough
1 year ago
jacqueline
7cdcd44e0c
Begin migration of remaining screens to Lua
1 year 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>
1 year ago
jacqueline
34cae4e6e4
add an alerts module for lua, and implement a volume indicator with it
1 year ago
jacqueline
938ba62f57
refactor handling of volume steps; improve controls
1 year ago
jacqueline
b6d16a20a4
fix issues with leftover bytes in audio converter
1 year ago
jacqueline
414f139ae3
Audio fsm usability tweaks
...
- persist the current volume when the screen locks
- pause playback if headphones are removed
1 year ago
jacqueline
ca5d7b867c
Add shuffle and repeat options for the playback queue
1 year 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
1 year 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
1 year ago
jacqueline
4f5422e906
Rewrite the track queue to work directly with database iterators
1 year ago
jacqueline
7c6eb2997c
Migrate 'now playing' screen to lua
1 year ago
ailurux
5afdb89f9a
Remove delay from read ahead
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
jacqueline
19f0675b44
Make readahead a bit more robust for codecs with different io speeds
1 year ago
jacqueline
75a8f836d5
Wait for background readahead to finish before deleting its buffer
1 year ago
jacqueline
499d5a942f
Add a wrapper codec source that does readahead
1 year ago
jacqueline
d36fe9be6b
Use atomics for new file notification instead of a semaphore
1 year ago