{"id":21831079,"url":"https://github.com/demberto/pyflp","last_synced_at":"2025-04-12T14:18:29.048Z","repository":{"id":42124544,"uuid":"405060342","full_name":"demberto/PyFLP","owner":"demberto","description":"FL Studio project file parser","archived":false,"fork":false,"pushed_at":"2025-04-07T17:25:48.000Z","size":5767,"stargazers_count":141,"open_issues_count":30,"forks_count":14,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-12T14:18:03.253Z","etag":null,"topics":["binary-format","deserialization","flp","libraries","python","serialization"],"latest_commit_sha":null,"homepage":"https://pyflp.rtfd.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/demberto.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-10T11:41:22.000Z","updated_at":"2025-04-05T15:34:51.000Z","dependencies_parsed_at":"2023-12-25T20:01:42.134Z","dependency_job_id":"acf142cc-001b-47f3-932f-f9fc74988552","html_url":"https://github.com/demberto/PyFLP","commit_stats":{"total_commits":377,"total_committers":11,"mean_commits":34.27272727272727,"dds":"0.46153846153846156","last_synced_commit":"5d2f75ac094579b2831f67723cb234e5ea1e2344"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/demberto%2FPyFLP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/demberto%2FPyFLP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/demberto%2FPyFLP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/demberto%2FPyFLP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/demberto","download_url":"https://codeload.github.com/demberto/PyFLP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248578875,"owners_count":21127714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binary-format","deserialization","flp","libraries","python","serialization"],"created_at":"2024-11-27T19:08:26.203Z","updated_at":"2025-04-12T14:18:29.018Z","avatar_url":"https://github.com/demberto.png","language":"Python","readme":"# PyFLP\n\nPyFLP is an unofficial parser for [FL Studio](https://www.image-line.com/fl-studio/)\nproject and preset files written in Python.\n\n\u003c!-- SHIELDS --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ccolgroup\u003e\n    \u003ccol style=\"width: 10%;\"/\u003e\n    \u003ccol style=\"width: 90%;\"/\u003e\n  \u003c/colgroup\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eCI\u003c/th\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://pyflp.readthedocs.io/en/latest/\"\u003e\n          \u003cimg alt=\"Documentation Build Status\" src=\"https://img.shields.io/readthedocs/pyflp/latest?logo=read-the-docs\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://results.pre-commit.ci/latest/github/demberto/PyFLP/master\"\u003e\n          \u003cimg alt=\"pre-commit-ci\" src=\"https://results.pre-commit.ci/badge/github/demberto/PyFLP/master.svg\"/\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003ePyPI\u003c/th\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://pypi.org/project/PyFLP\"\u003e\n          \u003cimg alt=\"PyPI - Package Version\" src=\"https://img.shields.io/pypi/v/PyFLP\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://pypi.org/project/PyFLP\"\u003e\n          \u003cimg alt=\"PyPI - Supported Python Versions\" src=\"https://img.shields.io/pypi/pyversions/PyFLP?logo=python\u0026amp;logoColor=white\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://pypi.org/project/PyFLP\"\u003e\n          \u003cimg alt=\"PyPI - Supported Implementations\" src=\"https://img.shields.io/pypi/implementation/PyFLP\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://pypi.org/project/PyFLP\"\u003e\n          \u003cimg alt=\"PyPI - Wheel\" src=\"https://img.shields.io/pypi/wheel/PyFLP\"/\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eActivity\u003c/th\u003e\n      \u003ctd\u003e\n        \u003cimg alt=\"Maintenance\" src=\"https://img.shields.io/maintenance/yes/2023\"/\u003e\n        \u003ca href=\"https://pypistats.org/packages/pyflp\"\u003e\n          \u003cimg alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/PyFLP\"/\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eQA\u003c/th\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://codecov.io/gh/demberto/PyFLP\"\u003e\n          \u003cimg alt=\"codecov\" src=\"https://codecov.io/gh/demberto/PyFLP/branch/master/graph/badge.svg?token=RGSRMMF8PF\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://codefactor.io/repository/github/demberto/PyFLP\"\u003e\n          \u003cimg alt=\"CodeFactor Grade\" src=\"https://img.shields.io/codefactor/grade/github/demberto/PyFLP?logo=codefactor\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"http://mypy-lang.org/\"\u003e\n          \u003cimg alt=\"Checked with mypy\" src=\"http://www.mypy-lang.org/static/mypy_badge.svg\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/pre-commit/pre-commit\"\u003e\n          \u003cimg alt=\"pre-commit\" src=\"https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026amp;logoColor=white\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/PyCQA/bandit\"\u003e\n          \u003cimg alt=\"Security Status\" src=\"https://img.shields.io/badge/security-bandit-yellow.svg\"/\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eOther\u003c/th\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://github.com/demberto/PyFLP/blob/master/LICENSE\"\u003e\n          \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/demberto/PyFLP\"/\u003e\n        \u003c/a\u003e\n        \u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/demberto/PyFLP\"/\u003e\n        \u003ca href=\"https://github.com/psf/black\"\u003e\n          \u003cimg alt=\"Code Style: Black\" src=\"https://img.shields.io/badge/code%20style-black-black\"/\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/demberto/PyFLP/blob/master/CODE_OF_CONDUCT.md\"\u003e\n          \u003cimg alt=\"covenant\" src=\"https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg\"/\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- markdownlint-restore --\u003e\n\nFrom a very general point-of-view, this is the state of what is currently\nimplemented. Click on a link to go to the documentation for that feature.\n\n\u003c!-- FEATURE TABLE --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eGroup\u003c/th\u003e\n    \u003cth\u003eFeature\u003c/th\u003e\n    \u003cth\u003eIssues\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"3\"\u003e\n      \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/arrangements.html\"\u003eArrangements\u003c/a\u003e\u003cbr/\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Aarrangement-general\"\u003e\n        \u003cimg alt=\"open arrangement-general issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/arrangement-general?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Aarrangement-general\"\u003e\n        \u003cimg alt=\"closed arrangement-general issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/arrangement-general?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/arrangements.html#playlist\"\u003e🎼 Playlist\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Aarrangement-playlist\"\u003e\n        \u003cimg alt=\"open arrangement-playlist issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/arrangement-playlist?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Aarrangement-playlist\"\u003e\n        \u003cimg alt=\"closed arrangement-playlist issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/arrangement-playlist?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\u003c/tr\u003e \u003c!-- only for formatting ---\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/arrangements.html#track\"\u003e🎞️ Tracks\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Aarrangement-track\"\u003e\n        \u003cimg alt=\"open arrangement-track issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/arrangement-track?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Aarrangement-track\"\u003e\n        \u003cimg alt=\"closed arrangement-track issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/arrangement-track?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"4\"\u003e\n      \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/channels.html\"\u003eChannel Rack\u003c/a\u003e\u003cbr/\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Achannel-general\"\u003e\n        \u003cimg alt=\"open channel-general issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/channel-general?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Achannel-general\"\u003e\n        \u003cimg alt=\"closed channel-general issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/channel-general?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/channels.html#pyflp.channel.Automation\"\u003e📈 Automations\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%channel-automation\"\u003e\n        \u003cimg alt=\"open channel-automation issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/channel-automation?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Achannel-automation\"\u003e\n        \u003cimg alt=\"closed channel-automation issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/channel-automation?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/channels.html#pyflp.channel.Instrument\"\u003e🎹 Instruments\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Achannel-instrument\"\u003e\n        \u003cimg alt=\"channel-instrument issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/channel-instrument?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Achannel-instrument\"\u003e\n        \u003cimg alt=\"closed channel-instrument issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/channel-instrument?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/channels.html#pyflp.channel.Layer\"\u003e📚 Layer\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Achannel-layer\"\u003e\n        \u003cimg alt=\"open channel-layer issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/channel-layer?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Achannel-layer\"\u003e\n        \u003cimg alt=\"closed channel-layer issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/channel-layer?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/channels.html#pyflp.channel.Sampler\"\u003e📁 Sampler\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Achannel-sampler\"\u003e\n        \u003cimg alt=\"open channel-sampler issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/channel-sampler?label=open\u0026style=flat-square\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Achannel-sampler\"\u003e\n        \u003cimg alt=\"closed channel-sampler issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/channel-sampler?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"2\"\u003e\n      \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/mixer.html\"\u003eMixer\u003c/a\u003e\u003cbr/\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Amixer-general\"\u003e\n        \u003cimg alt=\"open mixer-general issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/mixer-general?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Amixer-general\"\u003e\n        \u003cimg alt=\"closed mixer-general issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/mixer-general?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/mixer.html#pyflp.mixer.Insert\"\u003e🎚️ Inserts\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Amixer-insert\"\u003e\n        \u003cimg alt=\"open mixer-insert issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/mixer-insert?label=open\u0026style=flat-square\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Amixer-insert\"\u003e\n        \u003cimg alt=\"closed mixer-insert issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/mixer-insert?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/mixer.html#pyflp.mixer.Slot\"\u003e🎰 Effect slots\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Amixer-slot\"\u003e\n        \u003cimg alt=\"open mixer-slot issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/mixer-slot?label=open\u0026style=flat-square\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Amixer-slot\"\u003e\n        \u003cimg alt=\"closed mixer-slot issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/mixer-slot?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"3\"\u003e\n      \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/patterns.html\"\u003e🎶 Patterns\u003c/a\u003e\u003cbr/\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Apattern-general\"\u003e\n        \u003cimg alt=\"open pattern-general issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/pattern-general?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Apattern-general\"\u003e\n        \u003cimg alt=\"closed pattern-general issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/pattern-general?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/patterns.html#pyflp.pattern.Controller\"\u003e🎛 Controllers\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Apattern-controller\"\u003e\n        \u003cimg alt=\"open pattern-controller issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/pattern-controller?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Apattern-controller\"\u003e\n        \u003cimg alt=\"closed pattern-controller issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/pattern-controller?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/patterns.html#pyflp.pattern.Note\"\u003e🎵 Notes\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Apattern-note\"\u003e\n        \u003cimg alt=\"open pattern-note issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/pattern-note?label=open\u0026style=flat-square\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Apattern-note\"\u003e\n        \u003cimg alt=\"closed pattern-note issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/pattern-note?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\u003c/tr\u003e \u003c!-- for formatting ---\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/timemarkers.html\"\u003e🚩 Timemarkers\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Atimemarker\"\u003e\n        \u003cimg alt=\"open timemarker issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/timemarker?label=open\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Atimemarker\"\u003e\n        \u003cimg alt=\"closed timemarker issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/timemarker?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"2\"\u003e\n      \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/plugins.html\"\u003ePlugins\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      Native -\n      8 \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/plugins.html#effects\"\u003eeffects\u003c/a\u003e,\n      1 \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/plugins.html#generators\"\u003esynth\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Aplugin-native\"\u003e\n        \u003cimg alt=\"open plugin-native issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/plugin-native?label=open\u0026style=flat-square\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Aplugin-native\"\u003e\n        \u003cimg alt=\"closed plugin-native issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/plugin-native?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/plugins.html#pyflp.plugin.VSTPlugin\"\u003eVST 2/3\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Aplugin-3rdparty\"\u003e\n        \u003cimg alt=\"plugin-3rdparty issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/plugin-3rdparty?label=open\u0026style=flat-square\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Aplugin-3rdparty\"\u003e\n        \u003cimg alt=\"closed plugin-3rdparty issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/plugin-3rdparty?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"2\" colspan=\"2\"\u003e\n      \u003ca href=\"https://pyflp.readthedocs.io/en/latest/reference/project.html\"\u003eProject\u003c/a\u003e\n      - Settings and song metadata\n    \u003c/td\u003e\n    \u003ctd colspan=\"2\"\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aopen+is%3Aissue+label%3Aproject-general\"\u003e\n        \u003cimg alt=\"open project-general issues\" src=\"https://img.shields.io/github/issues-raw/demberto/PyFLP/project-general?label=open\u0026style=flat-square\"\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://github.com/demberto/PyFLP/issues?q=is%3Aclosed+is%3Aissue+label%3Aproject-general\"\u003e\n        \u003cimg alt=\"closed project-general issues\" src=\"https://img.shields.io/github/issues-closed-raw/demberto/PyFLP/project-general?label=closed\u0026style=flat-square\"/\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c!-- markdownlint-restore --\u003e\n\n## ⏬ Installation\n\nCPython 3.8+ / PyPy 3.8+ required.\n\n```none\npython -m pip install -U pyflp\n```\n\n## ▶ Usage\n\n[Load](https://pyflp.readthedocs.io/en/latest/reference.html#pyflp.parse) a project file:\n\n```py\nimport pyflp\nproject = pyflp.parse(\"/path/to/parse.flp\")\n```\n\n\u003e If you get any sort of errors or warnings while doing this, please open an\n\u003e [issue](https://github.com/demberto/PyFLP/issues).\n\n[Save](https://pyflp.readthedocs.io/en/latest/reference.html#pyflp.save) the project:\n\n```py\npyflp.save(project, \"/path/to/save.flp\")\n```\n\n\u003e It is advised to do a backup of your projects before doing any changes.\n\u003e It is also recommended to open the modified project in FL Studio to ensure\n\u003e that it works as intended.\n\nCheck the [reference](https://pyflp.rtfd.io/en/latest/reference.html) for a\ncomplete list of useable features.\n\n## 🙏 Acknowledgements\n\n- Monad.FLParser: \u003chttps://github.com/monadgroup/FLParser\u003e\n- FLPEdit (repo deleted by [author](https://github.com/roadcrewworker))\n\n## ✨ Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\nThanks goes to these wonderful people:\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/nickberry17\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/18670565?v=4?s=50\" width=\"50px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003enickberry17\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/demberto/PyFLP/commits?author=nickberry17\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/zacanger\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/12520493?v=4?s=50\" width=\"50px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ezacanger\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/demberto/PyFLP/issues?q=author%3Azacanger\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/demberto/PyFLP/commits?author=zacanger\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/ttaschke\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7067750?v=4?s=50\" width=\"50px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTim\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/demberto/PyFLP/commits?author=ttaschke\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/demberto/PyFLP/commits?author=ttaschke\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#maintenance-ttaschke\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://allcontributors.org/) specification.\nContributions of any kind are welcome!\n\nPlease see the [contributor's guide](https://pyflp.rtfd.io/en/latest/contributing.html)\nfor more information about contributing.\n\n## 📧 Contact\n\nYou can contact me either via [issues](https://github.com/demberto/PyFLP/issues)\nand [discussions](https://github.com/demberto/PyFLP/discussions) or through\nemail via ``demberto(at)proton(dot)me``.\n\n## © License\n\nThe code in this project has been licensed under the\n[GNU Public License v3](https://www.gnu.org/licenses/gpl-3.0.en.html).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdemberto%2Fpyflp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdemberto%2Fpyflp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdemberto%2Fpyflp/lists"}