Skip to content
Β 
Β 

Repository files navigation

PyFLP

PyFLP is an unofficial parser for FL Studio project and preset files written in Python.

CI Documentation Build Status pre-commit-ci
PyPI PyPI - Package Version PyPI - Supported Python Versions PyPI - Supported Implementations PyPI - Wheel
Activity Maintenance PyPI - Downloads
QA codecov CodeFactor Grade Checked with mypy pre-commit Security Status
Other License GitHub top language Code Style: Black covenant

From a very general point-of-view, this is the state of what is currently implemented. Click on a link to go to the documentation for that feature.

Group Feature Issues
Arrangements
open arrangement-general issues closed arrangement-general issues
🎼 Playlist open arrangement-playlist issues closed arrangement-playlist issues
🎞️ Tracks open arrangement-track issues closed arrangement-track issues
Channel Rack
open channel-general issues closed channel-general issues
πŸ“ˆ Automations open channel-automation issues closed channel-automation issues
🎹 Instruments channel-instrument issues closed channel-instrument issues
πŸ“š Layer open channel-layer issues closed channel-layer issues
πŸ“ Sampler open channel-sampler issues closed channel-sampler issues
Mixer
open mixer-general issues closed mixer-general issues
🎚️ Inserts open mixer-insert issues closed mixer-insert issues
🎰 Effect slots open mixer-slot issues closed mixer-slot issues
🎢 Patterns
open pattern-general issues closed pattern-general issues
πŸŽ› Controllers open pattern-controller issues closed pattern-controller issues
🎡 Notes open pattern-note issues closed pattern-note issues
🚩 Timemarkers open timemarker issues closed timemarker issues
Plugins Native - 8 effects, 1 synth open plugin-native issues closed plugin-native issues
VST 2/3 plugin-3rdparty issues closed plugin-3rdparty issues
Project - Settings and song metadata open project-general issues closed project-general issues

⚠️ This is a maintained fork

Upstream demberto/PyFLP has been unmaintained since mid-2023 and cannot parse project files saved by FL Studio 24+ / 25 / 26 (the event stream derails, channels raises NoModelsFound). This fork adds the fixes needed to parse modern projects while staying backward-compatible with older files.

What changed (all verified on FL26.1.1 saves + legacy FL20.5 saves):

  • Event 0xAC is varint-length in FL26, not a fixed 4-byte DWORD β€” this single change fixes the stream desync that broke all FL26 parsing.
  • Playlist items: 80-byte records (FL 2024/25) and 88-byte records (FL26 adds an 8-byte tail), on top of the existing 32/60-byte layouts.
  • Phantom pattern skipped: FL26 writes a small header NotesEvent before any PatternID.New; it no longer surfaces as a bogus pattern (which crashed Pattern.iid / arrangements).
  • Hardening: bounds-checked DisplayGroup indices (FL24+), guarded supports_slice and PluginID.InternalName, and unparseable events degrade to UnknownDataEvent instead of aborting the whole parse.

Install from this fork:

python -m pip install git+https://github.com/Meowrium/PyFLP.git

⏬ Installation

CPython 3.8+ / PyPy 3.8+ required.

python -m pip install -U pyflp

β–Ά Usage

Load a project file:

import pyflp
project = pyflp.parse("/path/to/parse.flp")

If you get any sort of errors or warnings while doing this, please open an issue.

Save the project:

pyflp.save(project, "/path/to/save.flp")

It is advised to do a backup of your projects before doing any changes. It is also recommended to open the modified project in FL Studio to ensure that it works as intended.

Check the reference for a complete list of useable features.

πŸ™ Acknowledgements

✨ Contributors

All Contributors

Thanks goes to these wonderful people:


nickberry17

πŸ’»

zacanger

πŸ› πŸ“–

Tim

πŸ“– πŸ’» 🚧

This project follows the all-contributors specification. Contributions of any kind are welcome!

Please see the contributor's guide for more information about contributing.

πŸ“§ Contact

You can contact me either via issues and discussions or through email via demberto(at)proton(dot)me.

Β© License

The code in this project has been licensed under the GNU Public License v3.

About

FL Studio project file parser

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages