All Projects → YatingMusic → Miditoolkit

YatingMusic / Miditoolkit

Licence: mit
https://pypi.org/project/miditoolkit/

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Miditoolkit

Gnusmas Soundfonts
The Gnusmas GM Soundfont & other soundfonts' repository.
Stars: ✭ 19 (-65.45%)
Mutual labels:  midi
Arduino midi library
MIDI for Arduino
Stars: ✭ 969 (+1661.82%)
Mutual labels:  midi
Fluttermidicommand
A Flutter plugin to send and receive MIDI
Stars: ✭ 41 (-25.45%)
Mutual labels:  midi
Webmidi
Tame the Web MIDI API. Send and receive MIDI messages with ease. Control instruments with user-friendly functions (playNote, sendPitchBend, etc.). React to MIDI input with simple event listeners (noteon, pitchbend, controlchange, etc.).
Stars: ✭ 906 (+1547.27%)
Mutual labels:  midi
Intellij Music
Play fancy music based on your keyboard activity in IDE
Stars: ✭ 28 (-49.09%)
Mutual labels:  midi
Esp8266audio
Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32
Stars: ✭ 972 (+1667.27%)
Mutual labels:  midi
Fluidsynth
Software synthesizer based on the SoundFont 2 specifications
Stars: ✭ 811 (+1374.55%)
Mutual labels:  midi
Jambot
Stars: ✭ 50 (-9.09%)
Mutual labels:  midi
Midiflip
🎹 MIDI music mayhem - flip, transpose, and arbitrarily remap pitches in MIDI files
Stars: ✭ 33 (-40%)
Mutual labels:  midi
Mega Drive Midi Interface
Control the Sega Mega Drive's Yamaha YM2612 and PSG with MIDI
Stars: ✭ 39 (-29.09%)
Mutual labels:  midi
Audioxtreamer
ASIO driver, Usb Driver, FX2LP Firmware, VHDL Fpga, Schematics & PCB Layout for the AudioXtreamer, a USB 2.0 32ch Audio/Midi interface for retrofitting into digital mixers/interfaces.
Stars: ✭ 22 (-60%)
Mutual labels:  midi
Jsscc
A JavaScript reimplementation of Gashisoft GXSCC
Stars: ✭ 26 (-52.73%)
Mutual labels:  midi
Sfz2bitwig
Convert .SFZ files into Bitwig Studio multisample instruments.
Stars: ✭ 37 (-32.73%)
Mutual labels:  midi
Giada
Your Hardcore Loop Machine.
Stars: ✭ 903 (+1541.82%)
Mutual labels:  midi
Touchosc2midi
a (linux compatible) TouchOSC Midi Bridge written in python
Stars: ✭ 44 (-20%)
Mutual labels:  midi
Midiconstants
An unofficial MIDI SDK
Stars: ✭ 5 (-90.91%)
Mutual labels:  midi
Midi shield
Midi shield product 9595, available from SparkFun Electronics
Stars: ✭ 34 (-38.18%)
Mutual labels:  midi
Musictheory
🎵 Music theory concepts in Go.
Stars: ✭ 53 (-3.64%)
Mutual labels:  midi
Theconductor
Toolset for making musical applications with Unity, Max and Ableton.
Stars: ✭ 48 (-12.73%)
Mutual labels:  midi
Beep
Beep sound library and utility for alerting end of a command execution. Beep can also play MIDI or text music score.
Stars: ✭ 39 (-29.09%)
Mutual labels:  midi

miditoolkit

A python package for working with MIDI data.

The usage is similar to pretty_midi, while miditoolkit handles MIDI events in symbolic timing (ticks, instead of seconds). Furthermore, the toolkit can parse MIDI tracks into piano-rolls for computation or visualization purposes.

Main Features

  • MIDI

    • Global
      • ticks per beat
      • tempo changes
      • key signatures
      • time signatures
      • lyrics
      • markers
    • Instruments
      • control changes
      • pitch bend
    • Editing
      • cropping
    • IO
      • BytesIO
  • Piano-rolls

    • Tools
      • notes to piano-rolls
      • piano-rolls to notes
      • chromagram
    • Visualization
  • External Library

Installation

  • current version: 0.1.14
  • python 2 is not supported
  • Install the miditoolkit via PYPI:
pip install miditoolkit

Example Usage

import miditoolkit
path_midi = miditoolkit.midi.utils.example_midi_file()
midi_obj = miditoolkit.midi.parser.MidiFile(path_midi)
print(midi_obj)

"""
Output:

ticks per beat: 480
max tick: 72002
tempo changes: 68
time sig: 2
key sig: 0
markers: 71
lyrics: False
instruments: 2

"""

A. Parse and create MIDI files
B. Piano-roll Manipulation

Philosophy

  • pretty_midi can parse MIDI files and generate pianorolls in absolute timing (seconds).
  • pypianoroll can parse MIDI files into pianorolls in symbolic timing (through beat resolution).
  • mido processes MIDI files in the lower level such as messages and ports.

Miditoolkit is designed for handling MIDI in symbolic timing (ticks), which is the native format of MIDI timing. We keep the midi parser as simple as possible, and offer several important functions to complete the versatility. For example, piano-rolls, tick-to-second, chromagram, and etc.

To customize settings and maximum the degree of freedom, users can use additional libraries like visualization, which are excluded in the toolkit.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].