Music: MOD, S3M, XM, MIDI, MP3
Tracker music (MOD, S3M, XM — one song per format at a time), MIDI through a SoundFont / the system sound bank, and MP3 (emulator only).
Conventions on every page: Availability says whether a symbol exists on the console BIOS, the emulator, or both. c8b and C8B are the same table.
Contents
- ProTracker MOD (c8b.mod)
c8b.mod.loadc8b.mod.unloadc8b.mod.playc8b.mod.stopc8b.mod.pausec8b.mod.resumec8b.mod.setVolumec8b.mod.getVolumec8b.mod.setLoopingc8b.mod.isPlayingc8b.mod.isPausedc8b.mod.isLoadedc8b.mod.getPositionc8b.mod.setPositionc8b.mod.getRowc8b.mod.getTitlec8b.mod.getNumChannelsc8b.mod.getSongLengthc8b.mod.setBassBoostc8b.mod.setWarmthc8b.mod.isBassBoostEnabledc8b.mod.isWarmthEnabledc8b.mod.getBPMc8b.mod.getTempo
- Scream Tracker 3 (c8b.s3m)
c8b.s3m.loadc8b.s3m.unloadc8b.s3m.playc8b.s3m.stopc8b.s3m.pausec8b.s3m.resumec8b.s3m.setVolumec8b.s3m.getVolumec8b.s3m.setLoopingc8b.s3m.isPlayingc8b.s3m.isPausedc8b.s3m.isLoadedc8b.s3m.getPositionc8b.s3m.setPositionc8b.s3m.getRowc8b.s3m.getTitlec8b.s3m.getNumChannelsc8b.s3m.getSongLengthc8b.s3m.setBassBoostc8b.s3m.setWarmthc8b.s3m.isBassBoostEnabledc8b.s3m.isWarmthEnabledc8b.s3m.getBPMc8b.s3m.getSpeed
- FastTracker 2 XM (c8b.xm)
c8b.xm.loadc8b.xm.unloadc8b.xm.playc8b.xm.stopc8b.xm.pausec8b.xm.resumec8b.xm.setVolumec8b.xm.getVolumec8b.xm.setLoopingc8b.xm.isPlayingc8b.xm.isPausedc8b.xm.isLoadedc8b.xm.getPositionc8b.xm.setPositionc8b.xm.getRowc8b.xm.getTitlec8b.xm.getNumChannelsc8b.xm.getSongLengthc8b.xm.setBassBoostc8b.xm.setWarmthc8b.xm.isBassBoostEnabledc8b.xm.isWarmthEnabledc8b.xm.getBPMc8b.xm.getTempo
- MIDI (c8b.midi, SF2/system sound bank)
c8b.midi.initc8b.midi.initFromQSPIc8b.midi.isInitializedc8b.midi.hasSoundFontc8b.midi.shutdownc8b.midi.loadc8b.midi.loadFromPointerc8b.midi.playc8b.midi.stopc8b.midi.pausec8b.midi.resumec8b.midi.isPlayingc8b.midi.isLoadedc8b.midi.setVolumec8b.midi.getVolumec8b.midi.setLoopingc8b.midi.getPositionc8b.midi.getDurationc8b.midi.seekc8b.midi.getPresetCountc8b.midi.getPresetNamec8b.midi.setBassBoostc8b.midi.isBassBoostEnabledc8b.midi.setWarmthc8b.midi.isWarmthEnabledc8b.midi.getPatternPositionc8b.midi.getRowc8b.midi.getSongLengthc8b.midi.getNumChannels
- MP3 (c8b.mp3)
ProTracker MOD (c8b.mod)
c8b.mod.load
c8b.mod.load(path)
Loads a module file (stops the current song).
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mod.load("music/song.mod")
c8b.mod.setLooping(true)
c8b.mod.play()
c8b.mod.unload
c8b.mod.unload()
Frees the loaded module.
- Availability: Console (BIOS) and emulator
c8b.mod.play
c8b.mod.play()
Starts playback.
- Availability: Console (BIOS) and emulator
c8b.mod.stop
c8b.mod.stop()
Stops playback.
- Availability: Console (BIOS) and emulator
c8b.mod.pause
c8b.mod.pause()
Pauses.
- Availability: Console (BIOS) and emulator
c8b.mod.resume
c8b.mod.resume()
Resumes.
- Availability: Console (BIOS) and emulator
c8b.mod.setVolume
c8b.mod.setVolume(volume)
Volume 0-64 (clamped; integer).
- Availability: Console (BIOS) and emulator
c8b.mod.getVolume
c8b.mod.getVolume()
Volume 0-64.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.mod.setLooping
c8b.mod.setLooping(flag)
Loop at song end.
- Availability: Console (BIOS) and emulator
c8b.mod.isPlaying
c8b.mod.isPlaying()
Playing state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mod.isPaused
c8b.mod.isPaused()
Paused state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mod.isLoaded
c8b.mod.isLoaded()
Whether a module is loaded.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mod.getPosition
c8b.mod.getPosition()
Current order (song) position.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.mod.setPosition
c8b.mod.setPosition(order)
Jumps to an order position.
- Availability: Console (BIOS) and emulator
c8b.mod.getRow
c8b.mod.getRow()
Current row in the pattern.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.mod.getTitle
c8b.mod.getTitle()
Module title.
- Returns: string
- Availability: Console (BIOS) and emulator
c8b.mod.getNumChannels
c8b.mod.getNumChannels()
Channel count.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.mod.getSongLength
c8b.mod.getSongLength()
Number of orders.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.mod.setBassBoost
c8b.mod.setBassBoost(enabled, [gainDb=6])
Player bass boost.
- Availability: Console (BIOS) and emulator
c8b.mod.setWarmth
c8b.mod.setWarmth(enabled, [amount=128])
Player warmth filter.
- Availability: Console (BIOS) and emulator
c8b.mod.isBassBoostEnabled
c8b.mod.isBassBoostEnabled()
Bass boost state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mod.isWarmthEnabled
c8b.mod.isWarmthEnabled()
Warmth state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mod.getBPM
c8b.mod.getBPM()
Current BPM.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.mod.getTempo
c8b.mod.getTempo()
Current tempo/speed value (ticks per row).
- Returns: integer
- Availability: Console (BIOS) and emulator
Scream Tracker 3 (c8b.s3m)
c8b.s3m.load
c8b.s3m.load(path)
Loads a module file (stops the current song).
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.s3m.load("music/song.s3m")
c8b.s3m.setLooping(true)
c8b.s3m.play()
c8b.s3m.unload
c8b.s3m.unload()
Frees the loaded module.
- Availability: Console (BIOS) and emulator
c8b.s3m.play
c8b.s3m.play()
Starts playback.
- Availability: Console (BIOS) and emulator
c8b.s3m.stop
c8b.s3m.stop()
Stops playback.
- Availability: Console (BIOS) and emulator
c8b.s3m.pause
c8b.s3m.pause()
Pauses.
- Availability: Console (BIOS) and emulator
c8b.s3m.resume
c8b.s3m.resume()
Resumes.
- Availability: Console (BIOS) and emulator
c8b.s3m.setVolume
c8b.s3m.setVolume(volume)
Volume 0-64 (clamped; integer).
- Availability: Console (BIOS) and emulator
c8b.s3m.getVolume
c8b.s3m.getVolume()
Volume 0-64.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.s3m.setLooping
c8b.s3m.setLooping(flag)
Loop at song end.
- Availability: Console (BIOS) and emulator
c8b.s3m.isPlaying
c8b.s3m.isPlaying()
Playing state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.s3m.isPaused
c8b.s3m.isPaused()
Paused state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.s3m.isLoaded
c8b.s3m.isLoaded()
Whether a module is loaded.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.s3m.getPosition
c8b.s3m.getPosition()
Current order (song) position.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.s3m.setPosition
c8b.s3m.setPosition(order)
Jumps to an order position.
- Availability: Console (BIOS) and emulator
c8b.s3m.getRow
c8b.s3m.getRow()
Current row in the pattern.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.s3m.getTitle
c8b.s3m.getTitle()
Module title.
- Returns: string
- Availability: Console (BIOS) and emulator
c8b.s3m.getNumChannels
c8b.s3m.getNumChannels()
Channel count.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.s3m.getSongLength
c8b.s3m.getSongLength()
Number of orders.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.s3m.setBassBoost
c8b.s3m.setBassBoost(enabled, [gainDb=6])
Player bass boost.
- Availability: Console (BIOS) and emulator
c8b.s3m.setWarmth
c8b.s3m.setWarmth(enabled, [amount=128])
Player warmth filter.
- Availability: Console (BIOS) and emulator
c8b.s3m.isBassBoostEnabled
c8b.s3m.isBassBoostEnabled()
Bass boost state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.s3m.isWarmthEnabled
c8b.s3m.isWarmthEnabled()
Warmth state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.s3m.getBPM
c8b.s3m.getBPM()
Current BPM.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.s3m.getSpeed
c8b.s3m.getSpeed()
Current tempo/speed value (ticks per row).
- Returns: integer
- Availability: Console (BIOS) and emulator
FastTracker 2 XM (c8b.xm)
c8b.xm.load
c8b.xm.load(path)
Loads a module file (stops the current song).
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.xm.load("music/song.xm")
c8b.xm.setLooping(true)
c8b.xm.play()
c8b.xm.unload
c8b.xm.unload()
Frees the loaded module.
- Availability: Console (BIOS) and emulator
c8b.xm.play
c8b.xm.play()
Starts playback.
- Availability: Console (BIOS) and emulator
c8b.xm.stop
c8b.xm.stop()
Stops playback.
- Availability: Console (BIOS) and emulator
c8b.xm.pause
c8b.xm.pause()
Pauses.
- Availability: Console (BIOS) and emulator
c8b.xm.resume
c8b.xm.resume()
Resumes.
- Availability: Console (BIOS) and emulator
c8b.xm.setVolume
c8b.xm.setVolume(volume)
Volume 0-64 (clamped; integer).
- Availability: Console (BIOS) and emulator
c8b.xm.getVolume
c8b.xm.getVolume()
Volume 0-64.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.xm.setLooping
c8b.xm.setLooping(flag)
Loop at song end.
- Availability: Console (BIOS) and emulator
c8b.xm.isPlaying
c8b.xm.isPlaying()
Playing state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.xm.isPaused
c8b.xm.isPaused()
Paused state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.xm.isLoaded
c8b.xm.isLoaded()
Whether a module is loaded.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.xm.getPosition
c8b.xm.getPosition()
Current order (song) position.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.xm.setPosition
c8b.xm.setPosition(order)
Jumps to an order position.
- Availability: Console (BIOS) and emulator
c8b.xm.getRow
c8b.xm.getRow()
Current row in the pattern.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.xm.getTitle
c8b.xm.getTitle()
Module title.
- Returns: string
- Availability: Console (BIOS) and emulator
c8b.xm.getNumChannels
c8b.xm.getNumChannels()
Channel count.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.xm.getSongLength
c8b.xm.getSongLength()
Number of orders.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.xm.setBassBoost
c8b.xm.setBassBoost(enabled, [gainDb=6])
Player bass boost.
- Availability: Console (BIOS) and emulator
c8b.xm.setWarmth
c8b.xm.setWarmth(enabled, [amount=128])
Player warmth filter.
- Availability: Console (BIOS) and emulator
c8b.xm.isBassBoostEnabled
c8b.xm.isBassBoostEnabled()
Bass boost state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.xm.isWarmthEnabled
c8b.xm.isWarmthEnabled()
Warmth state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.xm.getBPM
c8b.xm.getBPM()
Current BPM.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.xm.getTempo
c8b.xm.getTempo()
Current tempo/speed value (ticks per row).
- Returns: integer
- Availability: Console (BIOS) and emulator
MIDI (c8b.midi, SF2/system sound bank)
c8b.midi.init
c8b.midi.init(sf2Path, [sampleRate=22050])
Initialises the synthesizer with an SF2 sound font.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.initFromQSPI
c8b.midi.initFromQSPI([sampleRate=22050])
Initialises from the system sound bank in QSPI flash (emulator: a sound bank loaded at startup). The console does not do this automatically for games.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.isInitialized
c8b.midi.isInitialized()
Whether a sound font is loaded.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.hasSoundFont
c8b.midi.hasSoundFont()
Whether the system sound bank is present.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.shutdown
c8b.midi.shutdown()
Frees the synthesizer.
- Availability: Console (BIOS) and emulator
c8b.midi.load
c8b.midi.load(path)
Loads a .mid file.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.loadFromPointer
c8b.midi.loadFromPointer(ptr, size)
Loads MIDI data from memory (pointer as light userdata or integer, e.g. from a native plugin).
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.play
c8b.midi.play()
Plays.
- Availability: Console (BIOS) and emulator
c8b.midi.stop
c8b.midi.stop()
Stops.
- Availability: Console (BIOS) and emulator
c8b.midi.pause
c8b.midi.pause()
Pauses.
- Availability: Console (BIOS) and emulator
c8b.midi.resume
c8b.midi.resume()
Resumes.
- Availability: Console (BIOS) and emulator
c8b.midi.isPlaying
c8b.midi.isPlaying()
Playing.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.isLoaded
c8b.midi.isLoaded()
Loaded.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.setVolume
c8b.midi.setVolume(v)
Volume 0.0-1.0.
- Availability: Console (BIOS) and emulator
c8b.midi.getVolume
c8b.midi.getVolume()
Volume.
- Returns: number
- Availability: Console (BIOS) and emulator
c8b.midi.setLooping
c8b.midi.setLooping(flag)
Looping.
- Availability: Console (BIOS) and emulator
c8b.midi.getPosition
c8b.midi.getPosition()
Position in ms.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.midi.getDuration
c8b.midi.getDuration()
Duration in ms.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.midi.seek
c8b.midi.seek(ms)
Seeks.
- Availability: Console (BIOS) and emulator
c8b.midi.getPresetCount
c8b.midi.getPresetCount()
Presets in the sound font.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.midi.getPresetName
c8b.midi.getPresetName(index)
Preset name or nil.
- Returns: string
- Availability: Console (BIOS) and emulator
c8b.midi.setBassBoost
c8b.midi.setBassBoost(enabled, [gainDb=4])
Bass boost.
- Availability: Console (BIOS) and emulator
c8b.midi.isBassBoostEnabled
c8b.midi.isBassBoostEnabled()
Bass boost state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.setWarmth
c8b.midi.setWarmth(enabled, [amount=140])
Warmth.
- Availability: Console (BIOS) and emulator
c8b.midi.isWarmthEnabled
c8b.midi.isWarmthEnabled()
Warmth state.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.midi.getPatternPosition
c8b.midi.getPatternPosition()
Virtual pattern index (4 s per pattern) for tracker-style visualisers.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.midi.getRow
c8b.midi.getRow()
Virtual row 0-63.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.midi.getSongLength
c8b.midi.getSongLength()
Number of virtual patterns.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.midi.getNumChannels
c8b.midi.getNumChannels()
Always 16.
- Returns: integer
- Availability: Console (BIOS) and emulator
MP3 (c8b.mp3)
c8b.mp3.load
c8b.mp3.load(path)
Loads an MP3 file.
- Returns: boolean
- Availability: Console (BIOS) and emulator
- Note: MP3 playback works only in the emulator. On the console load returns false and all queries return defaults.
c8b.mp3.play
c8b.mp3.play()
Plays.
- Availability: Console (BIOS) and emulator
c8b.mp3.stop
c8b.mp3.stop()
Stops.
- Availability: Console (BIOS) and emulator
c8b.mp3.pause
c8b.mp3.pause()
Pauses.
- Availability: Console (BIOS) and emulator
c8b.mp3.resume
c8b.mp3.resume()
Resumes.
- Availability: Console (BIOS) and emulator
c8b.mp3.isLoaded
c8b.mp3.isLoaded()
Loaded.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mp3.isPlaying
c8b.mp3.isPlaying()
Playing.
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mp3.setLooping
c8b.mp3.setLooping(flag)
Looping.
- Availability: Console (BIOS) and emulator
c8b.mp3.setVolume
c8b.mp3.setVolume(v)
Volume 0.0-1.0.
- Availability: Console (BIOS) and emulator
c8b.mp3.getVolume
c8b.mp3.getVolume()
Volume.
- Returns: number
- Availability: Console (BIOS) and emulator
c8b.mp3.getPosition
c8b.mp3.getPosition()
Position in ms.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.mp3.getDuration
c8b.mp3.getDuration()
Duration in ms.
- Returns: integer
- Availability: Console (BIOS) and emulator
c8b.mp3.seek
c8b.mp3.seek(ms)
Seeks (negative clamped to 0).
- Returns: boolean
- Availability: Console (BIOS) and emulator
c8b.mp3.getSpectrum
c8b.mp3.getSpectrum()
Spectrum bands of the MP3 stream.
- Returns: table
- Availability: Console (BIOS) and emulator