TriPlayer - A feature-rich audio player for Nintendo Switch

wd7qBy2.png


Hey everyone! I'd like to introduce a little something I've been working on since February. After 9 months I believe it's at a state where it's ready for a public release!

Let me introduce TriPlayer, my project that came to be due to the lack of a "proper" audio player for the Nintendo Switch. TriPlayer automatically scans and organizes any audio files you have in the /music folder on the root of your SD card. As pictures speak a thousand words, I'll let the following screenshot help describe it:

ci80MLQ.jpg

As you can see, it handles the metadata embedded within audio files in order to create a complete music library. The music will keep playing while you're playing a game or using another application. Playback can be controlled via the provided Tesla overlay or by pressing button combinations on the controller.

Requirements:
  • A recent version of Atmosphere (0.10.0+)
    • TriPlayer may work on other CFWs, however this is untested
    • The sysmodule requires ~3MB of free memory, so this may clash with other sysmodules
  • A recent firmware version
    • Once again this hasn't been tested, but some code relies on newer firmwares so I suggest 10.0.0+
  • Some music!
    • FLAC, MP3 and WAV are supported at this time
Installation:

1. Download the latest release as a .zip from here
2. Extract the contents to the root of your SD card
3. Place some music in /music
4. Launch the application and wait for the initial scan to complete

GitHub:

A lot more information and usage is covered on my GitHub repo. See the readme for a brief introduction and link to the wiki where everything is covered in detail.
https://github.com/tallbl0nde/TriPlayer

Final Notes:

I hope TriPlayer is useful to many of you who have been wanting a music player on the Switch. As it's quite complex, there's a good chance I've missed some major bugs. Please report these as issues on GitHub. Note that should the sysmodule crash, it will crash the entire OS. While I personally haven't had any crashes while both listening and not listening to music, I recommend stopping the sysmodule (either via the app or overlay) when you're not using it if you want to be extra safe.

Enjoy! :)
 
Last edited by tallbl0nde, , Reason: Update supported formats

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,539
Country
Australia
Super awesome, thank you!..

Add the FLAC support — and it will be BRILLIANT. :)
Yep that's probably my next main focus - incorporating other audio formats!

Thank you for this hb app:) Does the music play in the background when you even close the homebrew application? (Without the overlay)
Yep! If you've used sys-tune before, it functions fairly similar to that.
 

1basti1

Well-Known Member
Member
Joined
Jun 30, 2019
Messages
215
Trophies
0
Age
33
XP
954
Country
Germany
Nice, I checked your trello pretty often and was wondering when it comes out. :D

Will try it now. :)

How long does the it take to prepare the library? I don't have much music atm but it does that now for 3 mins.

10 mins hmm

maybe I have to delete systune. I'll try it.


Ok, something is not right I think. It still prepares the library, I don't think it should take this long. Hmpf... systune was running fine before.

In my /music folder are 4 folders (artists) with another folder in there (album) and then the mp3s in it. I don't know what's causing this. I only have 1 more sysmodule running.
For example:
/music/Metallica/Hardwired to self destruct/Spit out the bone.mp3

I deleted all folders and have just 1 mp3 in the music folder and it works, but that's pretty inconvenient. :/

Apart from that, 3 suggestions.
1. When disable the sysmodule, the Tesla overlay should be able to (re)start the sysmodule.
2. The Tesla overlay should have more functionality, like systune, browse through music etc. (OR have a shortcut to triplayer, but I don't think that this is possible)
3. blacklist not compatible games (saltyNX has this "feature" if blacklisted the sysmodule stops when entering a blacklisted game)
 
Last edited by 1basti1,

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
13,552
Trophies
7
Location
WA State
Website
ko-fi.com
XP
18,262
Country
United States
Once FLAC support is introduced, my Switch might just take center stage for audio playback in my home. O.O

(NX-Shell has a good audio player too just an FYI, but this blows it out of the water!)
 

mathew77

Lovin' life.
Member
Joined
Jan 19, 2019
Messages
1,285
Trophies
1
Age
47
XP
3,967
Country
Kazakhstan
The music will keep playing while you're playing a game or using another application.

Btw, is there any method to turn off the screen while let the music keep playing all the time?..

I tried to disable it in General options > 'Pause when Entering Sleep', but the music stops anyway.
 
Last edited by mathew77,
  • Like
Reactions: _Roxas_ki

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,539
Country
Australia
Nice, I checked your trello pretty often and was wondering when it comes out. :D

Will try it now. :)

How long does the it take to prepare the library? I don't have much music atm but it does that now for 3 mins.

10 mins hmm

maybe I have to delete systune. I'll try it.


Ok, something is not right I think. It still prepares the library, I don't think it should take this long. Hmpf... systune was running fine before.

In my /music folder are 4 folders (artists) with another folder in there (album) and then the mp3s in it. I don't know what's causing this. I only have 1 more sysmodule running.

I deleted all folders and have just 1 mp3 in the music folder and it works, but that's pretty inconvenient. :/

Apart from that, 3 suggestions.
1. When disable the sysmodule, the Tesla overlay should be able to (re)start the sysmodule.
2. The Tesla overlay should have more functionality, like systune, browse through music etc. (OR have a shortcut to triplayer, but I don't think that this is possible)
3. blacklist not compatible games (saltyNX has this "feature" if blacklisted the sysmodule stops when entering a blacklisted game)
Woo first issue... :/
it should stay on the "Preparing library" stage for a few seconds and then progress to the "scanning" stage which will take a little while based on how many songs you have. Your folder structure shouldn't impact it, I had folders about 3 or 4 levels deep with 1300 songs total and it worked fine for me. What are the file names like? I remember having issues with non-ascii file names a few months ago.

Btw, is there any method to turn off the screen while let the music keep playing all the time?..

I tried to disable it in General options > 'Pause when Entering Sleep', but the music stops anyway.
Not yet, that's something I'd like to include at some point. I don't believe it's possible to have the screen properly turn off (like enter sleep mode), so instead I'd just dim it and block all user input, etc.

May I suggest adding USB/HDD support?
XorTroll's fsp-usb seems near completion
https://gbatemp.net/threads/xortroll-working-on-usb-hdd-feature.533937/page-17#post-9246612
I'd have to give it some consideration, as the way I've designed it is that if the music files are deleted/inaccessible between launches it'll remove them from the overall database. So obviously if the hdd wasn't connected on one launch it'll erase all the songs, etc.
 

mathew77

Lovin' life.
Member
Joined
Jan 19, 2019
Messages
1,285
Trophies
1
Age
47
XP
3,967
Country
Kazakhstan
Last edited by mathew77,
  • Like
Reactions: tallbl0nde

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,539
Country
Australia
Nice, I checked your trello pretty often and was wondering when it comes out. :D
Apart from that, 3 suggestions.
1. When disable the sysmodule, the Tesla overlay should be able to (re)start the sysmodule.
2. The Tesla overlay should have more functionality, like systune, browse through music etc. (OR have a shortcut to triplayer, but I don't think that this is possible)
3. blacklist not compatible games (saltyNX has this "feature" if blacklisted the sysmodule stops when entering a blacklisted game)

Oh yeah regarding these:
1. It could, but the overlay can't actually queue any songs at the moment. The overlay is essentially meant to be similar to the music controls on your phone's lock screen.
2. I'm actually pushing the memory limit as it is, I had to optimize a chunk of my code to prevent out-of-memory crashes cause apparently databases need a lot of ram!
3. Now that's something I'd like to cover, as I know there's going to be numerous reports of this crashing games
 

1basti1

Well-Known Member
Member
Joined
Jun 30, 2019
Messages
215
Trophies
0
Age
33
XP
954
Country
Germany
Ok, I think the "letter" ß is the problem. (edit: Yes, it is!)

To 2 (and 1) thats a bummer. The systune overlay can do that. :/

To 3 yeah, crash bandicoot and crash team racing are the first 2 that dont work. :) At least it was like that with systune.
 
Last edited by 1basti1,
  • Like
Reactions: Firexploit

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,539
Country
Australia
Ok, I think the "letter" ß is the problem.

To 2 (and 1) thats a bummer. The systune overlay can do that. :/
Yeah I'll have to see how to work with those "special" characters, as it's obviously possible but just an oversight on my part.

Honestly while there's similarities between this and sys-tune, sys-tune is definitely better if you want a more lightweight experience. I have been thinking to write my own overlay module thing so I'm not limited by Tesla (in terms of UI + RAM), but that may not even happen. We'll see, it's early days! I'm interested to hear everyone's feedback as I've designed this mainly around how I listen to music :P
 

dcx6723

Well-Known Member
Newcomer
Joined
Mar 24, 2016
Messages
88
Trophies
0
Age
34
XP
1,522
Country
United States
On SX OS, Tri Player sys module crashs when starting to play a NES/SNES game from Nintendo Switch Online.
I don't know if it's a bug only on SX OS ?

I have the same kind of crash with sys-tune on SX OS, which also made Mario Kart Home Circuit crashing at startup however I don't have this issue with the Tri Player sys module.

Awesome player by the way!
 

1basti1

Well-Known Member
Member
Joined
Jun 30, 2019
Messages
215
Trophies
0
Age
33
XP
954
Country
Germany
Yeah I'll have to see how to work with those "special" characters, as it's obviously possible but just an oversight on my part.

Honestly while there's similarities between this and sys-tune, sys-tune is definitely better if you want a more lightweight experience. I have been thinking to write my own overlay module thing so I'm not limited by Tesla (in terms of UI + RAM), but that may not even happen. We'll see, it's early days! I'm interested to hear everyone's feedback as I've designed this mainly around how I listen to music :P

I love the look and functionality of the player. Really amazing work! :bow:

Just a liiiiiittle bit more control with the overlay would be nice, but if it isnt possible, then its not possible. ;)
 
  • Like
Reactions: tallbl0nde

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,539
Country
Australia
On SX OS, Tri Player sys module crashs when starting to play a NES/SNES game from Nintendo Switch Online.
I don't know if it's a bug only on SX OS ?

I have the same kind of crash with sys-tune on SX OS, which also made Mario Kart Home Circuit crashing at startup however I don't have this issue with the Tri Player sys module.

Awesome player by the way!
This is most likely due to the Switch running out of "Audio Sessions". Unfortunately there's no real way around it apart from stopping the sysmodule before playing those games.
 

angelhp

Well-Known Member
Member
Joined
Nov 30, 2014
Messages
515
Trophies
1
XP
2,538
Country
United States
Thanks you for this
works perfectly =)

to disable TriPlayer , you can use Sysmodule overlay (you dont need to disable on TriPlayer.nro)
you need to add
"toolbox.json" file

{
"name" : "TriPlayer",
"tid" : "4200000000000FFF",
"requires_reboot": false
}

to 4200000000000FFF folder
 
Last edited by angelhp,
  • Like
Reactions: UltimateFight

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,539
Country
Australia
Thanks you for this
works perfectly =)

to disable TriPlayer , you can use Sysmodule overlay (you dont need to disable on TriPlayer.nro)
you need to add
"toolbox.json" file

{
"name" : "TriPlayer",
"tid" : "4200000000000FFF",
"requires_reboot": false
}

to 4200000000000FFF folder
This will work to stop the sysmodule, but you'll probably find next time you go to start it it won't work. I'm not sure why, but if the process isn't safely shut down it isn't able to reuse the IPC name for communication unless the Switch is rebooted. Because of this I recommend using the "Stop Sysmodule" button in TriPlayer's overlay instead.
 
  • Like
Reactions: angelhp

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,743
Trophies
1
XP
4,543
Country
Netherlands
Nice plugin. Most my music in flac though. Adding an equalizer would be awesome too! Look forward to seeing progress.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    DexterYeen @ DexterYeen: hi