synthio
– 支持 MIDI 合成¶
在这些板上可用
- ARAMCON Badge 2019
- ARAMCON2 Badge
- ATMegaZero ESP32-S2
- Adafruit CLUE nRF52840 Express
- Adafruit Circuit Playground Bluefruit
- Adafruit EdgeBadge
- Adafruit Feather Bluefruit Sense
- Adafruit Feather M4 CAN
- Adafruit Feather M4 Express
- Adafruit Feather RP2040
- Adafruit Feather STM32F405 Express
- Adafruit Feather nRF52840 Express
- Adafruit FunHouse
- Adafruit Grand Central M4 Express
- Adafruit Hallowing M4 Express
- Adafruit ItsyBitsy M4 Express
- Adafruit ItsyBitsy RP2040
- Adafruit ItsyBitsy nRF52840 Express
- Adafruit LED Glasses Driver nRF52840
- Adafruit Macropad RP2040
- Adafruit MagTag
- Adafruit Matrix Portal M4
- Adafruit Metro ESP32S2
- Adafruit Metro M4 Airlift Lite
- Adafruit Metro M4 Express
- Adafruit Metro nRF52840 Express
- Adafruit Monster M4SK
- Adafruit PyGamer
- Adafruit PyPortal
- Adafruit PyPortal Pynt
- Adafruit PyPortal Titano
- Adafruit Pybadge
- Adafruit QT Py RP2040
- Adafruit QT2040 Trinkey
- Adafruit Trellis M4 Express
- AloriumTech Evo M51
- Arduino Nano 33 BLE
- Arduino Nano RP2040 Connect
- Artisense Reference Design RD00
- AtelierDuMaker nRF52840 Breakout
- BDMICRO VINA-D51
- BLE-SS dev board Multi Sensor
- BastBLE
- BastWiFi
- BlueMicro840
- CP32-M4
- Capable Robot Programmable USB Hub
- Challenger RP2040 WiFi
- CircuitBrains Deluxe
- CrumpS2
- Cytron Maker Pi RP2040
- DynOSSAT-EDU-OBC
- ESP 12k NodeMCU
- Electronut Labs Blip
- Electronut Labs Papyr
- EncoderPad RP2040
- Feather ESP32S2 without PSRAM
- FeatherS2
- FeatherS2 Neo
- FeatherS2 PreRelease
- Franzininho WIFI w/Wroom
- Franzininho WIFI w/Wrover
- Gravitech Cucumber M
- Gravitech Cucumber MS
- Gravitech Cucumber R
- Gravitech Cucumber RS
- HMI-DevKit-1.1
- HiiBot BlueFi
- IkigaiSense Vita nRF52840
- Kaluga 1
- LILYGO TTGO T8 ESP32-S2 w/Display
- MDBT50Q-DB-40
- MDBT50Q-RX Dongle
- MEOWBIT
- MORPHEANS MorphESP-240
- MakerDiary nRF52840 MDK
- MakerDiary nRF52840 MDK USB Dongle
- Makerdiary M60 Keyboard
- Makerdiary Pitaya Go
- Makerdiary nRF52840 M.2 Developer Kit
- Melopero Shake RP2040
- Mini SAM M4
- Oak Dev Tech BREAD2040
- Oak Dev Tech PixelWing ESP32S2
- Open Hardware Summit 2020 Badge
- PCA10056 nRF52840-DK
- PCA10059 nRF52840 Dongle
- Particle Argon
- Particle Boron
- Particle Xenon
- PewPew M4
- Pimoroni Interstate 75
- Pimoroni Keybow 2040
- Pimoroni PGA2040
- Pimoroni Pico LiPo (16MB)
- Pimoroni Pico LiPo (4MB)
- Pimoroni PicoSystem
- Pimoroni Plasma 2040
- Pimoroni Tiny 2040
- PyCubedv04
- PyCubedv04-MRAM
- PyCubedv05
- PyCubedv05-MRAM
- PyKey60
- PyboardV1_1
- Raspberry Pi Pico
- Robo HAT MM1 M4
- S2Mini
- SAM E54 Xplained Pro
- SAM32v26
- STM32F412G_DISCO
- STM32F4_DISCO
- Saola 1 w/Wroom
- Saola 1 w/Wrover
- Seeeduino Wio Terminal
- Silicognition LLC M4-Shim
- SparkFun MicroMod RP2040 Processor
- SparkFun MicroMod SAMD51 Processor
- SparkFun MicroMod nRF52840 Processor
- SparkFun Pro Micro RP2040
- SparkFun Pro nRF52840 Mini
- SparkFun STM32 MicroMod Processor
- SparkFun Thing Plus - RP2040
- SparkFun Thing Plus - SAMD51
- Sprite_v2b
- TG-Boards' Datalore IP M4
- TG-Watch
- THUNDERPACK_v11
- THUNDERPACK_v12
- Targett Module Clip w/Wroom
- Targett Module Clip w/Wrover
- Teknikio Bluebird
- The Open Book Feather
- TinkeringTech ScoutMakes Azul
- TinyS2
- UARTLogger II
- WarmBit BluePixel nRF52840
- micro:bit v2
- microS2
- nanoESP32-S2 w/Wrover
- nanoESP32-S2 w/Wroom
- nice!nano
- stm32f411ce-blackpill-with-flash
-
synthio.
from_file
(file: BinaryIO, *, sample_rate: int = 11025) → MidiTrack¶ 从已经打开的 MIDI 文件创建一个 AudioSample。目前,仅支持单轨 MIDI(类型 0)。
- 参数
file (typing.BinaryIO) – 已经打开的 MIDI 文件
sample_rate (int) – 所需的播放采样率;更高的采样率需要更多的内存
从闪存播放 MIDI 文件:
import audioio import board import synthio data = open("single-track.midi", "rb") midi = synthio.from_file(data) a = audioio.AudioOut(board.A0) print("playing") a.play(midi) while a.playing: pass print("stopped")
-
class
synthio.
MidiTrack
(buffer: _typing.ReadableBuffer, tempo: int, *, sample_rate: int = 11025)¶ 简单的方波 MIDI 合成器
从给定的 MIDI 事件流创建一个 MidiTrack。仅支持“Note On”和“Note Off”事件;通道号和键力度被忽略。最多可以同时打开两个音符。
- 参数
buffer (ReadableBuffer) – MIDI 事件流,存储在 MIDI 文件轨道块中
tempo (int) – 流式事件的速度,以每秒 MIDI 滴答数为单位
sample_rate (int) – 所需的播放采样率;更高的采样率需要更多的内存
简单的旋律:
import audioio import board import synthio dac = audioio.AudioOut(board.SPEAKER) melody = synthio.MidiTrack(b"\0\x90H\0*\x80H\0\6\x90J\0*\x80J\0\6\x90L\0*\x80L\0\6\x90J\0" + b"*\x80J\0\6\x90H\0*\x80H\0\6\x90J\0*\x80J\0\6\x90L\0T\x80L\0" + b"\x0c\x90H\0T\x80H\0\x0c\x90H\0T\x80H\0", tempo=640) dac.play(melody) print("playing") while dac.playing: pass print("stopped")
-
sample_rate
:Optional[int]¶ 32 位值,表示样本以赫兹(每秒周期数)播放的速度。
-
__exit__
(self) → None¶ 退出上下文时自动取消初始化硬件。有关更多信息,请参阅 Lifetime 和 ContextManagers。