A library to interface with Roland FP pianos over midi
Project description
Roland Piano
Library for interfacing with Roland FP pianos over midi. Tested on both Mac and Linux.
Installation
Run:
python3 -m pip install roland-piano
How this started
I found the button only interface on my Roland FP-10 somewhat limiting. The app would give more insight, but was a bit too buggy IMO. Hence I decided to reverse engineer the Roland specific midi messages and create a Python API so that people can build their own interface. Feel free to contribute!
Examples
Setting and reading the volume.
import time
from roland_piano.roland_piano import discover, RolandPiano
piano_name = discover()
with RolandPiano(piano_name) as piano:
for i in range(0, 100):
piano.volume_set_percent(i)
print(f"Readback Volume: {piano.volume_get_percent()}")
time.sleep(0.5)
Togle metronome and increase the BPM
import time
from roland_piano.roland_piano import discover, RolandPiano
piano_name = discover()
with RolandPiano(piano_name) as piano:
# toggle metronome, todo: find way to obtain state of metronome
piano.metronome_toggle()
for i in range(50, 200):
piano.metronome_set_bpm(i)
print(f"Readback BPM: {piano.metronome_get_bpm()}")
time.sleep(0.5)
Limitations
- Doesn't trigger events (e.g. volume changed) over midi when changing many of the piano settings. Connecting with the app enables this, so I (or you😃) need to do some digging on how this is achieved. Contact me for more information on what I have tried so far.
- API is limited to metronome and volume at the moment, but there is some low hanging fruit for more functionality.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
roland_piano-0.2.2.tar.gz
(6.1 kB
view hashes)
Built Distribution
Close
Hashes for roland_piano-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e47063ea632ecdd91764baade65ac4f10029de47a7946689e6759c95327c039a |
|
MD5 | 5d9243c7a42d2d97386c21fc6133713b |
|
BLAKE2b-256 | 9ef4b09052d04c257c1c2f85a33af3afb7f1e18f0fa175ee75fa63bfe339c9a1 |