Skip to main content

Flapi

Flapi (pron. "flappy") is a remote control server for FL Studio, using the MIDI Controller Scripting API. It allows you to execute Python code in FL Studio from outside of FL Studio by modifying functions in the FL Studio API Stubs package to forward their calling information to the Flapi server, where they are executed, with their values returned to the client.

$ flapi
>>> import ui
>>> ui.setHintMsg("Hello from Flapi!")
# Hint message "Hello from Flapi!" is displayed in FL Studio

Setup

  1. Install the Flapi library using Pip, or any package manager of your choice. pip install flapi

  2. Install the Flapi server to FL Studio by running flapi install. If you have changed your FL Studio user data folder, you will need to enter it.

  3. On Windows, install a virtual MIDI loopback tool such as loopMIDI and use it to create two virtual MIDI ports, named Flapi Request and Flapi Response. On MacOS, Flapi is able to create these MIDI ports automatically, so this step is not required.

  4. Start or restart FL Studio. The server should be loaded automatically, but if not, you may need to set it up in FL Studio's MIDI settings. To do this, set each MIDI port to have a unique port number in the outputs section, configure the input ports to match the port numbers of their corresponding output ports, then assign the "Flapi Request" port to the "Flapi Request" script and the "Flapi Response" port to the "Flapi Response" script.

Usage

As a library

import flapi

# Enable flapi
flapi.enable()

# Now all calls to functions in FL Studio's MIDI Controller Scripting API will
# be forwarded to FL Studio to be executed.

As a REPL

$ flapi
>>> import transport
>>> transport.start()
# FL Studio starts playback
>>> transport.stop()
# FL Studio stops playback

Server-side execution

Flapi also supports a bare-bones server-side REPL, where all input is executed within FL Studio (as opposed to forwarding function data).

$ flapi -s server
>>> import sys
>>> sys.version
'3.12.1 (tags/v3.12.1:2305ca5, Dec  7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)]'
# It's running inside FL Studio!
>>> print("Hello")
Hello
# Stdout is redirected back to the client too!

Credits

This concept was originally created by dimentorium and is available on GitHub at dimentorium/Flappy. I have adapted their code to improve its usability, and make it easier to install.

Release files for flapi 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flapi 1.0.1
File Size Uploaded
flapi-1.0.1.tar.gz 21.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flapi 1.0.1
File Interpreter ABI Platform
flapi-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 48.1 kB

Release files / flapi-1.0.1.tar.gz

Download URL flapi-1.0.1.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
dd2e081a5b7cd3615e4335bc769f7ac85cf3b7bf3f6159971416725e6fdbc0ee
BLAKE2b-256 checksum
How to use checksums
aef1e165bb4b05ab52816e5797e81a6b8e77dd3ace119d6bc8c9501179127ba9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.9.19 Linux/6.5.0-1017-azure

Release files / flapi-1.0.1-py3-none-any.whl

Download URL flapi-1.0.1-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b998b03b2179301dfbdf13025757dd358748438728b9b6b09882259e1f83dbdb
BLAKE2b-256 checksum
How to use checksums
9ee562eb1a4339e630df7a0aee617b836d192b51cbcf09c454d0669dc23c9be5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.9.19 Linux/6.5.0-1017-azure

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page