Skip to main content

midi-clip

PyPI

A python package for midi clip (and midi duration) based on mido. (github)

Author: Hyun Shin (kyaryunha)

Introduce

This library considers a lot of things for detailing midi clips: followings:

  • Supports both multi-track MIDI
  • Supports both tempo track & non-tempo track
  • Consider set_tempo, time_signature, controllers that appear before start time or note_on that were not closed
  • Consider empty space before the midi
  • All note_on and note_off pairs are validate. (Number of note_on and note_off is the same, and all note_on are closed by note_off)
  • ...

Usage

pip install midi-clip
import mido
import midi_clip
# load midi use mido
mid = mido.MidiFile('resources/hosu.mid')
# clip midi
output_mid = midi_clip.midi_clip(mid, 5., 15.)
# you can get total duration(second) of midi
duration = midi_clip.midi_duration(output_mid)
# if you see by print
print(output_mid, duration)
# if you save midi clip
output_mid.save('output.mid')

Result

Result of clip "A Town With An Ocean View" MIDI from 0 to 30 seconds and from 5 to 15 seconds.

0s-30s 5s-15s
Piano Roll
Audio https://github.com/kyaryunha/midi-clip/blob/main/example/ocean_0_30.wav https://github.com/kyaryunha/midi-clip/blob/main/example/ocean_5_15.wav

** Used GarageBand to obtain piano roll images and Cubase to obtain audio. GarageBand and Cubase fill in the measure regardless of the actual end of track time in the MIDI, resulting in slightly longer audio. MIDI file's time clip is precisely.

** Data used for result was allowed by an anonymous artist.

Metadata

Release files for midi-clip 0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for midi-clip 0.10
File Size Uploaded
midi-clip-0.10.tar.gz 7.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for midi-clip 0.10
File Interpreter ABI Platform
midi_clip-0.10-py3-none-any.whl Python 3 none any Details

Total release size: 14.8 kB

Release files / midi-clip-0.10.tar.gz

Download URL midi-clip-0.10.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6c6b7aa10c5fd9d7462ee9d0dd03980636c99e89f8dc3e91bf66fb8580259512
BLAKE2b-256 checksum
How to use checksums
50cb05310d01d32877bf505efdead6c60174d7457520d4fe2d0a88bd50e4d42f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / midi_clip-0.10-py3-none-any.whl

Download URL midi_clip-0.10-py3-none-any.whl
Size 7.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
30816dcdf684d36be9be9029fe7eb7bfd8c760ce2967654daf842946cc23ee71
BLAKE2b-256 checksum
How to use checksums
fb9bdb91abe13585917630eed6587991e78fc3143e00a9283796087523574c09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.10 This release

2 release files

0.9

2 release files

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page