Project#

class pyflp.project.Project[source]#

Represents an FL Studio project.

Information page
Settings page
property arrangements: Arrangements#

Provides an iterator over arrangements and other related properties.

artists: str | None#

Authors / artists info. to be embedded in exported WAV & MP3.

Options ‣ Project info ‣ Author

New in FL Studio v5.0.

property channel_count: int#

Number of channels in the rack.

For Patcher presets, the total number of plugins used inside it.

Raises:

ValueError – When a value less than zero is tried to be set.

property channels: ChannelRack#

Provides an iterator over channels and channel rack properties.

comments: str | None#

Comments / project description / summary.

Options ‣ Project info ‣ Comments

Caution

Very old versions of FL used to store comments in RTF (Rich Text Format). PyFLP makes no efforts to parse that and stores it like a normal string as it is. It is upto you to extract the text out of it.

property created_on: datetime | None#

The local date and time on which this project was created.

Located at the bottom of Options ‣ Project info page.

property data_path: Path | None#

The absolute path used by FL to store all your renders.

Options ‣ Project general settings ‣ Data folder

New in FL Studio v9.0.0.

format: FileFormat#

Internal format marker used by FL Studio to distinguish between types.

genre: str | None#
https://img.shields.io/badge/FL%20Studio-5.0+-5f686d?labelColor=ff7629&style=for-the-badge

Genre of the song to be embedded in exported WAV & MP3.

Options ‣ Project info ‣ Genre

licensed: bool | None#

Whether the project was last saved with a licensed copy of FL Studio.

Tip

Setting this to True and saving back the FLP will make it load the next time in a trial version of FL if it wouldn’t open before.

property licensee: str | None#
https://img.shields.io/badge/FL%20Studio-1.3.9+-5f686d?labelColor=ff7629&style=for-the-badge

The license holder’s username who last saved the project file.

If saved with a trial version this is empty.

Tip

As of the latest version, FL doesn’t check for the contents of this for deciding whether to open or not when in trial version.

looped: bool | None#

Whether a portion of the playlist is selected.

main_pitch: int | None#

Master pitch (in cents). Min = -1200. Max = +1200. Defaults to 0.

main_volume: int | None#

Can be upto 125% (+5.6dB) now.

Type:

Changed in FL Studio v1.7.6

property mixer: Mixer#

Provides an iterator over inserts and other mixer related properties.

pan_law: PanLaw | None#

Whether a circular or a triangular pan law is used for the project.

Options -> Project general settings -> Advanced -> Panning law

property patterns: Patterns#

Returns a collection of patterns and other related properties.

property ppq: int#

Pulses per quarter.

Options ‣ Project general settings ‣ Timebase (PPQ).

Note

All types of lengths, positions and offsets internally use the PPQ as a multiplying factor.

Danger

Don’t try to set this property, it affects all the length, position and offset calculations used for deciding the placement of playlist, automations, timemarkers and patterns.

When you change this in FL, it recalculates all the above. It is beyond PyFLP’s scope to properly recalculate the timings.

Raises:

ValueError – When a value not in VALID_PPQS is tried to be set.

Changed in FL Studio v2.1.1: Defaults to 96.

show_info: bool | None#

Whether to show a banner while the project is loading inside FL Studio.

Options ‣ Project info ‣ Show info on opening

The banner shows the title, artists, genre, comments and url.

property tempo: int | float | None#

Tempo at the current position of the playhead (in BPM).

Raises:
  • TypeError – When a fine-tuned tempo (float) isn’t supported. Use an int (coarse tempo) value.

  • PropertyCannotBeSet – If underlying event isn’t found.

  • ValueError – When a tempo outside the allowed range is set.

  • Changed in FL Studio v1.4.2: Max tempo increased to 999 (int).

  • New in FL Studio v3.4.0: Fine tuned tempo (a float).

  • Changed in FL Studio v11Max tempo limited to 522.000.

    Probably when tempo automations

property time_spent: timedelta | None#

Time spent on the project since its creation.

Located at the bottom of Options ‣ Project info page.

title: str | None#

Name of the song / project.

Options ‣ Project info ‣ Title

url: str | None#

Options ‣ Project info ‣ Web link.

property version: FLVersion#

The version of FL Studio which was used to save the file.

Located at the top of Help ‣ About page.

Caution

Changing this to a lower version will not make a file load magically inside FL Studio, as newer events and/or plugins might have been used.

Raises:
  • PropertyCannotBeSet – This error should NEVER occur; if it does, it indicates possible corruption.

  • ValueError – When a string with an invalid format is tried to be set.

Enums#

class pyflp.project.FileFormat[source]#
New in FL Studio v2.5.0

FST (FL Studio state) file format.#

File formats used by FL Studio.

None_ = -1#

Temporary file.

Project = 0#

FL Studio project (.flp).

Score = 16#

FL Studio score (.fsc). Stores pattern notes and controller events.

Automation = 24#

Stores controller events and automation channels as FST.

ChannelState = 32#

Entire channel (including plugin events). Stored as FST.

PluginState = 48#

Events of a native plugin on a channel or insert slot. Stored as FST.

GeneratorState = 49#

Plugins events of a VST instrument. Stored as FST.

FXState = 50#

Plugin events of a VST effect. Stored as FST.

InsertState = 64#

Insert and all its slots. Stored as FST.

class pyflp.project.PanLaw[source]#

Used by Project.pan_law.

Circular = 0#
Triangular = 2#
class pyflp.project.ProjectID[source]#
LoopActive = 9#
ShowInfo = 10#
_Volume = 12#
PanLaw = 23#
Licensed = 28#
_TempoCoarse = 66#
Pitch = 80#
_TempoFine = 93#
https://img.shields.io/badge/FL%20Studio-3.4.0+-5f686d?labelColor=ff7629&style=for-the-badge
CurGroupId = 146#
Tempo = 156#
FLBuild = 159#
Title = 194#
Comments = 195#
Url = 197#
_RTFComments = 198#
https://img.shields.io/badge/FL%20Studio-1.2.10+-5f686d?labelColor=ff7629&style=for-the-badge
FLVersion = 199#
Licensee = 200#
https://img.shields.io/badge/FL%20Studio-1.3.9+-5f686d?labelColor=ff7629&style=for-the-badge
DataPath = 202#
https://img.shields.io/badge/FL%20Studio-9.0+-5f686d?labelColor=ff7629&style=for-the-badge
Genre = 206#
https://img.shields.io/badge/FL%20Studio-5.0+-5f686d?labelColor=ff7629&style=for-the-badge
Artists = 207#
https://img.shields.io/badge/FL%20Studio-5.0+-5f686d?labelColor=ff7629&style=for-the-badge
Timestamp = 237#