Git Product home page Git Product logo

fl-sysex-overflow's Introduction

Sysex overflow test

Code for testing overflows with sending/receiving sysex messages in FL Studio.

Setup

  1. Create a virtual MIDI port by using a tool such as loopMIDI

  2. git clone the project

  3. Install the Poetry build system to install project dependencies.

  4. Install dependencies by running poetry install

  5. Install the FL Studio script by running poetry run python install_script.py

  6. Launch FL Studio and assign a port.

  7. Launch the sender script by running poetry run python send.py

  8. In another terminal, launch the receiver script by running poetry run python receive.py.

Usage

Enter the name of your virtual MIDI port (including the number from the displayed port names) to connect to the port.

Follow the prompts to send messages from the send script.

Whenever a message is sent on the port, it will be reported in both the script output and the receiver script.

To send a message from FL Studio, call send_msg(data_length).

Findings

  • Messages with a length <= 1024 bytes work correctly.

  • Messages with a length > 1024 bytes are split into two messages by FL Studio, and are not displayed by the receive script (possibly a similar bug in the rtmidi library? Will investigate).

  • Messages with a length that is too large cause FL Studio to either freeze or immediately crash. A length of 1500 did this for me, but I couldn't find a specific value where it starts happening.

fl-sysex-overflow's People

Contributors

maddyguthridge avatar

Watchers

 avatar

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.