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,723
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
821
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,723
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,723
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,723
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,723
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,193
Trophies
0
Age
47
XP
3,708
Country
Kazakhstan
  • Like
Reactions: proconsule54

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,723
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,723
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
  • BakerMan
    I rather enjoy a life of taking it easy. I haven't reached that life yet though.
  • K3Nv2 @ K3Nv2:
    No real point since movies are 30fps
  • BigOnYa @ BigOnYa:
    Not a big movie buff, more of a gamer tbh. And Series X is 120hz 8k ready, but yea only 120hz 4k games out right now, but thinking of in the future.
  • K3Nv2 @ K3Nv2:
    Mostly why you never see TV manufacturers going post 60hz
  • BigOnYa @ BigOnYa:
    I only watch tv when i goto bed, it puts me to sleep, and I have a nas drive filled w my fav shows so i can watch them in order, commercial free. I usually watch Married w Children, or South Park
  • K3Nv2 @ K3Nv2:
    Stremio ruined my need for nas
  • BigOnYa @ BigOnYa:
    I stream from Nas to firestick, one on every tv, and use Kodi. I'm happy w it, plays everything. (I pirate/torrent shows/movies on pc, and put on nas)
  • K3Nv2 @ K3Nv2:
    Kodi repost are still pretty popular
  • BigOnYa @ BigOnYa:
    What the hell is Kodi reposts? what do you mean, or "Wut?" -xdqwerty
  • K3Nv2 @ K3Nv2:
    Google them basically web crawlers to movie sites
  • BigOnYa @ BigOnYa:
    oh you mean the 3rd party apps on Kodi, yea i know what you mean, yea there are still a few cool ones, in fact watched the new planet of the apes movie other night w wifey thru one, was good pic surprisingly, not a cam
  • BigOnYa @ BigOnYa:
    Damn, only $2.06 and free shipping. Gotta cost more for them to ship than $2.06
    +1
  • BigOnYa @ BigOnYa:
    I got my Dad a firestick for Xmas and showed him those 3rd party sites on Kodi, he loves it, all he watches anymore. He said he has got 3 letters from AT&T already about pirating, but he says f them, let them shut my internet off (He wants out of his AT&T contract anyways)
  • K3Nv2 @ K3Nv2:
    That's where stremio comes to play never got a letter about it
  • BigOnYa @ BigOnYa:
    I just use a VPN, even give him my login and password so can use it also, and he refuses, he's funny.
  • BigOnYa @ BigOnYa:
    I had to find and get him an old style flip phone even without text, cause thats what he wanted. No text, no internet, only phone calls. Old, old school.
  • Psionic Roshambo @ Psionic Roshambo:
    @BigOnYa, Lol I bought a new USB card reader thing on AliExpress last month for I think like 87 cents. Free shipping from China... It arrived it works and honestly I don't understand how it was so cheap.
    +1
  • BakerMan @ BakerMan:
    fellas
  • BakerMan @ BakerMan:
    would you rather have a 9-5 desk job with poor pay or work for an intergalactic space militia with no guarantee of being paid?
  • BakerMan @ BakerMan:
    basically, normal boring job or halo and/or helldivers irl
  • SylverReZ @ SylverReZ:
    Lol. Have you heard about this?
  • SylverReZ @ SylverReZ:
    I wish the people who make these emulators know the basic primer course on copyright and trademarks.
    SylverReZ @ SylverReZ: I wish the people who make these emulators know the basic primer course on copyright and trademarks.