Fl Studio Flp Files
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 arpUp = 1- arp notes go upDown = 2- arp notes go downUpDownBounce = 3- arp notes bounce up and downUpDownSticky = 4- arp notes stick up and downRandom- random arp notes
[Flags] enum InsertFlags
Flags for inserts to specify their states. Values are:
ReversePolarity = 1- reverse polarity of the insertSwapChannels = 1 << 1- swap left and right channelsUnmute = 1 << 3- insert is audibleDisableThreaded = 1 << 4- threading is disabled on insertDockedMiddle = 1 << 6- insert is docked to middleDockedRight = 1 << 7- insert is docked to rightSeparator = 1 << 10- insert has separator on leftLock = 1 << 11- insert is lockedSolo = 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.



