Homebrew NXMilk a trivial audio player for switch

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,710
Country
Italy
nxmilk_banner.jpg


NXMilk is a trivial audio player for Nintendo Switch.

It uses FFMpeg for audio decoding and projectM for the vis. The GUI is made with ImGui.

This project started as a test class for new audio player for NXMP

NXMilk is coded by @proconsule54


Project repo: https://github.com/proconsule/NXMilk
Download: https://github.com/proconsule/NXMilk/releases

screenshot1.jpg

Features​

  • MP3 support (with ID3 tag support)
  • OGG support (with metadata support if present)
  • FLAC support (with metadata support if present)
  • Vis using projectM library
  • Support Japanese,Chinese,Korean Cyrilic fonts
  • Can read from SD card and from USB storage

Button Mapping​

  • ZL/ZR Prev/Next Preset
  • L/R Seek -/+ 5 seconds
  • B Stop
  • Y Disable projectM Vis
  • Limited Touch Support

USB​

Press Y to toogle between SD Card and USB

Installation​

  • Copy NXMilk.nro in a subfolder eg. /switch/NXMilk/
  • (OPTIONAL) Copy milk files in /switch/NXMilk/presets/milk/
  • (OPTIONAL) Copy texture files in /switch/NXMilk/presets/Textures/
Edit Config file NXMilk.ini

INI:
[AudioPlayer]
startpath = /switch/NXMilk
milkpresetspath = /switch/NXMilk/presets/milk/
milktexturespath = /switch/NXMilk/presets/Textures/
interfacehidesec = 10
usebuiltinpreset = true


NXMilk has some builtin presets. Can be disabled setting to false the usebuiltinpreset option

Presets​

Libraries used in this project​

Thanks to​

 
Last edited by proconsule54,

TheRocK

Well-Known Member
Member
Joined
Apr 16, 2003
Messages
374
Trophies
2
Website
Visit site
XP
820
Country
Gambia, The
Any major bug? Suggestions?
Just to know where to focus the attention
Speaking for myself, the pinnacle of MP3 player design and functionality was and still is the classic Winamp. I don't know if something like this could work on a widescreen display. But maybe it could be an inspiration for functionality.
 
  • Like
Reactions: proconsule54

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,710
Country
Italy
I also loved winamp, yes i will took it as ref.

Playing formats will be easy if supported by ffmpeg, no work. If i have to use other libs will require some work(not too much) good suggestion!

Also i am working on playing cd-disc…. Via an usb dvd player i found at home. Need work but can be cool!
 

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,710
Country
Italy
Yes, i want some simple scope, spectrum. I will work on it also. Thanks for the suggestion.

Is stable? Any major bug? Since i done it from scratch i hope is stable enough
 
  • Love
Reactions: mathew77

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,710
Country
Italy
Dev update:
Working on exotic file support, and the first one will be all the trackers files.
Back in 80/90 was very popular file format in the amiga world.
Now NXMilk play nearly all if them (i have to do deep tests)

Also the ability of playing games audio file is planned, probably i will start hystorically, from c64 to current systems….
Enjoy!
Post automatically merged:

Release

https://github.com/proconsule/NXMilk/releases

# NXMilk Changelog

## [0.0.3]

### Added

- Add support for Tracker files (.mod,.okt,.xm,.s3m) via libopenmpt (https://lib.openmpt.org/libopenmpt/)

Enjoy!
 
Last edited by proconsule54,

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,710
Country
Italy
Dev Update:
Got a working libgme so
Code:
AY        ZX Spectrum/Amstrad CPC
GBS       Nintendo Game Boy
GYM       Sega Genesis/Mega Drive
HES       NEC TurboGrafx-16/PC Engine
KSS       MSX Home Computer/other Z80 systems (doesn't support FM sound)
NSF/NSFE  Nintendo NES/Famicom (with VRC 6, Namco 106, and FME-7 sound)
SAP       Atari systems using POKEY sound chip
SPC       Super Nintendo/Super Famicom
VGM/VGZ   Sega Master System/Mark III, Sega Genesis/Mega Drive,BBC Micro

This sound formats are supported, but i think is useless without the ability to open the rom, so since all this systems are well documented is not that hard to open roms and parse all the sounds file in it!

Hope this can will be useful.
Enjoy!
 

mathew77

Lovin' life.
Member
Joined
Jan 19, 2019
Messages
1,189
Trophies
0
Age
47
XP
3,694
Country
Kazakhstan
  • Like
Reactions: proconsule54

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,710
Country
Italy
@proconsule54
My one of the greatest wishes about Switch's audioplayers is supporting the native *.UMX, or native *.IT (Impulse Tracker) for listening Deux Ex 1 OST. :)

Preview:

Some info: https://www.snakebytestudios.com/projects/media/deus-ex-soundtrack/
http://www.mirsoft.info/gmb/music_info.php?id_ele=MzM4

ImpulseTracker wiki: https://en.wikipedia.org/wiki/Impulse_Tracker
OpenMPT can play them: https://openmpt.org/

IT files are supported in the next version of NXMilk

For umx i have to get some info
Post automatically merged:

Code:
,amf,ams,dbm,digi,dmf,dsm,far,gdm,imf,it,j2b,m15,mdl,med,mmcmp,mms,mo3,mod,mptm,mt2,mtm,nst,okt,plm,ppm,psm,pt36,ptm,s3m,sfx,sfx2,stk,stm,ult,umx,wow,xm,xpk
This are the format supported by libmodplug

Umx is supported also so yes
Post automatically merged:

So far i ported 3 libs (with minimal effort) libopenmpt libgme and libmodplug

They are supported by ffmpeg so very easy to integrate
Tracker files are supported by both libopenmpt and libmodplug, i let ffmpeg to decide the best
Post automatically merged:

I think this will be the audioplayer with the wider audio support for switch
 
Last edited by proconsule54,

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,710
Country
Italy
Any other exotic audio file to support?
Post automatically merged:

Current file support list (i have tested neearly all of them...)

Supported Files
-----
- MP3 support (with ID3 tag support)
- OGG support (with metadata support if present)
- FLAC support (with metadata support if present)

Supported Files using libopenmpt (https://lib.openmpt.org/libopenmpt/)
----
- Composer 667 (.667)
- Composer 669 / UNIS 669 (.669)
- ASYLUM Music Format / Advanced Music Format (.amf / .dmf)
- Extreme’s Tracker / Velvet Studio (.ams)
- Composer 670 / CDFM (.c67)
- Digi Booster Pro (.dbm)
- Digi Booster (.digi)
- X-Tracker (.dmf)
- DSIK (.dsm)
- Dynamic Studio (.dsm)
- Digital Symphony (.dsym)
- Digital Tracker / Digital Home Studio (.dtm)
- Farandole Composer (.far)
- Davey W. Taylor’s FM Tracker (.fmt)
- General Digital Music (.gdm)
- Graoumf Tracker 1 (.gtk / .gt2)
- Ice Tracker / SoundTracker 2.6 (.ice / .st26)
- Imago Orpheus (.imf)
- Impulse Tracker Project (.itp) – legacy OpenMPT format with instruments stored in external files rather than directly in the module
- Jazz Jackrabbit 2 Music (.j2b)
- SoundTracker and compatible (.m15 / .stk)
- DigiTrakker (.mdl)
- OctaMED (.med)
- MO3 (.mo3)
- MadTracker 2 (.mt2)
- MultiTracker (.mtm)
- Psycho Pinball / Micro Machines 2 music format (.mus)
- Oktalyzer (.okt)
- OggMod-compressed XM files (.oxm)
- Epic Megagames MASI (.psm)
- Disorder Tracker 2 (.plm)
- ProTracker 3.6 IFF (.pt36)
- PolyTracker (.ptm)
- SoundFX / MultiMedia Sound (.sfx / .sfx2 / .mms)
- Scream Tracker 2 (.stm)
- Scream Tracker Music Interface Kit (.stx)
- Soundtracker Pro II (.stp)
- Symphonie / Symphonie Pro (.symmod)
- UltraTracker (.ult)
- Unreal Music (.umx) only from Unreal (Tournament 1), Deus Ex and Jazz Jackrabbit 3D
- Mod's Grave (.wow)
- Astroidea XMF (.xmf)

Supported Files using libgme (https://github.com/mcfiredrill/libgme)
-----
- AY ZX Spectrum/Amstrad CPC
- GBS Nintendo Game Boy
- GYM Sega Genesis/Mega Drive
- HES NEC TurboGrafx-16/PC Engine
- KSS MSX Home Computer/other Z80 systems (doesn't support FM sound)
- NSF/NSFE Nintendo NES/Famicom (with VRC 6, Namco 106, and FME-7 sound)
- SAP Atari systems using POKEY sound chip
- SPC Super Nintendo/Super Famicom
- VGM/VGZ Sega Master System/Mark III, Sega Genesis/Mega Drive,BBC Micro

Supported Files using libmodplug (https://github.com/Konstanty/libmodplug)
-----
- Nearly all the formats supported by libopenmpt
- MIDI files (for better result you must use GUS patch file https://www.chocolate-doom.org/wiki/index.php/GUS)
 
Last edited by proconsule54,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • BigOnYa @ BigOnYa:
    I don't trust the free ones, but ipvanish I've used for couple years now, n like
  • Psionic Roshambo @ Psionic Roshambo:
    I wonder if they could get CPUs to run that hot then use the heat to power a steam turbine to power the CPUs....
  • BigOnYa @ BigOnYa:
    Good idea, or at least power the GPU
  • Psionic Roshambo @ Psionic Roshambo:
    It's not the movies or games downloads that I would worry about, like breaking into networks, downloading encrypted things, spying on network traffic. I have seen so many "Top Secret" seals on files when I was a kid
  • Psionic Roshambo @ Psionic Roshambo:
    I was obsessed with finding UFOs, a surprising amount of US files where stashed on computers in other countries, China back in the early 90s omg sooo much
  • BigOnYa @ BigOnYa:
    Yea that crazy, I've never tried hack into anything, I just pirate, and my ISP have send me 3-4 letters, so had to VPN it
  • Psionic Roshambo @ Psionic Roshambo:
    Ship to ship communication software for the Navy although without access to the encrypting chips it was mostly useless
  • Psionic Roshambo @ Psionic Roshambo:
    I bet now a 4090 could probably crack it? Hmmm maybe not even back then I'm pretty sure they where using like 1024 bit encryption
  • Psionic Roshambo @ Psionic Roshambo:
    Yayyy the one set finished 324GBs lol
  • Psionic Roshambo @ Psionic Roshambo:
    Compressed....
  • Psionic Roshambo @ Psionic Roshambo:
    I wonder how many years that would have taken on a 56K modem lol
  • Psionic Roshambo @ Psionic Roshambo:
    18000 hours lol
  • Psionic Roshambo @ Psionic Roshambo:
    750 days lol
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    So Internet is very much faster now lol
  • BigOnYa @ BigOnYa:
    "Time Remaining- 2 years, 9 girlfriends, 6 hairstyles, please standby..."
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    I remember one time I downloaded like a 500MB ISO file on 56K and that literally took like 2 days
  • Psionic Roshambo @ Psionic Roshambo:
    I had some sort of resume thing, I remember the software had chains
  • Psionic Roshambo @ Psionic Roshambo:
    Damned if I can't remember.the name though
  • Psionic Roshambo @ Psionic Roshambo:
    Some sort of download management app
  • BigOnYa @ BigOnYa:
    Ok good chatting, I'm off to the bar, to shoot some pool, nighty night.
    +1
  • BakerMan @ BakerMan:
    hey psi
  • BakerMan @ BakerMan:
    i call your girl lyndon the way she b on my johnson
    BakerMan @ BakerMan: i call your girl lyndon the way she b on my johnson