Code Monkey home page Code Monkey logo

flparser's People

Contributors

antazoey avatar cpdt avatar djh0ffman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flparser's Issues

Compatability with FL Studio 20

FL Studio 20 was recently released, meaning there's a large chance that some parts of the parser are now broken. It would also be good to add support for some of the newer features (arrangements and time signatures primarily).

๐Ÿ“ In search for initial infos

Hey team ๐Ÿ‘‹ Thanks a lot for your work on this project.

I was just wondering where you got all this info for parsing a .flp file as imagine line doesn't seem to give much information about it. Did you find any docs related to it?

Thanks in advance for the response ๐Ÿ˜„

GPL Licensing Violation

Hello,

It has come to my attention that this project is licensed as MIT, when in-fact it cannot be licensed as such. This repository contains excellent work done researching this format further. However this project claims it is based off of node-flp. Node-flp is licensed as GPL as node-flp is based off of PyDAW, which is GPL. And to take it even further, PyDAW was based off of LMMS' work on the FLP import filter. Both LMMS and that filter are licensed as GPL. Basically what I'm trying to say is that this is GPL code all the way up until this repository. Any codebases that are using GPL code must abide by the GPL terms. Thus using GPL code to the extent that it has been in this project, has contaminated this codebase. This codebase should now be licensed as GPL. GPL also prohibits re-licensing, and that's what has been done here by having an MIT license.

This is just a heads-up for the maintainers of the project and for anyone else who plans on using this code. I wish I had payed closer attention, before using code from this repo in my project. Shame on me I guess.

But to the maintainers, thank you for your contributions. And I do not wish for there to be any hard feelings.

new features please

function to save a project in version needed
to copy notes from channels in clipboard (if possible, im tryin, but nothing happend(maybe fl studio dont use win clipboard, im not sure ))

Note release is being parsed as a uint16 instead of a byte

var release = reader.ReadUInt16();

In this line, release is being parsed as a uint16 instead of a byte, causing it to be incorrect. The byte after the note release is actually the note color channel inside of the pattern. I made a fix for this inside of my fork for .net standard but id rather not merge that with this to cause any other issues that may happen as I only tested this on 20.7+

Channel names return blank on FL 12, FL 20.6, and 20.7 files

Hello there!

I am having a small issue with the parser and I'm wondering if it's an issue with my driving code, or the library itself.

When I run this:

Project proj = Project.Load("sample.flp", false);
Console.WriteLine("FL Version: "+proj.VersionString);
foreach (Channel chan in proj.Channels){
	Console.WriteLine(chan.Id+" | "+chan.Name+" | "+chan.Color);
}

The output returns as:

FL Version: 20.7.0.1714
0 |  | 16777215
1 |  | 16777215
2 |  | 16777215
3 |  | 8288104

Instead of:
image
With the exact same results occurring on a random FL 12 file.

Please help, and thank you greatly for your time.

Playlist Parsing

This is more of a question than an issue. How would I go about parsing all the notes in the playlist of an flp?

FL 20.7+ Automation clips aren't parsed correctly

Well, I'm investigating this project, I'd like to automate a process to create projects but the thing is that I cannot figure out this problem.

I created an example project, which has the following automation clip:

image

The thing is as you can see, that we have a point over 37,0625 (37 + 1/16) (the Ppq is 96), so the position must be = 3558.

I serialized the project using JSON.NET and I looked for the 0,44999... value:

image

There are two matches, the next one:

image

Which has Position = 0, and also I'm looking for the 3558 value, but I can't find it...

So, what can I do about this? I'm looking for how to solve this but I think I won't have luck.

Thanks.

Problems trying to understand the format

I'm curious, how you reversed engineer this, and I'm taking a look at a project file but the header parsing doesn't seem right to me.

The highlighted part in the image should be equivalent to the 4-byte long Int16 variable named type:

var type = reader.ReadInt16();
if (type != 0) throw new FlParseException($"Type {type} is not supported", reader.BaseStream.Position);

image

Seems like the type variable is not being parsed the way it should be, and would throw a wrong type error for this project file?

I'm a bit of a noob in reverse engineering, am I understanding correctly? Is this project file too new a version, corrupted or am I just mistaken?

FL 20.6 - AutomationData System.ArgumentOutOfRangeException

When trying to load a FL Studio 20.6 file with a bunch of automation data, the parser throws an exception:
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

When inspecting in debugger, it seems that paramDestionation is way out of the array size

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.