Download LMMS
Downloading and using LMMS is free! Just choose the operating system you want to run LMMS on:
Install LMMS on Linux
Click one of the buttons below to download LMMS for Linux.
Unless you were directed here to test a pull request, please download an official build from the main download page instead.
Pull Request #8391
Linux ARM64LMMS #8391 @a687917 Linux
LMMS #8391 @a687917
Add Native SFZ Player
This PR adds a native SFZ instrument loader.
2026-05-15.18-10-15.mp4
It also supports pitch bending, microtuning, and per-note panning:
2026-05-27.17-36-56.mp4
What is SFZ?
SFZ is not SoundFont. SFZ is a modern, text-based, sampled-instrument format which provides incredible amounts of control to the creator and user. By its text-based nature, it is fundamentally open-source.
Countless high-quality SFZ instruments have been created by individuals. Sonatina Symphonic Orchestra is a large collection of orchestral SFZs, from strings, to brass, to wind, to percussion. Metal GTX is a famous electric guitar SFZ, one of the most realistic ones you can get for free. This PR allows you to load these directly into LMMS, without any third-party plugins.
Please check out the information at sfzformat.com if you are unfamiliar with the SFZ format.
Nonetheless, here is a brief overview:
An SFZ file essentially defines which samples are played by which keys (or ranges of keys), in what situations they are played (whether there are conditions on velocity, switch keys, current CC values, etc), and how they are played (what kind of envelopes/lfos, filters, etc).
NOTE: The samples are NOT stored in the .sfz file. The .sfz file contains paths to the samples, which are often stored in a separate folder in .wav or .flac. When you download an SFZ instrument, you usually download a .zip folder which contains both the .sfz file and the audio files.
Example sfz file:
<region>
sample=MyFavoriteSample.flac // The path to the sample file
pitch_keycenter=C4 // The pitch of the sample, where to center it on the keyboard
lovel=0 // Minimum velocity to trigger this region
hivel=63 // Maximum velocity to trigger this region
<region>
sample=MyOtherFavoriteSample.flac
pitch_keycenter=B4
lovel=64
hivel=127
This instrument has two samples, one for low velocities, one for high. These individual settings are call “opcodes”, and there are many many many opcodes supported by various SFZ players (this PR only contains a small subset). There are also headers, which group the opcodes together. Only the <region> header is used here, but other headers for different purposes exist such as <group>, <global>, <control>, etc.
Opcodes
There are many opcodes used by SFZs, too many to fit into this initial PR. However, I have implemented the vast majority of opcodes used by SFZs, so most of them should load fine.
Supported Opcodes
sample
default_path
trigger (partial support)
lokey
hikey
sw_lokey
sw_hikey
sw_last
sw_label
lovel
hivel
offset
loop_mode (partial support)
delay
delayccN
delay_random
tune
key
pitch_keycenter
pitch_veltrack
fil_type
cutoff
resonance
fil_veltrack
amplitude
amplitudeccN
amp_veltrack
ampeg_delay
ampeg_delayccN
ampeg_attack
ampeg_attackccN
ampeg_hold
ampeg_holdccN
ampeg_decay
ampeg_decayccN
ampeg_sustain
ampeg_sustainccN
ampeg_release
ampeg_releaseccN
amplfo_delay
amplfo_delayccN
amplfo_fade
amplfo_fadeccN
amplfo_freq
amplfo_freqccN
amplfo_depth
amplfo_depthccN
pitcheg_delay
pitcheg_delayccN
pitcheg_attack
pitcheg_attackccN
pitcheg_hold
pitcheg_holdccN
pitcheg_decay
pitcheg_decayccN
pitcheg_sustain
pitcheg_sustainccN
pitcheg_release
pitcheg_releaseccN
pitchlfo_delay
pitchlfo_delayccN
pitchlfo_fade
pitchlfo_fadeccN
pitchlfo_freq
pitchlfo_freqccN
pitchlfo_depth
pitchlfo_depthccN
volume
volumeccN
pan
panccN
loccN
hiccN
set_ccN
label_ccN
*_mod
GUI
The GUI is work in progress! This PR is intended to give the core support for loading SFZ files, while the visuals are secondary. In the future, a real GUI is planned.
Currently, only some basic information is shown about the currently loaded SFZ file, the last played sample, and the details of the switch keys. The midi CC knobs which the instrument uses are also shown in the GUI for easy access (they control the models in the instrument track’s midi CC rack).
Testing
Please feel free to test it on whatever SFZ’s you find! If the SFZ makes heavy use of ARIA extenions/extra opcodes, it may not function as well, but it might still work. The SFZ player will print an enormous amount of debug info into the terminal, which is helpful when determining what opcodes still need to be implemented or tracking down bugs.
.AppImage executable before running:chmod +x ~/Downloads/lmms-*.AppImage
Install LMMS on Windows
Click one of the buttons below to download LMMS for Windows
Unless you were directed here to test a pull request, please download an official build from the main download page instead.
Pull Request #8391
WindowsLMMS #8391 @a687917 Windows ARM64
LMMS #8391 @a687917 Windows (msvc)
LMMS #8391 @a687917
Add Native SFZ Player
This PR adds a native SFZ instrument loader.
2026-05-15.18-10-15.mp4
It also supports pitch bending, microtuning, and per-note panning:
2026-05-27.17-36-56.mp4
What is SFZ?
SFZ is not SoundFont. SFZ is a modern, text-based, sampled-instrument format which provides incredible amounts of control to the creator and user. By its text-based nature, it is fundamentally open-source.
Countless high-quality SFZ instruments have been created by individuals. Sonatina Symphonic Orchestra is a large collection of orchestral SFZs, from strings, to brass, to wind, to percussion. Metal GTX is a famous electric guitar SFZ, one of the most realistic ones you can get for free. This PR allows you to load these directly into LMMS, without any third-party plugins.
Please check out the information at sfzformat.com if you are unfamiliar with the SFZ format.
Nonetheless, here is a brief overview:
An SFZ file essentially defines which samples are played by which keys (or ranges of keys), in what situations they are played (whether there are conditions on velocity, switch keys, current CC values, etc), and how they are played (what kind of envelopes/lfos, filters, etc).
NOTE: The samples are NOT stored in the .sfz file. The .sfz file contains paths to the samples, which are often stored in a separate folder in .wav or .flac. When you download an SFZ instrument, you usually download a .zip folder which contains both the .sfz file and the audio files.
Example sfz file:
<region>
sample=MyFavoriteSample.flac // The path to the sample file
pitch_keycenter=C4 // The pitch of the sample, where to center it on the keyboard
lovel=0 // Minimum velocity to trigger this region
hivel=63 // Maximum velocity to trigger this region
<region>
sample=MyOtherFavoriteSample.flac
pitch_keycenter=B4
lovel=64
hivel=127
This instrument has two samples, one for low velocities, one for high. These individual settings are call “opcodes”, and there are many many many opcodes supported by various SFZ players (this PR only contains a small subset). There are also headers, which group the opcodes together. Only the <region> header is used here, but other headers for different purposes exist such as <group>, <global>, <control>, etc.
Opcodes
There are many opcodes used by SFZs, too many to fit into this initial PR. However, I have implemented the vast majority of opcodes used by SFZs, so most of them should load fine.
Supported Opcodes
sample
default_path
trigger (partial support)
lokey
hikey
sw_lokey
sw_hikey
sw_last
sw_label
lovel
hivel
offset
loop_mode (partial support)
delay
delayccN
delay_random
tune
key
pitch_keycenter
pitch_veltrack
fil_type
cutoff
resonance
fil_veltrack
amplitude
amplitudeccN
amp_veltrack
ampeg_delay
ampeg_delayccN
ampeg_attack
ampeg_attackccN
ampeg_hold
ampeg_holdccN
ampeg_decay
ampeg_decayccN
ampeg_sustain
ampeg_sustainccN
ampeg_release
ampeg_releaseccN
amplfo_delay
amplfo_delayccN
amplfo_fade
amplfo_fadeccN
amplfo_freq
amplfo_freqccN
amplfo_depth
amplfo_depthccN
pitcheg_delay
pitcheg_delayccN
pitcheg_attack
pitcheg_attackccN
pitcheg_hold
pitcheg_holdccN
pitcheg_decay
pitcheg_decayccN
pitcheg_sustain
pitcheg_sustainccN
pitcheg_release
pitcheg_releaseccN
pitchlfo_delay
pitchlfo_delayccN
pitchlfo_fade
pitchlfo_fadeccN
pitchlfo_freq
pitchlfo_freqccN
pitchlfo_depth
pitchlfo_depthccN
volume
volumeccN
pan
panccN
loccN
hiccN
set_ccN
label_ccN
*_mod
GUI
The GUI is work in progress! This PR is intended to give the core support for loading SFZ files, while the visuals are secondary. In the future, a real GUI is planned.
Currently, only some basic information is shown about the currently loaded SFZ file, the last played sample, and the details of the switch keys. The midi CC knobs which the instrument uses are also shown in the GUI for easy access (they control the models in the instrument track’s midi CC rack).
Testing
Please feel free to test it on whatever SFZ’s you find! If the SFZ makes heavy use of ARIA extenions/extra opcodes, it may not function as well, but it might still work. The SFZ player will print an enormous amount of debug info into the terminal, which is helpful when determining what opcodes still need to be implemented or tracking down bugs.
Install LMMS on macOS
Click one of the buttons below to download LMMS for macOS
Unless you were directed here to test a pull request, please download an official build from the main download page instead.
Pull Request #8391
macOS IntelLMMS #8391 @a687917 macOS
LMMS #8391 @a687917
Add Native SFZ Player
This PR adds a native SFZ instrument loader.
2026-05-15.18-10-15.mp4
It also supports pitch bending, microtuning, and per-note panning:
2026-05-27.17-36-56.mp4
What is SFZ?
SFZ is not SoundFont. SFZ is a modern, text-based, sampled-instrument format which provides incredible amounts of control to the creator and user. By its text-based nature, it is fundamentally open-source.
Countless high-quality SFZ instruments have been created by individuals. Sonatina Symphonic Orchestra is a large collection of orchestral SFZs, from strings, to brass, to wind, to percussion. Metal GTX is a famous electric guitar SFZ, one of the most realistic ones you can get for free. This PR allows you to load these directly into LMMS, without any third-party plugins.
Please check out the information at sfzformat.com if you are unfamiliar with the SFZ format.
Nonetheless, here is a brief overview:
An SFZ file essentially defines which samples are played by which keys (or ranges of keys), in what situations they are played (whether there are conditions on velocity, switch keys, current CC values, etc), and how they are played (what kind of envelopes/lfos, filters, etc).
NOTE: The samples are NOT stored in the .sfz file. The .sfz file contains paths to the samples, which are often stored in a separate folder in .wav or .flac. When you download an SFZ instrument, you usually download a .zip folder which contains both the .sfz file and the audio files.
Example sfz file:
<region>
sample=MyFavoriteSample.flac // The path to the sample file
pitch_keycenter=C4 // The pitch of the sample, where to center it on the keyboard
lovel=0 // Minimum velocity to trigger this region
hivel=63 // Maximum velocity to trigger this region
<region>
sample=MyOtherFavoriteSample.flac
pitch_keycenter=B4
lovel=64
hivel=127
This instrument has two samples, one for low velocities, one for high. These individual settings are call “opcodes”, and there are many many many opcodes supported by various SFZ players (this PR only contains a small subset). There are also headers, which group the opcodes together. Only the <region> header is used here, but other headers for different purposes exist such as <group>, <global>, <control>, etc.
Opcodes
There are many opcodes used by SFZs, too many to fit into this initial PR. However, I have implemented the vast majority of opcodes used by SFZs, so most of them should load fine.
Supported Opcodes
sample
default_path
trigger (partial support)
lokey
hikey
sw_lokey
sw_hikey
sw_last
sw_label
lovel
hivel
offset
loop_mode (partial support)
delay
delayccN
delay_random
tune
key
pitch_keycenter
pitch_veltrack
fil_type
cutoff
resonance
fil_veltrack
amplitude
amplitudeccN
amp_veltrack
ampeg_delay
ampeg_delayccN
ampeg_attack
ampeg_attackccN
ampeg_hold
ampeg_holdccN
ampeg_decay
ampeg_decayccN
ampeg_sustain
ampeg_sustainccN
ampeg_release
ampeg_releaseccN
amplfo_delay
amplfo_delayccN
amplfo_fade
amplfo_fadeccN
amplfo_freq
amplfo_freqccN
amplfo_depth
amplfo_depthccN
pitcheg_delay
pitcheg_delayccN
pitcheg_attack
pitcheg_attackccN
pitcheg_hold
pitcheg_holdccN
pitcheg_decay
pitcheg_decayccN
pitcheg_sustain
pitcheg_sustainccN
pitcheg_release
pitcheg_releaseccN
pitchlfo_delay
pitchlfo_delayccN
pitchlfo_fade
pitchlfo_fadeccN
pitchlfo_freq
pitchlfo_freqccN
pitchlfo_depth
pitchlfo_depthccN
volume
volumeccN
pan
panccN
loccN
hiccN
set_ccN
label_ccN
*_mod
GUI
The GUI is work in progress! This PR is intended to give the core support for loading SFZ files, while the visuals are secondary. In the future, a real GUI is planned.
Currently, only some basic information is shown about the currently loaded SFZ file, the last played sample, and the details of the switch keys. The midi CC knobs which the instrument uses are also shown in the GUI for easy access (they control the models in the instrument track’s midi CC rack).
Testing
Please feel free to test it on whatever SFZ’s you find! If the SFZ makes heavy use of ARIA extenions/extra opcodes, it may not function as well, but it might still work. The SFZ player will print an enormous amount of debug info into the terminal, which is helpful when determining what opcodes still need to be implemented or tracking down bugs.
sudo xattr -d -r com.apple.quarantine /Applications/LMMS.app