Fl Studio Flp Files

Posted on by admin

A parser for FL Studio project files in .NET.

FLParser is a utility for parsing and structuring project files in FL Studio (FLP files). It is used by the MONAD Demogroup for converting FLP files to a format useable by the demo replayer.

FLParser is based on andrewrk's node-flp, but contains many improvements to clean up code and add compatability for newer versions of FL Studio.

Please note: FLParser is currently in beta. Only the minimal things that we need are currently implemented, and some of them might break - if they do, or you find something new, please submit an issue or pull request.

install

In commandline:

In Visual Studio:

Nuget package coming soon!

use

Load a project with Project.Load:

reference

classes

class Project

Represents an FLP file. Has the following properties: (all get; set;)

class Channel

Represents an individual channel (instrument) in a project. Has the following properties: (all get; set;)

class GeneratorData : IChannelData

Represents channel data for a generator channel (sampler or plugin). Has the following properties: (all get; set;)

class AutomationData : IChannelData

Represents channel data for an automation channel. Has the following properties: (all get; set;)

class AutomationKeyframe

Represents an individual keyframe in an automation track. Has the following properties: (all get; set;)

class Track

Represents a track in a project playlist. Has the following properties: (all get; set;)

class IPlaylistItem

Represents an item in a track. Has the following properties: (all get; set;)

class ChannelPlaylistItem : IPlaylistItem

Represents a sample or automation item in a track. Has the following additional properties: (all get; set;)

class PatternPlaylistItem : IPlaylistItem

Represents a pattern in a track. Has the following additional properties: (all get; set;)

class Pattern

Represents a pattern in a project. Has the following properties: (all get; set;)

class Note

Represents a note in a pattern. Has the following properties: (all get; set;)

class Insert

Represents an insert in a project. Has the following properties: (all get; set;)

class InsertSlot

Represents an effect slot in an insert. Has the following propertie: (all get; set;)

enums

All enums are in the Enums static class.

enum Event

List of FLP event types, used for parsing. Consult the source code for a list of values.

enum InsertParam

List of insert parameters, used for parsing. Consult the source code for a list of values.

enum ArpDirection

Potential directions for generator channel's arpeggiator. Values are:

  • Off = 0 - no active arp
  • Up = 1 - arp notes go up
  • Down = 2 - arp notes go down
  • UpDownBounce = 3 - arp notes bounce up and down
  • UpDownSticky = 4 - arp notes stick up and down
  • Random - random arp notes

[Flags] enum InsertFlags

Flags for inserts to specify their states. Values are:

  • ReversePolarity = 1 - reverse polarity of the insert
  • SwapChannels = 1 << 1 - swap left and right channels
  • Unmute = 1 << 3 - insert is audible
  • DisableThreaded = 1 << 4 - threading is disabled on insert
  • DockedMiddle = 1 << 6 - insert is docked to middle
  • DockedRight = 1 << 7 - insert is docked to right
  • Separator = 1 << 10 - insert has separator on left
  • Lock = 1 << 11 - insert is locked
  • Solo = 1 << 12 - insert is solo'd (all other inserts will be muted)

license

Licensed under the MIT license. See the LICENSE file for more information.