More actions
tangerine is a work-in-progress music player for the Nintendo 3DS and Nintendo Switch.
Note from developer:
The 3DS build is currently in heavy development as the shift is made from pp2d to citro2d. Please use the previous build instead of building yourself.
Features
- Support for multiple formats (wav, flac, and mp3 currently).
- Ability to play playlists.
- Anything else the 3DS's sound application does.
- Touchscreen controls.
Building
You can just run make
or make all
to get both 3ds and switch builds, but for just one of them follow this.
3DS:
- Make sure you have the latest releases of ctrulib, citro3d, citro2d, and 3ds-mpg123 installed via the devkitPro pacman.
- Then type
make 3ds
to get a .3dsx, .smdh, and .cia.
Switch:
- Make sure you have the latest releases of libnx and switch-mpg123 installed via the devkitPro pacman.
- Then type
make switch
to get a .nro.
User guide
Put all music in /music/ folder on your SD card as traditional file browsing is not currently supported yet.
Controls
L/R - Skip forward/back a song
A - Pause/play
B - Return to file selection
Progress bar (touch screen) - Scrub through the audio (slow)
Known issues
Some flac files have issues with playback speed on hardware but work fine in Citra.
Scrubbing within flac/mp3 files may take several seconds on Old 3DS depending on the size of the file
Credits
Thanks to:
- @smealum for ctrulib.
- @fincs for citro3d.
- @Steveice10 for buildtools.
- @BernardoGiordano for pp2d and help with Makefile/rsf files.
- VLC for android for the rough UI design concept.
- @Sergey#5402 for help testing.
- @Fenrir#3268, @ahoischen#9453, and @TurtleP#2954 (and anyone else!) in #dev in the Nintendo Homebrew discord for help with some beginner C mistakes.
- mackron for their doctor libs (dr_flac and dr_wav specifically).
- devkitPro for the example Makefiles, portlibs, and citro2d.
- switchbrew/3dsbrew for documentation and examples.
- The big N for the Nintendo 3DS Sound application.
- Erokia for Heartbleed Synth.
- and @deltabeard for their orginal libmpg123 portlib fork and ctrmus (big inspiration and for understanding the DSP a lot better).