Skip to main content

No project description provided

Project description

miditoolkit

A python package for working with MIDI data.

  • Version: 0.1.17
  • Latest update date: 2023/10/31

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
      • chunk/cropping
    • IO
      • BytesIO
  • Piano-rolls
    • Tools
      • notes to piano-rolls
      • piano-rolls to notes
      • chromagram
    • Visualization
  • External Library

TODO

  • better documentation
  • absolute timing
  • cropping: Control Changes
  • cropping: bars
  • symbolic features
  • new structural analysis

Installation

  • current version: 0.1.15
  • 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.

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

miditoolkit-1.0.0.tar.gz (21.4 kB view hashes)

Uploaded Source

Built Distribution

miditoolkit-1.0.0-py3-none-any.whl (22.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page