NXMilk Switch: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 19: Line 19:
|image_alt=NXMilk
|image_alt=NXMilk
}}
}}
NXMilk is an audio player for the Nintendo Switch. It utilizes FFMpeg for audio decoding and ProjectM for visualizations. The user interface is built with ImGui, and the project was initially started as a test class for a new audio player for NXMP. NXMilk supports a wide range of audio file formats and is developed by a user named proconsule.
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.


== Features ==
== Features ==
* Wide audio file format support (See below)
* MP3 support (with ID3 tag support).
* Vis using projectM library
* OGG support (with metadata support if present).
* Support Japanese,Chinese,Korean Cyrilic fonts
* FLAC support (with metadata support if present).
* Can read from SD card and from USB storage
* Vis using projectM library.
=== Supported Files ===
* Support Japanese,Chinese,Korean Cyrilic fonts.
* Can read from SD card and from USB storage.
 
== 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:
<pre class="language-ini">[AudioPlayer]
startpath = /switch/NXMilk
milkpresetspath = /switch/NXMilk/presets/milk/
milktexturespath = /switch/NXMilk/presets/Textures/
interfacehidesec = 10
usebuiltinpreset = true
</pre>
 
NXMilk has some builtin presets. Can be disabled setting to false the usebuiltinpreset option.
 
Many milkdrop presets to use: https://github.com/projectM-visualizer/presets-cream-of-the-crop
 
== User guide ==
=== Supported files ===
* MP3 support (with ID3 tag support)
* MP3 support (with ID3 tag support)
* OGG support (with metadata support if present)
* OGG support (with metadata support if present)
* FLAC support (with metadata support if present)
* FLAC support (with metadata support if present)
=== Supported Files using [https://lib.openmpt.org/libopenmpt/ libopenmpt]===
 
=== Supported files using libopenmpt ===
* Composer 667 (.667)
* Composer 667 (.667)
* Composer 669 / UNIS 669 (.669)
* Composer 669 / UNIS 669 (.669)
Line 73: Line 98:
* Mod's Grave (.wow)
* Mod's Grave (.wow)
* Astroidea XMF (.xmf)
* Astroidea XMF (.xmf)
=== Supported Files using [https://github.com/mcfiredrill/libgme libgme]===
 
=== Supported files using libgme ===
* AY ZX Spectrum/Amstrad CPC
* AY ZX Spectrum/Amstrad CPC
* GBS Nintendo Game Boy
* GBS Nintendo Game Boy
Line 84: Line 110:
* VGM/VGZ Sega Master System/Mark III, Sega Genesis/Mega Drive,BBC Micro
* VGM/VGZ Sega Master System/Mark III, Sega Genesis/Mega Drive,BBC Micro


=== Supported Files using [https://github.com/Konstanty/libmodplug libmodplug] ===
=== Supported files using libmodplug ===
* Nearly all the formats supported by libopenmpt
* 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)
* MIDI files (for better result you must use GUS patch file https://www.chocolate-doom.org/wiki/index.php/GUS)


== Installation ==
== Controls ==
* Copy NXMilk.nro in a subfolder eg. /switch/NXMilk/
ZL/ZR - Previous/Next Preset
* (OPTIONAL) Copy milk files in /switch/NXMilk/presets/milk/
* (OPTIONAL) Copy texture files in /switch/NXMilk/presets/Textures/
* (OPTIONAL) Copy timidity.conf and GUS patch files in /switch/NXMilk/timidity/


Edit Config file NXMilk.ini
L/R - Seek -/+ 5 seconds
 
<div class="snippet-clipboard-content notranslate position-relative overflow-auto">
 
<pre>[AudioPlayer]
startpath = /switch/NXMilk
milkpresetspath = /switch/NXMilk/presets/milk/
milktexturespath = /switch/NXMilk/presets/Textures/
interfacehidesec = 10
usebuiltinpreset = true</pre>


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


== Presets ==
Y - Disable projectM Vis
* Many milkdrop presets to use https://github.com/projectM-visualizer/presets-cream-of-the-crop


== Controls ==
Press Y to toogle between SD Card and USB.
* ZL/ZR Prev/Next Preset
* L/R Seek -/+ 5 seconds
* B Stop
* Y Disable projectM Vis
* Limited Touch Support


== USB ==
Limited Touch Support.
Press Y to toogle between SD Card and USB


==Screenshots==
== Screenshots ==
https://dlhb.gamebrew.org/switchhomebrews/nxmilkswitch-01.png
https://dlhb.gamebrew.org/switchhomebrews/nxmilkswitch-01.png


https://dlhb.gamebrew.org/switchhomebrews/nxmilkswitch-02.png
https://dlhb.gamebrew.org/switchhomebrews/nxmilkswitch-02.png


==Changelog==  
== Changelog ==
'''v0.0.3'''
'''v0.0.3'''
*Add support for Tracker files (.mod,.okt,.xm,.s3m) via libopenmpt (https://lib.openmpt.org/libopenmpt/)
* Add support for Tracker files (.mod,.okt,.xm,.s3m) via libopenmpt (https://lib.openmpt.org/libopenmpt/).
 
'''v0.0.2'''
'''v0.0.2'''
* First Release.
* First Release.


== Libraries used in this project ==
== Credits ==
* FFMpeg https://ffmpeg.org/
Libraries used in this project​:
* ImGui https://github.com/ocornut/imgui
* FFMpeg https://ffmpeg.org/
* projectM https://github.com/projectM-visualizer/projectm
* ImGui https://github.com/ocornut/imgui
* libopenmpt https://lib.openmpt.org/libopenmpt/
* projectM https://github.com/projectM-visualizer/projectm
* libgme https://github.com/mcfiredrill/libgme
* Many code parts are taken form NXMP https://github.com/proconsule/nxmp
* libmodplug https://github.com/Konstanty/libmodplug
* Many code parts are taken form NXMP https://github.com/proconsule/nxmp


== Thanks to ==
Thanks to​:
* spkatsi @GBATemp forum for icons,banner, testing and suggestions
* [https://gbatemp.net/members/476106/ @spkatsi]
* Djakku @GBATemp for testing and suggestions
* [https://gbatemp.net/members/488292/ @Djakku]


== External links ==
== External links ==
* Gbatemp - https://gbatemp.net/threads/nxmilk-a-trivial-audio-player-for-switch.646603/
* GitHub - https://github.com/proconsule/NXMilk
* Github - https://github.com/proconsule/NXMilk
* GBAtemp - https://gbatemp.net/threads/nxmilk-a-trivial-audio-player-for-switch.646603/

Latest revision as of 05:44, 24 March 2024

NXMilk
Nxmilkswitch.png
General
Authorproconsule
TypeMedia players
Version0.0.3
LicenseMixed
Last Updated2024/02/18
Links
Download
Website
Source

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.

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.

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:

[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.

Many milkdrop presets to use: https://github.com/projectM-visualizer/presets-cream-of-the-crop

User guide

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

  • 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

  • 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

Controls

ZL/ZR - Previous/Next Preset

L/R - Seek -/+ 5 seconds

B - Stop

Y - Disable projectM Vis

Press Y to toogle between SD Card and USB.

Limited Touch Support.

Screenshots

nxmilkswitch-01.png

nxmilkswitch-02.png

Changelog

v0.0.3

v0.0.2

  • First Release.

Credits

Libraries used in this project​:

Thanks to​:

External links

Advertising: