summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-04-24Utilise more than one bit of the entropy returned by komihash before ↵ayumi
requesting more
2025-04-23Move WavPack decoder to IRAMayumi
In my tests this improves the decoding speed by around 3%.
2025-04-23Avoid branching up to two times per sample in the WavPack decoder.ayumi
In my limited tests this improves decoding speed by around 3%.
2025-04-23Make WavPack seeking fasterayumi
It turns out that “seeking to a first sample in a not–first block” is actually very common, because Tangara only seeks to exact seconds and the reference encoder tends to size blocks in a way that makes the first sample in a block likely be the sample that the firmware wants to seek to.
2025-04-22add single touch shourtcuts for touch wheelTab_theFox
This allows you to use the touch wheel for quick playback control: - bottom quadrant for play/pause - left and right quadrant for track skip back / forward - top quadrant to seek back 25 seconds (handy when listening to a podcast)
2025-04-19Add some of the missing font licences to the licence menuayumi
2025-04-19Update Fusion font to the 2025.03.14 versionayumi
2025-04-19Merge pull request 'move some allocations from internal RAM to external RAM' ↵cooljqln
(#330) from Be.ing/tangara-fw:internal_ram into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/330
2025-04-19Merge pull request 'Add more themeing subjects to the status bar' (#335) ↵ailurux
from Doridian/tangara-fw:main into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/335
2025-04-17Add more themeing subjects to the status barDoridian
2025-04-14move audio Decoder buffer to external RAMBe
to save internal RAM space
2025-04-14move some task stacks to external RAMBe
To free up some internal RAM space
2025-04-14move SampleProcessor buffers to external RAMBe
This increases CPU usage by ~2% for the audio_conv task, which I think is an acceptable tradeoff. The Speex resampler still makes its own allocations in internal RAM.
2025-04-14Merge pull request 'fix premature pause at end of last track of queue' ↵ailurux
(#317) from Be.ing/tangara-fw:premature_pause into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/317
2025-04-14Merge pull request 'Current theme reloading' (#324) from ↵ailurux
ayumi/tangara-fw:reload-theme into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/324
2025-04-14Allow the WavPack’s output buffer to be optionally allocated in IRAMayumi
The decoder does use `memset` on the buffer, but according to Espressif that should be fine. See-Also: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/mem_alloc.html#bit-accessible-memory See-Also: https://esp32.com/viewtopic.php?t=1730#p8056
2025-04-14Add the missing WavPack decoder licence to the Licence screenayumi
Also unifies the WavPack and Xiph.org 3–clause BSD licences.
2025-04-13Add ark pixel font's latin feature branch font.leper
This is from an upstream development branch at [1] and adds quite a lot of glyps for the 12px font, and a few to the 10px font. This addition should be temporary until that feature branch is merged upstream, a new release rolled, and then a new release of the fuxion pixel font is rolled. For now this leads to no more missing extended latin A/B characters in the 12px font on my collection. [1] https://github.com/TakWolf/ark-pixel-font/commit/535181d3c9394990fc0cd5d5259399da3b7ead48
2025-04-12Add an option to reload the current themeayumi
2025-04-11fix premature pause at end of last track of queueBe
The SetTrack event is sent when *decoding* finishes, not when *playback* finishes so the decoder can start buffering the next track in advance of its playback to ensure gapless playback. Clearing StreamCues causes Playback::react(const internal::StreamHeartbeat& ev) to transit the Playback FSM to Standby, which sets the IAudioOutput to stop reading from the output buffer. Thus, clearing StreamCues in response to the SetTrack event paused playback with the end of the track stuck waiting in the output buffer. When a new queue was loaded and started playing, the end of the previous track would be played before the new track was played. Fixes https://codeberg.org/cool-tech-zone/tangara-fw/issues/313
2025-04-06Merge pull request 'Include more character sets.' (#304) from ↵cooljqln
leper/tangara-fw:extended_latin_a_b_greek into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/304
2025-04-01version bumpjacqueline
2025-04-01Quick fix unmount requests getting dropped when there's no sd cardjacqueline
2025-03-24DrFlacDecoder: use internal RAM instead of SPIRAMBe
This drops CPU usage for the audio_dec task by about 15%.
2025-03-24app console: add largest free block size to `heaps`Be
This is the maximum amount that malloc can currently allocate in a single allocation.
2025-03-22Include more character sets.leper
This adds support for Latin Extended-A, Latin Extended-B, and Greek and Coptic scripts. The used fusion font in the current version support for these is clearly incomplete for the first two, there is however an upstream branch of the ark pixel font that is a base for it to add more support for those. In the current state this reduces the amount of missing characters for a whole set of Eastern and South-Eastern European languages.
2025-03-20version bumpjacqueline
2025-03-20Bump the max BT TX power up to +9dBmjacqueline
2025-03-19ailurux/button-media-controls (#264)ailurux
Splits the control scheme into separate schemes for the side buttons and touchwheel, allowing them to be configured independently of each other. At least one input must be used for navigation, and there are guards to prevent locking oneself out of any input. If the input scheme is invalid, a pop up will show alerting the user. Different behaviours can be bound to the side buttons for when the device is locked or unlocked. This PR also adds a mode for these buttons that controls media playback (prev/next on up/down, pressing both buttons toggles play/pause). There are some changes to the way inputs handle locking. Rather than the input devices tracking the current locked mode, different input devices are created on lock depending on the mode that is configured. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/264 Co-authored-by: ailurux <ailurux@noreply.codeberg.org> Co-committed-by: ailurux <ailurux@noreply.codeberg.org>
2025-03-19Merge pull request 'Include a subset of Cyrillic characters in the fonts' ↵cooljqln
(#298) from ayumi/tangara-fw:cyrillic into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/298
2025-03-19Merge pull request 'WavPack and APEv2 tags support' (#218) from ↵cooljqln
ayumi/tangara-fw:wavpack into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/218
2025-03-19Merge pull request 'Support padding the left side of the display with black ↵cooljqln
columns' (#302) from display_padding into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/302
2025-03-13Add the ability to display a subset of Cyrillic charactersayumi
2025-03-13Add WavPack supportayumi
2025-03-13Add support for APEv2 tags and detecting WavPack filesayumi
2025-03-13Don’t assume that each tagging format is only used by one file formatayumi
2025-03-12Merge pull request 'Allow manually unmounting the SD card' (#271) from ↵cooljqln
ayumi/tangara-fw:unmount into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/271
2025-03-05Allow manually unmounting the SD cardayumi
2025-03-05Merge pull request 'Trim whitespace from end of bluetooth device names' ↵cooljqln
(#288) from tahnok/tangara-fw:trim-bt-name-whitespace into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/288 Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org>
2025-03-05Emit a 'known devices changed' event when we forget a known devicejacqueline
Makes the Lua UI update immediately after running the bt_forget command added in PR #289
2025-03-05Merge pull request 'add bt_forget console command' (#289) from ↵cooljqln
tahnok/tangara-fw:bt_forget into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/289
2025-02-28add bt_forget console commandWesley Ellis
2025-02-28Trim whitespace from end of bluetooth device namesWesley Ellis
I have a speaker at home with a name of "Pebble V3\r\n" that renders poorly without this change.
2025-02-28Merge pull request 'Change UI thread interval from 0ms minimum to 16ms ↵cooljqln
(reduces UI CPU).' (#285) from tursiae/tangara-fw:idlecpu into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/285
2025-02-27Change UI thread interval from 0ms minimum to 16ms (reduces UI CPU).Tursiae
Prior to this change, the UI thread was consuming approx. 10-14% CPU in the idle state, and appeared to be running in an endless loop. After this change, the UI thread is measured at about 0.1% CPU. I'm not sure what the current consumption impact is, but it's gotta be a power saving, even if slim? Following manual testing with the device after flashing this change, the UI responsiveness and music playback does not appear to be negatively affected. The UI actions that were tested were: - Scrolling through items on the root menu - Scrolling through settings - Scrolling through All Tracks with long-press on the bottom of the scroll wheel (Page Down) on a device with ~20k songs - Repeatedly hitting 'next track' - Forcing a DB update, and scrolling through All Tracks while updating the database. The device was configured with the following settings when tested: - TTS enabled - Wired headphones - Bluetooth enabled but not connected - No DB auto-update - Playing music Prior to this change, the UI thread was consuming approx. 10-14% CPU in the idle state, and appeared to be running in an endless loop. On a stock (v1.2.2) build, `tasks` reported: ``` → tasks name core free stack run time IDLE1 1 1.0 KiB 99.6% IDLE0 0 1.1 KiB 86.5% ui any 10.1 KiB 13.7% console_repl 1 5.6 KiB 0.5% Tmr Svc any 1.4 KiB 0.0% audio_dec any 19.4 KiB 0.0% main 0 2.0 KiB 0.0% lvglDraw any 2.9 KiB 0.0% btController 0 2.1 KiB 0.0% esp_timer 0 3.4 KiB 0.0% BTC_TASK 1 2.6 KiB 0.0% worker_1 any 30.1 KiB 0.0% worker_3 any 5.7 KiB 0.0% worker_2 any 29.5 KiB 0.0% worker_0 any 25.7 KiB 0.0% BTU_TASK 1 3.2 KiB 0.0% hciT 1 1.5 KiB 0.0% ipc0 0 1.0 KiB 0.0% ipc1 1 1.0 KiB 0.0% audio_conv any 3.4 KiB 0.0% ``` Following this change, the UI thread decreased from 13% in idle to 0.1% usage, as reported by `tasks`: ``` → tasks name core free stack run time IDLE1 1 1.0 KiB 99.8% IDLE0 0 1.1 KiB 99.4% console_repl any 6.4 KiB 0.5% ui any 10.1 KiB 0.1% btController 0 2.1 KiB 0.0% Tmr Svc any 1.4 KiB 0.0% esp_timer 0 3.4 KiB 0.0% audio_dec any 19.4 KiB 0.0% ipc1 1 1.0 KiB 0.0% ipc0 0 1.0 KiB 0.0% hciT 1 1.5 KiB 0.0% BTU_TASK 1 3.2 KiB 0.0% worker_3 any 20.7 KiB 0.0% worker_2 any 29.4 KiB 0.0% BTC_TASK 1 2.5 KiB 0.0% worker_1 any 30.1 KiB 0.0% worker_0 any 5.7 KiB 0.0% lvglDraw any 2.9 KiB 0.0% main 0 2.0 KiB 0.0% audio_conv any 3.4 KiB 0.0% ```
2025-02-25version bumpjacqueline
2025-02-25Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fwailurux
2025-02-25Fix bug with filesystem iterator prev off by one sometimesailurux
2025-02-25Merge pull request 'Make the new icons smaller' (#281) from ↵ailurux
ayumi/tangara-fw:small-pngs into main Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/281
2025-02-25Make the new icons smallerayumi