Homebrew [WIP] ctrmus - Another 3DS Music Player

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
12,971
Trophies
4
Location
WA State
Website
ko-fi.com
XP
16,994
Country
United States
Hi everyone. Just wanted to give an update regarding ffmpeg support.

I've been working on adding ffmpeg support to ctrmus over the past couple of days; you can have a look at my work so far here.
Adding ffmpeg support is becoming a bit of a pain because each decoder in ffmpeg may output audio in varying formats. For example, flac music is decoded to signed 16 bit (which is what the 3DS uses, so that's great). But the AAC decoder outputs either floating point or signed 32 bit buffer. This means that I'll have to find a way of converting between the possible output formats to signed 16 bit. I think this may be possible using libswresample, but I'm not sure. This requires a lot of research, and so therefore this feature may take quite a while to finish.

Currently, ctrmus in the ffmpeg branch can open all files that ffmpeg supports (including AAC, MKV, MP3, etc.), and displays metadata on the top screen, but playback is incredibly horrible due to the feature being in very early stages.

In addition, I'm going to be busy with work for the next 3 days so progress will be limited during this time.

Thanks for you support. :) Give me a shout if there are any questions.
Thank you so much for your hard work sir, I REALLY appreciate this! :)
 

Platinum Lucario

Well-Known Member
Member
Joined
May 17, 2014
Messages
535
Trophies
0
Age
31
Location
Warrnambool, Victoria, Australia
XP
499
Country
Australia
Looks very interesting. I have a question, do you plan on adding support for CTRM/BCSTMs with loop-flag support? The Nintendo 3DS can natively run binary CSTMs, and it's also possible for the 3DS to run audio sample rate of up to 44100Hz too (unlike Nintendo 3DS Sound, which only plays at a very low sample-rate when playing audio files).
 

MaK11-12

Well-Known Member
OP
Member
Joined
Jul 26, 2009
Messages
241
Trophies
0
Location
Namek
Website
www.deltabeard.com
XP
434
Country
Looks very interesting. I have a question, do you plan on adding support for CTRM/BCSTMs with loop-flag support? The Nintendo 3DS can natively run binary CSTMs, and it's also possible for the 3DS to run audio sample rate of up to 44100Hz too (unlike Nintendo 3DS Sound, which only plays at a very low sample-rate when playing audio files).
I don't plan on adding support for those file formats at this time. I don't believe there is a use case for it, as I don't think users would be deliberately encoding their music collection to something proprietary like CSTM. I'd like to support whatever file formats other common music players use.
 

MaK11-12

Well-Known Member
OP
Member
Joined
Jul 26, 2009
Messages
241
Trophies
0
Location
Namek
Website
www.deltabeard.com
XP
434
Country
If you setup a donation button, I'll donate to this project every couple of weeks. I enjoy having a stable music player that's easy to use.

Thanks for your support. :) I don't think I'll accept donations though. This project isn't just for the benefit of the community, but also to better my programming skills. In addition there are no expenses such as server costs that are required to keep this project running.
 
  • Like
Reactions: death360 and Jayro

UltraHurricane

Well-Known Member
Member
Joined
Feb 18, 2013
Messages
230
Trophies
1
Age
31
XP
740
Country
United States
awesome! i've been looking forward to an alternative to 3DS Sound

btw, do you think it would be possible to add support for native video game sound formats like NFS/SPC/PSF/ect?
 

MaK11-12

Well-Known Member
OP
Member
Joined
Jul 26, 2009
Messages
241
Trophies
0
Location
Namek
Website
www.deltabeard.com
XP
434
Country
awesome! i've been looking forward to an alternative to 3DS Sound

btw, do you think it would be possible to add support for native video game sound formats like NFS/SPC/PSF/ect?

I don't currently have plans to support those formats unless they're already in ffmpeg. I may add it in the future, but I can't imagine too many people wanting to play those formats directly on the 3DS.
 

MaK11-12

Well-Known Member
OP
Member
Joined
Jul 26, 2009
Messages
241
Trophies
0
Location
Namek
Website
www.deltabeard.com
XP
434
Country
FFMPEG has .OGG, yes? That one is going to be very-much requested I believe. FLAC is my poison of choice, and playback has been flawless so far.
I'm only adding ffmpeg because of it's free as in freedom AAC decoder. A number of people were requesting AAC, so now I'm replacing all decoders with ffmpeg. It's a pain but at least it'll open a lot of other codecs. It could also be possible to have video playback support way in the future. ;) Although ctrmus on the ffmpeg can currently open video files, but only play the audio track.

Adding OGG on its own could have been easy using libvorbisfile, but at least ffmpeg will add OGG support to ctrmus soon.
 

MaK11-12

Well-Known Member
OP
Member
Joined
Jul 26, 2009
Messages
241
Trophies
0
Location
Namek
Website
www.deltabeard.com
XP
434
Country
New release updated 15-02-2017 (0.4.9):
  • Changed button mappings to resemble Moonshell DS. Press L+Left to see button mappings.
  • Browse files whilst music is playing.
  • Use left and right buttons to browse 13 files at a time.
  • Fixed an issue whereby the user was unable to suspend ctrmus (CIA only).
  • Changed banner and banner music (CIA only).
  • Back-end changes to reduce compile warnings.
 
Last edited by MaK11-12,

destinedjagold

Member
Newcomer
Joined
Jan 30, 2016
Messages
14
Trophies
0
Age
33
XP
99
Country
Hello.

I'm having an Error 1000: NDSP Initialisation failed when I try to play an .mp3 song. I downloaded this homebrew via FBI QR scan, by the way.

Thanks.
 

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
12,971
Trophies
4
Location
WA State
Website
ko-fi.com
XP
16,994
Country
United States
Hello.

I'm having an Error 1000: NDSP Initialisation failed when I try to play an .mp3 song. I downloaded this homebrew via FBI QR scan, by the way.

Thanks.
You have to run DSP Dumper from the homebrew channel first, but you only need to do it once. Then everything will work fine.
 
  • Like
Reactions: MaK11-12

Cmdutka

New Member
Newbie
Joined
Feb 19, 2017
Messages
1
Trophies
0
Age
37
XP
54
Country
Had the opportunity to test this out on a long train journey yesterday and it totally held up.

Besides having to select every track to play everything worked as it should .

Once the option to play an entire folder is implemented it would mean I can fully ditch the PSP.

Thank you
 
  • Like
Reactions: Jayro and MaK11-12

MaK11-12

Well-Known Member
OP
Member
Joined
Jul 26, 2009
Messages
241
Trophies
0
Location
Namek
Website
www.deltabeard.com
XP
434
Country
Hello.

I'm having an Error 1000: NDSP Initialisation failed when I try to play an .mp3 song. I downloaded this homebrew via FBI QR scan, by the way.

Thanks.
As Jayro says, you have to use DspDump before ctrmus and other homebrew that use audio can work. :)

Had the opportunity to test this out on a long train journey yesterday and it totally held up.

Besides having to select every track to play everything worked as it should .

Once the option to play an entire folder is implemented it would mean I can fully ditch the PSP.

Thank you
Thanks! :)
 

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
12,971
Trophies
4
Location
WA State
Website
ko-fi.com
XP
16,994
Country
United States
Hey @MaK11-12 , do you think you could enable double buffering on the bottom screen, so when you're scrolling the text won't flicker? Unless that's not how you fix it... Just curious if the flickering text was fixable.
 

MaK11-12

Well-Known Member
OP
Member
Joined
Jul 26, 2009
Messages
241
Trophies
0
Location
Namek
Website
www.deltabeard.com
XP
434
Country
Hey @MaK11-12 , do you think you could enable double buffering on the bottom screen, so when you're scrolling the text won't flicker? Unless that's not how you fix it... Just curious if the flickering text was fixable.
According to ctrulib documentation here, double buffering is used by default. The only way this can be fixed is by creating a proper graphics accelerated GUI. :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/WOppJ92RgGU?si=KE79L6A_3jESsGQM