summaryrefslogtreecommitdiff
path: root/src/tangara/audio
AgeCommit message (Collapse)Author
2025-08-01Preliminary ALAC supportayumi
2025-07-01Use the standard library instead of a dirty hack.Tursiae
2025-07-01Handle file:/// URIs generated from VLC playlists.Tursiae
2025-05-01Check output before pausing on bt disconnectailurux
2025-04-27Fix for Windows newlines in playlistsailurux
2025-04-14move audio Decoder buffer to external RAMBe
to save 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-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-01Quick fix unmount requests getting dropped when there's no sd cardjacqueline
2025-03-13Add WavPack supportayumi
2025-03-05Allow manually unmounting the SD cardayumi
2025-02-11Only change output mode if the new output mode is differentailurux
2025-02-10Change output mode when bluetooth connects/disconnectsailurux
2025-01-31Fix playlists not setting the queue to readyailurux
2025-01-17Fix audiobook/podcast queue methodailurux
2025-01-08Add bitrate infoTom Kirchner
2025-01-07Improvements to the queue for shuffling/playing all (#170)ailurux
Queue now has a separate 'ready' property to indicate it's ready to be used, which is independent from whether it's still loading tracks in. This also improves the response time for shuffling all tracks (we will initially pick a random track in the first 100 tracks whilst the rest of the tracks are loading). This should also fix issues where one song will start playing and then repeat itself when the queue finishes loading, and hopefully solve #160 as well (though I couldn't actually repro this myself). Co-authored-by: jacqueline <me@jacqueline.id.au> Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/170 Reviewed-by: cooljqln <cooljqln@noreply.codeberg.org> Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-12-30Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fwailurux
2024-12-30Fix issue with playlists restarting playback after enqueuingailurux
2024-12-29suspend playback when headphones disconnectedClayton Craft
I think this is what most folks would expect to happen if BT is disconnected/disabled and the headphones are removed. Also, I think(?) this fixes one situation where the device doesn't idle/ sleep when folks would expect it to (not connected to headphones or bt).
2024-12-19Queue repeat modes (#126)ailurux
This replaces the previous system of a separate track and queue repeat, with a RepeatMode type with the following options and behaviours: - OFF: No repeat, queue or track. When the current queue finishes, shuffled or otherwise, playback will stop. - REPEAT_TRACK: The current track will loop indefinitely, unless next is explicitly called through some user action (ie using the next button in the now playing screen) - REPEAT_QUEUE: The entire queue will repeat indefinitely. When shuffled is enabled this will repeat the queue with new combinations each cycle. The repeat mode is persisted in non-volatile storage, so the behaviour will be consistent throughout restarts and queue replacements, and so the "queue repeat by default" use case can be met in this way. In addition, I've made it work a little nicer when the queue runs out in the now playing screen, keeping the previously played track shown and playback can be continued by using the play button or by going to a previous song in the queue. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/126 Co-authored-by: ailurux <ailuruxx@gmail.com> Co-committed-by: ailurux <ailuruxx@gmail.com>
2024-12-16Make now-playing queue circularmalcircuit
2024-12-10Audio FSM should transit to Standby when BT disconnectailurux
2024-10-08Fixed issue with saving positions, and only auto-resume long-form contentailurux
2024-10-04Don't create a cache file on deserialisingailurux
2024-10-04Explicitly close the playlist files in the queue on storage unmountailurux
2024-10-04Fix issues with deserialising queue when queue exists alreadyailurux
2024-10-03Use cppbor for encoding playlist tocjacqueline
Also fix a locking issue with opening+clearing Co-authored-by: ailurux <ailuruxx@gmail.com>
2024-10-03Clear queue if loading cache fails and file is large, also fix indices oopsailurux
2024-10-03Clean up + use 8 bytes for uint64_tailurux
2024-10-01Add additional cache file for playlist table of contentsailurux
2024-09-24Record play_count in TrackData, incrementing it when tracks finishjacqueline
2024-09-20Don't try to configure the dac if there is no dacjacqueline
Fixes #106
2024-09-19Fix commented issuesailurux
2024-09-17Implements seeking to saved position for tracksailurux
2024-09-17Merge branch 'main' into daniel/persistent-positionsailurux
2024-09-13Save positions over 5 minutes, every minuteailurux
2024-09-12WIP: Fixed errors, cleanupailurux
2024-09-12WIP: Add last_position field to track data and start on implementationailurux
2024-09-12Clean up some tts logging and descriptionsjacqueline
2024-09-12Pause and unpause the current audio output in response to TTSjacqueline
2024-09-11Play TTS files in response to TTS prompts, but it's legible nowjacqueline
- input files are upsamples and padded to stereo before playback - any in-progress playback is cancelled before playing a new file
2024-09-09Play basic wav files in response to tts promptsjacqueline
It's currently quite limited (no stereo or sample rate conversion, multiple messages clobber each other, only plays if music is playing), but we're getting there!
2024-09-09Merge branch 'main' into jqln/ttsjacqueline
2024-09-06Ignore comments within playlist filesjacqueline
Includes a general cleanup+restructure of playlist.cpp, and fixing the tests and benchmarks
2024-08-29Lua API improvements and fixesailurux
Co-authored-by: jacqueline <me@jacqueline.id.au>
2024-08-28Support adding filepaths to the track queuejacqueline
2024-08-28clang-formatjacqueline
2024-08-28Handle the loading state whilst appending many tracks betterjacqueline
1) Update the queue length periodically so that the user can see we're working 2) Clear any previous track and display "loading..." instead
2024-08-28spellojacqueline