How To: Music and sounds

In this tutorial you will learn how to work with Audio sub system. You can set playback of any music in section and escape limits of SMBX engine.

Note: Some features which presented on this page (such as Audio namespace) are available since LunaLUA version v0.7.

Playing built-in sounds
You can play any available sounds by it's ID with using of function This example will play SMBX's sound with ID 23. The full list of built-in SMBX's sounds listed here.

Playing custom sounds
You can play any custom sounds which placed in your custom level folder

When you will call this function, the sound file "my ultra-mega cool sfx.ogg" will be once played. You can use any files of supported formats.

You also can take more advanced usage of sounds if you will use Mix_Chunk pointers: This example will play a "loco bell.ogg" file trice when this function will be called

Playing custom sounds loops
This is an example SFX loop usage This is a little example of plane sound which fly about us and go out after 10 seconds.

Simple way
The simplest method of music playback usage is a using of musics from another sections

This function will play a configured music from 5'th section

Advanced way
You have ability to play any available custom music file from your level custom directory if you will use a special functions:

Note 1: Some music formats are supports extra arguments (for example, track number in the music file, or synthesizer flags, more detail info and how to use here)

Note 2: to take working a custom musics by LUA code, you should set current music of target section to any default music and insert into the onLoad event function the call of special function:

This example seizing the music stream for 1'st section. When your character in 1'st section, you will have able to correctly use the musicOpen and any other functions.

Note: Don't forget to set to the target section any default music to confuse SMBX engine to take it think than "music is playing". This way will prevent appear of a bugs on switching between another applications.

Example: Playlist
This is an example of usage multiple musics in one section

This is an example of shuffle music player for 2'nd section which plays each 20 seconds new music from play-list - an array which contain the list of music files which presented in the level custom folder.