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

UltimateFight

Mell-Known Member
Member
Joined
Oct 30, 2019
Messages
139
Trophies
0
XP
1,250
Country
China
I cannot for the life of me figure out how to get the playlist file import to work. Every time I import the playlist file it says that it can't find the songs, even though it can see that there is songs in the playlist file. I see on the GitHub release it say that I need to set relative paths, but I don't know how to do that. I'll attach my current playlist file in a zip if anyone wants help me figure out what I did wrong.
You can open it with a text reader. I opened your playlist and found something like this:
Code:
#EXTM3U
#EXTINF:144,Neku - Bonetrousle (Remix) (Remix)
music/001%20Bonetrousle%20%28Remix%29%20%28Remix%29.mp3
#EXTINF:140,Neku - Wii Shop
music/002%20Wii%20Shop.mp3
I don't think these are the right filenames.:unsure:
Here is my playlist exported from triplayer:
Code:
#EXTM3U
#PLAYLIST:123
P4/Like a dream come true.mp3
test/040.mp3
 
  • Like
Reactions: vaugerbird

Oscillate

Member
Newcomer
Joined
May 15, 2019
Messages
22
Trophies
0
Age
26
XP
319
Country
United Kingdom
I've tried that, but it would do the same thing. I'll try again when I get home and I'll see if that will fix it.
You could also try creating a /music folder since that's listed in your playlist file. Triplayer looks for songs in /music but then the playlist is looking for a folder in that called music which doesn't exist, at least I think. So you could try placing your music in /music/music and then try to import again.
 

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,538
Country
Australia
@vaugerbird Relative paths mean your songs are in within folders relative to the playlist file. So for example with yours, they should import correctly if you placed the .m3u8 outside of /music, as your files begin with music/. Essentially the way to see if it's correct is to look at what folder your .m3u8 is in, then what's in the file and see if that's where the song actually is.

So for example let's say you had the .m3u8 in /music and a line was:
music/song.mp3

TriPlayer would then look for a song at /music/music/song.mp3

I also noticed you have %20 instead of spaces in there. I don't think they would be interpreted as spaces and thus also would cause the songs to not be found. Is this common for .m3u8s by any chance? Cause if so I can fix that, I've just never really used them before :P
 
  • Like
Reactions: vaugerbird

vaugerbird

Well-Known Member
Newcomer
Joined
Nov 1, 2020
Messages
47
Trophies
1
Location
West Coast
XP
951
Country
United States
@vaugerbird Relative paths mean your songs are in within folders relative to the playlist file. So for example with yours, they should import correctly if you placed the .m3u8 outside of /music, as your files begin with music/. Essentially the way to see if it's correct is to look at what folder your .m3u8 is in, then what's in the file and see if that's where the song actually is.

So for example let's say you had the .m3u8 in /music and a line was:
music/song.mp3

TriPlayer would then look for a song at /music/music/song.mp3

I also noticed you have %20 instead of spaces in there. I don't think they would be interpreted as spaces and thus also would cause the songs to not be found. Is this common for .m3u8s by any chance? Cause if so I can fix that, I've just never really used them before :P

I just generated my playlist file with VLC, and it placed the playlist file in the root directory of my SD card. I'll just change the file names of each song so it doesn't add the %20 to each file name, or try to change some settings in VLC, and I'll see if that works.

You could also try creating a /music folder since that's listed in your playlist file. Triplayer looks for songs in /music but then the playlist is looking for a folder in that called music which doesn't exist, at least I think. So you could try placing your music in /music/music and then try to import again.

All of my songs are already in the /music folder, that's why VLC put the music/ part into the file names.

EDIT: Just replaced all of the %20 bits with spaces in N++, and that didn't work, I'll mess around a bit more.
EDIT 2: I figured it out! I replaced all music/ with /music/ and changed the names of all the song files. Thanks for help everyone, I would have driven myself mad without y'all! Also, is there any way to sort the songs in the playlist by the order of the songs in the playlist file?
 
Last edited by vaugerbird,

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,183
Trophies
2
XP
33,680
Country
Mexico
I have a slight question, which I am not sure if it has been answered before.
Is there a possibility of having this as a standalone media homebrew?
What I mean is a NRO that isn't loaded at all times, like an overlay does, so we can have a homebrew app that is exclusive to media playing.
And while also on the question about it, are there any plans on the app supporting video formats in the future (if it ends up being made as a standalone homebrew app)?
 

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,538
Country
Australia
I have a slight question, which I am not sure if it has been answered before.
Is there a possibility of having this as a standalone media homebrew?
What I mean is a NRO that isn't loaded at all times, like an overlay does, so we can have a homebrew app that is exclusive to media playing.
And while also on the question about it, are there any plans on the app supporting video formats in the future (if it ends up being made as a standalone homebrew app)?
Is it possible? Yes.

The main thing is that the overall application is designed to interact with a sysmodule to get things done. It would essentially require a decent rewrite of the audio side of things in order to make it standalone. I may consider doing this later on, but I personally want to listen to music in the background so it will be a low priority.

Video playback is out of the question I'm afraid, that's pretty different as you have to handle both video and audio at the same time, as well as many other technical things. I'm content with researching and understanding audio decoding, especially since this a project I'm working on in my free time. Sorry!
 
  • Like
Reactions: ShadowOne333

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,183
Trophies
2
XP
33,680
Country
Mexico
Is it possible? Yes.

The main thing is that the overall application is designed to interact with a sysmodule to get things done. It would essentially require a decent rewrite of the audio side of things in order to make it standalone. I may consider doing this later on, but I personally want to listen to music in the background so it will be a low priority.

Video playback is out of the question I'm afraid, that's pretty different as you have to handle both video and audio at the same time, as well as many other technical things. I'm content with researching and understanding audio decoding, especially since this a project I'm working on in my free time. Sorry!
Ah that's fine.
I appreciate the response and the detailed reply.
Thanks! :)
 
  • Like
Reactions: tallbl0nde

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
12,972
Trophies
4
Location
WA State
Website
ko-fi.com
XP
16,996
Country
United States
That seems like a testable claim.

Must suck having such abilities if you do as well.
It does. On top of it all, I have really strong tinnitus, a constant ringing in my ears that sounds like a really high-pitched coil whine from an old CRT.
 

Asia81

Yuri Lover ~
Member
Joined
Nov 15, 2014
Messages
6,656
Trophies
3
Age
29
XP
3,494
Country
France
I can't even get it to boot, it hang on "Preparing your library" with the infinite animated logo.
edit: nvm, I fixed it, was a bug with ascii characters.
 
Last edited by Asia81,

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
24
XP
1,538
Country
Australia
It apparently really hates French, but overall pretty good.

I'd love to be able to switch albums in the Tesla addon though
What's the issue with French - is it not rendering characters properly? I may extend the functionality of the Tesla overlay, however it's quite constrained due to memory at the moment.

How do I make it so it starts up on boot and plays an mp3 automatically
TriPlayer can't do that unfortunately, I believe there's another sysmodule that does something like that though.

I can't even get it to boot, it hang on "Preparing your library" with the infinite animated logo.
edit: nvm, I fixed it, was a bug with ascii characters.
Glad you got it working, I should probably actually show a notice in-app or something as it's caused problems for a lot of people :P
 

Asia81

Yuri Lover ~
Member
Joined
Nov 15, 2014
Messages
6,656
Trophies
3
Age
29
XP
3,494
Country
France
What's the issue with French - is it not rendering characters properly? I may extend the functionality of the Tesla overlay, however it's quite constrained due to memory at the moment.


TriPlayer can't do that unfortunately, I believe there's another sysmodule that does something like that though.


Glad you got it working, I should probably actually show a notice in-app or something as it's caused problems for a lot of people :P
Yep, I had to delete all accent, like é or à et put e or a instead.
Also would it be possible to choose the music (having a list like in the homebrew) in the overlay, instead of just next/previous music ?

I also would like if the player could sort them respecting the order and folders the songs are on the sd, because I have a French folder with only french music, and another English folder with english music, but the player display all of them.
 
Last edited by Asia81,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: I'm in my birthday suit! Lol