跳转到主要内容

CircuitPython的BLE MIDI服务

项目描述

简介

Documentation Status Discord Build Status Code Style: Black

CircuitPython的BLE MIDI服务

依赖关系

此驱动程序依赖于

请确保所有依赖项都在CircuitPython文件系统中可用。这可以通过下载Adafruit库和驱动程序包轻松实现。

从PyPI安装

在支持的GNU/Linux系统(如树莓派)上,您可以从PyPI本地安装驱动程序为当前用户安装

pip3 install adafruit-circuitpython-ble-midi

要全局安装(在某些情况下可能需要)

sudo pip3 install adafruit-circuitpython-ble-midi

在当前项目中的虚拟环境中安装

mkdir project-name && cd project-name
python3 -m venv .venv
source .venv/bin/activate
pip3 install adafruit-circuitpython-ble-midi

用法示例

"""
This example sends MIDI out. It sends NoteOn and then NoteOff with a random pitch bend.
"""

import time
import random
import adafruit_ble
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
import adafruit_ble_midi
import adafruit_midi
from adafruit_midi.control_change import ControlChange
from adafruit_midi.note_off import NoteOff
from adafruit_midi.note_on import NoteOn
from adafruit_midi.pitch_bend import PitchBend

# Use default HID descriptor
midi_service = adafruit_ble_midi.MIDIService()
advertisement = ProvideServicesAdvertisement(midi_service)
# advertisement.appearance = 961

ble = adafruit_ble.BLERadio()
if ble.connected:
    for c in ble.connections:
        c.disconnect()

midi = adafruit_midi.MIDI(midi_out=midi_service, out_channel=0)

print("advertising")
ble.start_advertising(advertisement)

while True:
    print("Waiting for connection")
    while not ble.connected:
        pass
    print("Connected")
    while ble.connected:
        midi.send(NoteOn(44, 120))  # G sharp 2nd octave
        time.sleep(0.25)
        a_pitch_bend = PitchBend(random.randint(0, 16383))
        midi.send(a_pitch_bend)
        time.sleep(0.25)
        # note how a list of messages can be used
        midi.send([NoteOff("G#2", 120), ControlChange(3, 44)])
        time.sleep(0.5)
    print("Disconnected")
    print()
    ble.start_advertising(advertisement)

文档

此库的API文档可在Read the Docs上找到。

有关构建库文档的信息,请参阅本指南

贡献

欢迎贡献!在为该项目做出贡献之前,请阅读我们的行为准则,以帮助保持项目的友好氛围。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

adafruit-circuitpython-ble-midi-1.0.15.tar.gz (27.7 kB 查看哈希)

上传时间 源代码

构建分发

adafruit_circuitpython_ble_midi-1.0.15-py3-none-any.whl (6.2 kB 查看哈希)

上传时间 Python 3

支持者