Skip to main content

FL Studio project file parser

Project description

PyFLP

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

CI build 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.

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

✨ Contributors

All 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyflp-2.0.0a3.tar.gz (1.3 MB view hashes)

Uploaded Source

Built Distribution

pyflp-2.0.0a3-py3-none-any.whl (67.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page