From efccf2bf2b467c300cc94bc777e3aa2262395087 Mon Sep 17 00:00:00 2001 From: SleepyRaccoon Date: Fri, 6 Aug 2021 11:48:20 +0100 Subject: [PATCH] Simple Audren Example playing mp3 via mpg123 --- audio/audren-mp3-simple/Makefile | 222 ++++++++++++++++++++ audio/audren-mp3-simple/romfs/test.mp3 | Bin 0 -> 104011 bytes audio/audren-mp3-simple/source/main.cpp | 264 ++++++++++++++++++++++++ 3 files changed, 486 insertions(+) create mode 100644 audio/audren-mp3-simple/Makefile create mode 100644 audio/audren-mp3-simple/romfs/test.mp3 create mode 100644 audio/audren-mp3-simple/source/main.cpp diff --git a/audio/audren-mp3-simple/Makefile b/audio/audren-mp3-simple/Makefile new file mode 100644 index 0000000..a074bf5 --- /dev/null +++ b/audio/audren-mp3-simple/Makefile @@ -0,0 +1,222 @@ +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- + +ifeq ($(strip $(DEVKITPRO)),) +$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=/devkitpro") +endif + +TOPDIR ?= $(CURDIR) +include $(DEVKITPRO)/libnx/switch_rules + +#--------------------------------------------------------------------------------- +# TARGET is the name of the output +# BUILD is the directory where object files & intermediate files will be placed +# SOURCES is a list of directories containing source code +# DATA is a list of directories containing data files +# INCLUDES is a list of directories containing header files +# ROMFS is the directory containing data to be added to RomFS, relative to the Makefile (Optional) +# +# NO_ICON: if set to anything, do not use icon. +# NO_NACP: if set to anything, no .nacp file is generated. +# APP_TITLE is the name of the app stored in the .nacp file (Optional) +# APP_AUTHOR is the author of the app stored in the .nacp file (Optional) +# APP_VERSION is the version of the app stored in the .nacp file (Optional) +# APP_TITLEID is the titleID of the app stored in the .nacp file (Optional) +# ICON is the filename of the icon (.jpg), relative to the project folder. +# If not set, it attempts to use one of the following (in this order): +# - .jpg +# - icon.jpg +# - /default_icon.jpg +# +# CONFIG_JSON is the filename of the NPDM config file (.json), relative to the project folder. +# If not set, it attempts to use one of the following (in this order): +# - .json +# - config.json +# If a JSON file is provided or autodetected, an ExeFS PFS0 (.nsp) is built instead +# of a homebrew executable (.nro). This is intended to be used for sysmodules. +# NACP building is skipped as well. +#--------------------------------------------------------------------------------- +TARGET := $(notdir $(CURDIR)) +BUILD := build +SOURCES := source +DATA := data +INCLUDES := include +ROMFS := romfs + +#--------------------------------------------------------------------------------- +# options for code generation +#--------------------------------------------------------------------------------- +ARCH := -march=armv8-a+crc+crypto -mtune=cortex-a57 -mtp=soft -fPIE + +CFLAGS := -g -Wall -O2 -ffunction-sections \ + $(ARCH) $(DEFINES) + +CFLAGS += $(INCLUDE) -D__SWITCH__ + +CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions + +ASFLAGS := -g $(ARCH) +LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map) + +LIBS := -lnx -lmpg123 + +#--------------------------------------------------------------------------------- +# list of directories containing libraries, this must be the top level containing +# include and lib +#--------------------------------------------------------------------------------- +LIBDIRS := $(PORTLIBS) $(LIBNX) + + +#--------------------------------------------------------------------------------- +# no real need to edit anything past this point unless you need to add additional +# rules for different file extensions +#--------------------------------------------------------------------------------- +ifneq ($(BUILD),$(notdir $(CURDIR))) +#--------------------------------------------------------------------------------- + +export OUTPUT := $(CURDIR)/$(TARGET) +export TOPDIR := $(CURDIR) + +export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ + $(foreach dir,$(DATA),$(CURDIR)/$(dir)) + +export DEPSDIR := $(CURDIR)/$(BUILD) + +CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) +CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) +SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) +BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) + +#--------------------------------------------------------------------------------- +# use CXX for linking C++ projects, CC for standard C +#--------------------------------------------------------------------------------- +ifeq ($(strip $(CPPFILES)),) +#--------------------------------------------------------------------------------- + export LD := $(CC) +#--------------------------------------------------------------------------------- +else +#--------------------------------------------------------------------------------- + export LD := $(CXX) +#--------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------- + +export OFILES_BIN := $(addsuffix .o,$(BINFILES)) +export OFILES_SRC := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) +export OFILES := $(OFILES_BIN) $(OFILES_SRC) +export HFILES_BIN := $(addsuffix .h,$(subst .,_,$(BINFILES))) + +export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ + $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ + -I$(CURDIR)/$(BUILD) + +export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) + +ifeq ($(strip $(CONFIG_JSON)),) + jsons := $(wildcard *.json) + ifneq (,$(findstring $(TARGET).json,$(jsons))) + export APP_JSON := $(TOPDIR)/$(TARGET).json + else + ifneq (,$(findstring config.json,$(jsons))) + export APP_JSON := $(TOPDIR)/config.json + endif + endif +else + export APP_JSON := $(TOPDIR)/$(CONFIG_JSON) +endif + +ifeq ($(strip $(ICON)),) + icons := $(wildcard *.jpg) + ifneq (,$(findstring $(TARGET).jpg,$(icons))) + export APP_ICON := $(TOPDIR)/$(TARGET).jpg + else + ifneq (,$(findstring icon.jpg,$(icons))) + export APP_ICON := $(TOPDIR)/icon.jpg + endif + endif +else + export APP_ICON := $(TOPDIR)/$(ICON) +endif + +ifeq ($(strip $(NO_ICON)),) + export NROFLAGS += --icon=$(APP_ICON) +endif + +ifeq ($(strip $(NO_NACP)),) + export NROFLAGS += --nacp=$(CURDIR)/$(TARGET).nacp +endif + +ifneq ($(APP_TITLEID),) + export NACPFLAGS += --titleid=$(APP_TITLEID) +endif + +ifneq ($(ROMFS),) + export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS) +endif + +.PHONY: $(BUILD) clean all + +#--------------------------------------------------------------------------------- +all: $(BUILD) + +$(BUILD): + @[ -d $@ ] || mkdir -p $@ + @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile + +#--------------------------------------------------------------------------------- +clean: + @echo clean ... +ifeq ($(strip $(APP_JSON)),) + @rm -fr $(BUILD) $(TARGET).nro $(TARGET).nacp $(TARGET).elf +else + @rm -fr $(BUILD) $(TARGET).nsp $(TARGET).nso $(TARGET).npdm $(TARGET).elf +endif + + +#--------------------------------------------------------------------------------- +else +.PHONY: all + +DEPENDS := $(OFILES:.o=.d) + +#--------------------------------------------------------------------------------- +# main targets +#--------------------------------------------------------------------------------- +ifeq ($(strip $(APP_JSON)),) + +all : $(OUTPUT).nro + +ifeq ($(strip $(NO_NACP)),) +$(OUTPUT).nro : $(OUTPUT).elf $(OUTPUT).nacp +else +$(OUTPUT).nro : $(OUTPUT).elf +endif + +else + +all : $(OUTPUT).nsp + +$(OUTPUT).nsp : $(OUTPUT).nso $(OUTPUT).npdm + +$(OUTPUT).nso : $(OUTPUT).elf + +endif + +$(OUTPUT).elf : $(OFILES) + +$(OFILES_SRC) : $(HFILES_BIN) + +#--------------------------------------------------------------------------------- +# you need a rule like this for each extension you use as binary data +#--------------------------------------------------------------------------------- +%.bin.o %_bin.h : %.bin +#--------------------------------------------------------------------------------- + @echo $(notdir $<) + @$(bin2o) + +-include $(DEPENDS) + +#--------------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------------- diff --git a/audio/audren-mp3-simple/romfs/test.mp3 b/audio/audren-mp3-simple/romfs/test.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c96578fd4903821c917319485af437e1eefafd93 GIT binary patch literal 104011 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 literal 0 HcmV?d00001 diff --git a/audio/audren-mp3-simple/source/main.cpp b/audio/audren-mp3-simple/source/main.cpp new file mode 100644 index 0000000..688c689 --- /dev/null +++ b/audio/audren-mp3-simple/source/main.cpp @@ -0,0 +1,264 @@ +#include +#include +#include +#include + +// == + +#include +#include +#include + +// This sample requires switch-mpg123 installed. This can be done via the pacman install 'pacman -S switch-mpg123' +// Note the link in the Makefile 'LIBS := -lnx -lmpg123' + +// Sample comes from this website: +// https://www.soundjay.com/magic-sound-effect.html + +// Simple struct to store our mp3 file +struct Mp3File +{ + mpg123_handle* handle; + int channels; + long rate; + float length; + + AudioDriverWaveBuf WaveBuff; + int audrenMpid; +}; + +// == + +// Cleanup a given mpg123 handle + inline void CleanupMPGHandle(mpg123_handle* handle) +{ + mpg123_close(handle); + mpg123_delete(handle); +} + + // Load a given mp3 file - This will load, decode and assign the file to audren +Mp3File* LoadMP3File(AudioDriver* audioDriver, const char* filename) +{ + mpg123_handle* mpgHandle = NULL; + int channels = 0; + int encoding = 0; + long rate = 0; + int err = MPG123_OK; + + // Create a new mpg123 handle, Open the file, get the format of the file + if ((mpgHandle = mpg123_new(NULL, &err)) == NULL || + mpg123_open(mpgHandle, filename) != MPG123_OK || + mpg123_getformat(mpgHandle, &rate, &channels, &encoding) != MPG123_OK) + { + printf("Trouble with mpg123: %s with file: %s\n", mpgHandle == NULL ? mpg123_plain_strerror(err) : mpg123_strerror(mpgHandle), filename); + CleanupMPGHandle(mpgHandle); + return nullptr; + } + + // Ensure that this output format will not change (it could, when we allow it). + mpg123_format_none(mpgHandle); + mpg123_format(mpgHandle, rate, channels, encoding); + + // Get the length of the file + int length = mpg123_length(mpgHandle); + if (length == MPG123_ERR) + { + printf("Trouble with mpg123 getting length of file: %s \n", filename); + CleanupMPGHandle(mpgHandle); + return nullptr; + } + + // Create a buffer. Must be 4096 byte aligned. + int buffer_size = ((length * channels) + 0xFFF) & ~0xFFF; + unsigned char* buffer = (unsigned char*)memalign(0x1000, buffer_size); + armDCacheFlush(buffer, buffer_size); + + // Read and decode the mp3 into the buffer, here we are just reading the entire file into memory. You can do this in chunks too for streaming audio. + size_t done = 0; + err = mpg123_read(mpgHandle, buffer, buffer_size, &done); + if (err != MPG123_OK) + { + printf("file not read into buffer correctly\n"); + CleanupMPGHandle(mpgHandle); + free((void*)buffer); + return nullptr; + } + + // Setup the MP3File + Mp3File* mp3File = new Mp3File(); + + // Set the mpg123 handle - We need this to release later + mp3File->handle = mpgHandle; + + // Set the metadata - this is just for information, it's not required + mp3File->channels = channels; + mp3File->rate = rate; + mp3File->length = length / rate; + + // Setup the wave buffer that audren will use when playing this sound. It stores our allocated buffer and size + mp3File->WaveBuff = { 0 }; + mp3File->WaveBuff.data_raw = (const void*)buffer; + mp3File->WaveBuff.size = buffer_size; + mp3File->WaveBuff.start_sample_offset = 0; + mp3File->WaveBuff.end_sample_offset = done / 2; + + // Assin the memory to audren - this is important to let audren know what memory it's able to use. Store the Map ID to allow us to free later + mp3File->audrenMpid = audrvMemPoolAdd(audioDriver, (void*)buffer, buffer_size); + audrvMemPoolAttach(audioDriver, mp3File->audrenMpid); + + return mp3File; +} + +// Unloads the mp3 file - returning audren resources and mpg123 resources. mp3 will no longer be valid. +void UnloadMP3File(AudioDriver* audioDriver, Mp3File* mp3) +{ + if (audioDriver == nullptr) return; + if (mp3 == nullptr) return; + + // Detach and remove the memory from audren + audrvMemPoolDetach(audioDriver, mp3->audrenMpid); + audrvMemPoolRemove(audioDriver, mp3->audrenMpid); + + // Free all our memory and handles + free((void*)mp3->WaveBuff.data_raw); + CleanupMPGHandle(mp3->handle); + delete mp3; +} + +// == + +void PlayMp3File(AudioDriver* audioDriver, Mp3File* mp3, int id, bool loop) +{ + // Should the music loop + mp3->WaveBuff.is_looping = loop; + + audrvVoiceStop(audioDriver, id); // Stop the previous music playing on this id + audrvVoiceAddWaveBuf(audioDriver, id, &(mp3->WaveBuff)); // Set the WaveBuf to this id + audrvVoiceStart(audioDriver, id); // Play the music assigned to this id - which is now our mp3 file +} + +// == + +int main(void) +{ + // Initialize the default console + consoleInit(NULL); + + // Initialize and mount the rom file system 'romfs:/' - This will give you access to the files in the romfs folder + romfsInit(); + + // Initialize mpg123 + mpg123_init(); + + // Configure our supported input layout: a single player with standard controller styles + padConfigureInput(1, HidNpadStyleSet_NpadStandard); + + // Initialize the default gamepad (which reads handheld mode inputs as well as the first connected controller) + PadState pad; + padInitializeDefault(&pad); + + // Initialize Audren + printf("Simple audren demonstration with mpg123 for loading mp3 files\n\n"); + + static const AudioRendererConfig arConfig = + { + .output_rate = AudioRendererOutputRate_48kHz, + .num_voices = 24, + .num_effects = 0, + .num_sinks = 1, + .num_mix_objs = 1, + .num_mix_buffers = 2, + }; + + AudioDriver audioDriver; + Result res = audrenInitialize(&arConfig); + bool initedDriver = false; + bool initedAudren = R_SUCCEEDED(res); + if (!initedAudren) + { + printf("audrenInitialize Failed: %08" PRIx32 "\n", res); + } + else + { + printf("Audren Initialized\n"); + res = audrvCreate(&audioDriver, &arConfig, 2); + initedDriver = R_SUCCEEDED(res); + if (!initedDriver) + { + printf("audrvCreate Failed: %08" PRIx32 "\n", res); + } + else + { + static const u8 sink_channels[] = { 0, 1 }; + audrvDeviceSinkAdd(&audioDriver, AUDREN_DEFAULT_DEVICE_NAME, 2, sink_channels); + + res = audrvUpdate(&audioDriver); + printf("audrvUpdate: %" PRIx32 "\n", res); + + res = audrenStartAudioRenderer(); + printf("audrenStartAudioRenderer: %" PRIx32 "\n", res); + + audrvVoiceInit(&audioDriver, 0, 1, PcmFormat_Int16, 48000); + audrvVoiceSetDestinationMix(&audioDriver, 0, AUDREN_FINAL_MIX_ID); + audrvVoiceSetMixFactor(&audioDriver, 0, 1.0f, 0, 0); + audrvVoiceSetMixFactor(&audioDriver, 0, 1.0f, 0, 1); + audrvVoiceStart(&audioDriver, 0); + } + } + + // Load a Mp3 File + Mp3File* music = LoadMP3File(&audioDriver, "romfs:/test.mp3"); + if (music == nullptr) + { + printf("Failed to load mp3 file\n"); + } + else + { + printf("\nLoaded MP3 File Successfully. Details:\n"); + printf("Channels: %d\nRate: %ld\nLength: %f\nbuffer_size: %ld\nleftSamples: %d\noffset: %d\n\n", + music->channels, music->rate, music->length, music->WaveBuff.size, music->WaveBuff.end_sample_offset, music->WaveBuff.start_sample_offset); + } + + printf("Press A to play the mp3 file.\n"); + + // Main loop + while (appletMainLoop()) + { + padUpdate(&pad); // Update the gamepad + u64 kDown = padGetButtonsDown(&pad); // Get a bitmask of the buttons pressed this frame + if (kDown & HidNpadButton_Plus) break; // If we pressed the + button - return to HB menu + + if (initedDriver && music != nullptr) + { + if (kDown & HidNpadButton_A) + { + PlayMp3File(&audioDriver, music, 0, false); + } + + // Update Audren + res = audrvUpdate(&audioDriver); + if (R_FAILED(res)) printf("audrvUpdate Failed: %" PRIx32 "\n", res); + if (music->WaveBuff.state == AudioDriverWaveBufState_Playing) printf("Played Samples = %" PRIu32 "\n", audrvVoiceGetPlayedSampleCount(&audioDriver, 0)); + } + + // Update the default console - sending a new frame + consoleUpdate(NULL); + } + + // Unload the MP3 file, releasing resources + UnloadMP3File(&audioDriver, music); + + // Audren Cleanup releasing resources + if (initedDriver) audrvClose(&audioDriver); + if (initedAudren) audrenExit(); + + // Close mpg123 + mpg123_exit(); + + // Close romfs mount + romfsExit(); + + // Close default console and release resources + consoleExit(NULL); + return 0; +}