Metadata
Prerequisite
This section requires a basic understanding of SoundFont 2.04 and binary.
SoundFont metadata is accessible through SoundFont3.metaData. This data mainly used for library management and player config.
- Only
ifil,isngandINAMare essential. - All chunks must have even number of bytes.
- String chunks must terminate with 1 or 2 byte zero padding.
ifil - SoundFont version
Accessible through SoundFont3.metaData.version.
Version for detecting parsing compatability - v2 and v3 are different.
// Equates to version 2.04
uint16_t soundFontVersionMajor = 2 // 2 byte
uint16_t soundFontVersionMinor = 4 // 2 byte
// 4 byte totalisng - Sound engine
Accessible through SoundFont3.metaData.soundEngine
Indentifies wavetable sound engine to use. Default value is "emu8000", also known as the MIDI synth.
char[] soundEngine = "emu8000" // 0 to 256 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte totalINAM - SoundFont bank
Accessible through SoundFont3.metaData.name
Name of the SoundFont bank for mapping MIDI signals to sample. The default value is "General MIDI".
char[] soundFontBank = "General MIDI" // 0 to 256 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte totalirom - Sound ROM samples reference
Accessible through SoundFont3.metaData.rom
Identifies a particular wavetable sound data ROM. Requires iver if defined.
char[] wavetableRom = "lmgm" // 0 to 256 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte totaliver - Sound ROM revision
Accessible through SoundFont3.metaData.romVersion
Version of wavetable sound data ROM. Requires irom if defined.
// Equates to version 3.14
uint16_t romVersionMajor = 3 // 2 byte
uint16_t romVersionMinor = 14 // 2 byte
// 4 byte totalICRD - Creation mm/dd/yy
Accessible through SoundFont3.metaData.creationDate
SoundFont bank creation date in "Month, Day, Year" format. Should ideally be 32 bytes or less. It is mainly used for library management.
char[] creationDate = "May, 1, 1995" // 0 to 256 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte totalIENG - SoundFont author
Accessible through SoundFont3.metaData.author
char[] soundFontAuthor = "John Smith" // 0 to 256 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte totalIPDR - For this product
Accessible through SoundFont3.metaData.product
The specific product the SoundFont is intended for.
char[] soundFontProduct = "sbawe32" // 0 to 256 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte totalICOP - Copyright
Accessible through SoundFont3.metaData.copyright
char[] copyright = "Copyright (c) 1995 E-mu Systems. Inc" // 0 to 256 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte totalICMT - Comments
Accessible through SoundFont3.metaData.comments
char[] comments = "No comment." // 0 to 65536 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte totalISFT - Tool created SoundFont
Accessible through SoundFont3.metaData.createdBy
Name tools used to create or modify soundfont.
char[] createdBy = "Preditor 2.00a" // 0 to 256 byte
char[] zeroPadding = 0 // 1 or 2 byte
// Even number of byte total