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.
2024-02-28 21:21:23 +11:00
jacqueline
4509ab8d6e
version bump
2024-02-15 09:38:02 +11:00
jacqueline
c5917658e6
Cram one of the flac samples buffers into internal ram
...
Can't quite fit the second... yet. Just one is a pretty reasonable
speedup, though! Probably bc we're not hammering the spiram cache so
hard.
2024-02-14 17:48:13 +11:00
jacqueline
10770e0f54
Use -Ofast for all codecs that don't break with it
2024-02-14 17:47:46 +11:00
jacqueline
4bc77f901b
Tweak opus build flags and allocs
...
This gets us to ~40% of one core cpu usage during playback. Good enough
for a while I reckon!
Paid for the internal ram usage by reclaiming some stack size headroom.
2024-02-14 16:56:49 +11:00
jacqueline
f772ab9f20
put the big opus alloc back into spiram
...
it's not clear to me that it helps *that* much, since the ogg allocs are
in internal ram anyway, and the memory pressure is just a bit much
2024-02-14 13:28:05 +11:00
jacqueline
66f68aac0d
version bump
2024-02-14 12:23:26 +11:00
jacqueline
7ec0ff2589
Switch to the lowmem tremor branch
...
in addition to using slightly less memory, this branch also doesn't seem
to have the same issues with `-O2` builds that the main branch has.
2024-02-14 12:21:33 +11:00
jacqueline
b31bc07555
fix (improve?) libtremor strangeness
...
something fucky
2024-02-13 16:39:56 +11:00
jacqueline
3bb002b6b8
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2024-02-13 12:06:14 +11:00
jacqueline
786546653a
include repeat, replay, and shuffle in persisted queue info
2024-02-13 12:05:12 +11:00
jacqueline
cb379f4bc3
Cache pending nvs writes in memory
...
Includes refactoring nvs settings to be a bit less duplicated
2024-02-13 10:12:04 +11:00
jacqueline
79879fbfa0
version bump
2024-02-12 17:17:41 +11:00
jacqueline
c5cef16c95
Remove some logging whoopsies
2024-02-12 17:16:38 +11:00
jacqueline
36f4c77fb2
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
2024-02-12 17:10:03 +11:00
jacqueline
03c0968168
Let's try avoiding allocs in the bt stacks
2024-02-12 17:09:17 +11:00
jacqueline
a37b517356
Improve handing of tracks with missing titles
2024-02-12 17:08:19 +11:00
jacqueline
cb0c42060b
more i2s/bt drain buffer size tweaks
2024-02-12 17:08:00 +11:00
jacqueline
26df5c4a7f
Remember per-device bluetooth volume
2024-02-12 17:07:39 +11:00
jacqueline
a7ac34eaa9
hack around deadlock during bt disable
2024-02-07 21:38:05 +11:00
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.
2024-02-07 21:38:05 +11:00
jacqueline
18345a1c2c
Silence chatty touchwheel log
2024-02-07 15:47:23 +11:00
jacqueline
02b897d536
smol version bump
2024-02-07 12:42:09 +11:00
jacqueline
c0be3f863f
Deliver AVRC events on a background thread
...
We don't currently do anything with them, so need to wait for the lock
on the bt thread
2024-02-07 11:17:20 +11:00
jacqueline
a67cd1dec6
Ensure the resampler is allocated in internal ram
...
It's quite small!
2024-02-07 10:25:09 +11:00
jacqueline
1b7821a474
improve the locking strategy of the bluetooth fsm
2024-02-06 21:47:28 +11:00
jacqueline
d23435fab7
Retry bt device connections
...
i hate this janky-ass protocol
2024-02-06 21:27:43 +11:00
jacqueline
aff28342d9
let the bluetooth stack handle its own discovery state
2024-02-06 17:56:17 +11:00
jacqueline
a75adfc124
version bump
2024-02-06 13:48:16 +11:00
jacqueline
0bb12912bc
Implement basic volume control for bt outputs
2024-02-06 13:37:20 +11:00
jacqueline
99c56641e9
fix various of bluetooth issues
...
connecting and disconnecting is a bit more consistent now!
2024-02-06 13:37:20 +11:00
jacqueline
ab314b82e1
fix bt settings button initial state
2024-02-06 13:37:20 +11:00
jacqueline
7fbb2162ee
Start keeping lock switch polarity in nvs
...
i will use this to do a sneaky trick; in-place upgrading brendan,
hailey, and erin's devices
2024-02-06 13:37:20 +11:00
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)
2024-02-06 08:50:51 +11:00
jacqueline
177277334f
focus the play/pause toggle when entering the now playing screen
2024-02-06 08:36:11 +11:00
jacqueline
5f6af82e8a
luavgl: add a method to focus an object
2024-02-06 08:36:11 +11:00
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
2024-02-05 20:30:20 +11:00
jacqueline
f4d8b2b04a
hey i found 40KiB SRAM behind the couch!
2024-02-05 14:58:53 +11:00
jacqueline
e073309907
Properly persist bluetooth mode changes
2024-02-05 14:58:40 +11:00
jacqueline
0f03efe868
Make db updates more robust again the sd card disappearing
...
Accidentally found a bug while live on youtube :)
2024-02-05 11:27:09 +11:00
jacqueline
299f3cc48f
Preserve the queue when going into standby
2024-02-05 11:03:52 +11:00
jacqueline
71280f93bd
sorry the tests dont work
2024-02-03 08:58:25 +11:00
jacqueline
32cee65809
Accept opus files that don't fully parse, remove opus-specific tag parser
...
The libtags change is a bit of a hack... I think we're running into
tracks that have long lyrics tags, which pushes the other tags out onto
the next ogg page?
2024-02-01 15:59:53 +11:00
jacqueline
79a6dc1a3e
Use a cache for lvgl images
2024-02-01 15:20:59 +11:00
jacqueline
ee867f2dbc
add an indicator for database updates
2024-02-01 11:43:01 +11:00
jacqueline
2626c0cffc
Do a db update after every mount
2024-02-01 11:22:26 +11:00
jacqueline
c8bbd4d52c
Reduce leveldb cache sizes and worker stacks, increase number of workers
2024-02-01 11:15:25 +11:00
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 :)
2024-02-01 10:54:20 +11:00
jacqueline
fde45dba39
Explicitly specify C++23
2024-01-31 20:04:30 +11:00
jacqueline
d5d1f2247a
version bump
2024-01-31 17:03:22 +11:00
jacqueline
587c585ba6
Don't unmount the sd card as aggressively
2024-01-31 16:54:24 +11:00
jacqueline
816c30afb5
Panic on task WDT
...
deadlocks should probably not free the device!
2024-01-31 15:48:38 +11:00
jacqueline
1494e08ea2
Handle read errors properly
2024-01-31 15:36:32 +11:00
jacqueline
968d545d67
hand off the sd card to the samd properly, and remount when it's finished
2024-01-30 12:10:23 +11:00
jacqueline
eacea59e8a
Do more to avoid and recover from partial db updates
...
- do not power off in an update is in progress
- explicitly store last update time, rather than deriving it from
unchanged tracks.
2024-01-30 11:03:31 +11:00
jacqueline
c399199bfc
Improve handling of sd card changes during runtime
...
- mount if an sd card is inserted
- unmount if it's removed
2024-01-30 09:55:31 +11:00
jacqueline
9039a97ab4
version bump due to schema version bump
2024-01-29 21:32:28 +11:00
jacqueline
04ff8bf492
Extract album artist from libtags-processed files
2024-01-29 19:11:10 +11:00
jacqueline
9b63f14cb8
Flesh out contributing section of README.md
2024-01-23 10:27:04 +11:00
jacqueline
d7ba9420fe
bump to 0.1.3
2024-01-19 12:57:09 +11:00
jacqueline
cd650b30bd
fix some lua stack leaks + add a console func to help debug
2024-01-19 12:52:41 +11:00
jacqueline
1525afe8aa
fix issue with unclipped dither
2024-01-19 08:47:37 +11:00
jacqueline
d1ae1a4230
on second thought, let's not violate patents. 'tis a silly system.
2024-01-18 14:55:27 +11:00
jacqueline
442c45d461
bump to 0.1.2
2024-01-18 14:53:03 +11:00
jacqueline
e8bcbdeff6
make the default sdkconfig more release build-y
2024-01-18 14:52:51 +11:00
jacqueline
2d7f9fc775
calculate length for CBR mp3 files
2024-01-18 14:50:05 +11:00
jacqueline
200a43fad3
fix issues with some song info not appearing
2024-01-18 14:49:07 +11:00
jacqueline
52f5e95acb
wrap long artist names and titles
2024-01-18 14:48:28 +11:00
jacqueline
c1b7a0c9f2
move lua ui-related data to spi ram
2024-01-17 17:50:57 +11:00
jacqueline
ea8a7b0f93
allocate lua properties in spi ram
2024-01-17 17:31:45 +11:00
jacqueline
c0ec19c496
fix some properties that got copied wrong
2024-01-17 15:57:12 +11:00
jacqueline
a81c7a8a86
split out track pushing
2024-01-17 15:47:50 +11:00
jacqueline
1f5249de6f
shift some long-lived allocs into spi ram
2024-01-17 15:31:23 +11:00
jacqueline
08d16e8580
whoops
2024-01-17 12:09:33 +11:00
jacqueline
a4d03fc704
Make reindex button work; no feedback yet
2024-01-17 12:09:14 +11:00
jacqueline
71b4673039
all screens basically working, but bluetooth is rough
2024-01-17 11:48:40 +11:00
jacqueline
7cdcd44e0c
Begin migration of remaining screens to Lua
2024-01-15 12:31:20 +11:00
jacqueline
55bde70b96
add accurate esp and samd versions + expose this info to lua
2024-01-10 20:34:36 +11:00
jacqueline
1b2d791a05
Use doubles instead of floats for lua numbers (this unpins the ui task)
2024-01-10 16:59:07 +11:00
jacqueline
abdc00fd2d
Add faad2 for aac decoding
2024-01-10 14:32:22 +11:00
jacqueline
44fdf69674
tweak wheel sensitivity, improve AKS for centre button
2024-01-09 15:06:14 +11:00
jacqueline
09eacb71f0
bringup r8 muting
2024-01-09 14:17:58 +11:00
jacqueline
0db85f5e9e
move default theme into styles, for easier lua overrides
2024-01-06 09:55:38 +11:00
jacqueline
e12a68a74d
split lua stubs into one set for ldoc, and one set for lua-ls
2024-01-05 17:15:47 +11:00
jacqueline
aa1dd3d522
fix issues with luavgl type annotations
2024-01-05 16:37:05 +11:00
jacqueline
34cae4e6e4
add an alerts module for lua, and implement a volume indicator with it
2024-01-05 10:38:35 +11:00
jacqueline
938ba62f57
refactor handling of volume steps; improve controls
2024-01-04 15:57:58 +11:00
jacqueline
42a98a3799
disable group wrapping by default
2024-01-04 10:43:40 +11:00
jacqueline
44e6aee722
fix yet more mono i2s issues
2024-01-03 19:33:24 +11:00
jacqueline
b6d16a20a4
fix issues with leftover bytes in audio converter
2024-01-03 17:04:48 +11:00
jacqueline
5f0e16e97a
Support changing the usb msc state
2023-12-22 16:48:24 +11:00
jacqueline
d4a0085753
Fix some dither clipping issues
2023-12-20 10:57:24 +11:00
jacqueline
2ccaaf5724
Add dither when requantising >16 bit samples
2023-12-19 23:41:52 +11:00
jacqueline
8a260dad05
Fix sample::FromSigned to not shift by a negative amount
2023-12-19 21:50:33 +11:00
jacqueline
62d51a304e
replace foxenflac with miniflac
...
it's better!
2023-12-19 18:11:23 +11:00
jacqueline
b5d86a9497
little a more stack for main
2023-12-19 17:34:01 +11:00
jacqueline
876db2e7eb
Add the touchwheel button to the AKS channel
2023-12-18 11:19:37 +11:00
jacqueline
414f139ae3
Audio fsm usability tweaks
...
- persist the current volume when the screen locks
- pause playback if headphones are removed
2023-12-18 11:05:44 +11:00
jacqueline
64b106c13e
add a cool lua repl
2023-12-13 16:10:08 +11:00
jacqueline
5a2f0b08e0
Centralise which level is 'locked'
2023-12-12 13:06:53 +11:00