FL Studio project file parser
Project description
PyFLP
PyFLP is an unofficial parser for FL Studio project and preset files written in Python.
CI | |
---|---|
PyPI | |
Activity | |
QA | |
Other |
From a very general point-of-view, this is the state of what is currently implemented.
Group | Feature | Implementation |
---|---|---|
Arrangements | 🎼 Playlist | 🚧 Work in progress |
🚩 Timemarkers | ✅ Implemented | |
Tracks | ✅ Implemented | |
Channel Rack | 📈 Automations | 📌 Currently WIP |
🎹 Instruments | ✅ Implemented | |
Layer | ✅ Implemented | |
📁 Sampler | 🚀 Almost there | |
Mixer | 🎚️ Inserts | ✅ Implemented |
🎰 Effect slots | ✅ Implemented | |
Patterns | 🎛 Controllers | 🚧 Work in progress |
🎵 Notes | ✅ Implemented | |
🚩 Timemarkers | ⏰ Planned | |
Plugins | Native | 7 effects, 1 synth |
3rd party | VST 2/3, Waveshells | |
Misc | ℹ Song information and project settings |
⏬ Installation
Python 3.7+ required (CPython is tested, alternate implementations like PyPy might work but are currently untested):
python -m pip install -U --pre pyflp
The pre-release version is more stable and supported than the current stable version. Please prefer to use it over the legacy 1.x versions.
▶ Usage
Load a project file:
import pyflp
project = pyflp.parse("/path/to/parse.flp")
Save the project:
pyflp.save(project, "/path/to/save.flp")
The format used by FL Studio - the "FLP format" is essentially undocumented. Every new version of FL Studio brings a change in the format and might break PyFLP. It is advised to do a backup of your projects before doing any changes. After you are done with them, it is recommended to open the modified project in FL Studio one to ensure that it works as intended.
PyFLP provides a low-level events-based API and a high-level API. Generally, you should only need the high level API though.
🙏 Acknowledgements
- Monad.FLParser: https://github.com/monadgroup/FLParser
- FLPEdit (repo deleted by author)
✨ Contributors
Thanks goes to these wonderful people (emoji key):
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.