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.