Comments (4)
Many MIDI files will encode note offs as note ons with velocity zero. Velocity is the second data field for note events... every one of your example's "true" note ons is followed by one of these velocity note offs:
midi.NoteOnEvent(tick=0, channel=0, data=[42, 38]), # strike pitch 42 with velocity 38
midi.NoteOnEvent(tick=22, channel=0, data=[42, 0]), # strike pitch 42 with velocity 0 (= no sound)
python-midi in general won't be implementing any abstract musical concepts that don't exist in the MIDI standard, but PR #59 has some useful code for searching for matching note offs. Read the discussion closely though -- @vishnubob has some important points about how MIDI has no guarantees or expectations about note "state", or the meaning of on and off, and there are a lot of edge cases.
from python-midi.
Many thanks for your suggestions!
from python-midi.
Do you know any existing piece of code handling conversion of midi events to an array of notes with start/stop time?
from python-midi.
shameless plug:
I used this project as a basis for the MIDI code included in my own audio signal processing library (https://github.com/CPJKU/madmom).
I added conversion from MIDI notes to numpy arrays and vice versa. You can find the code here:
https://github.com/CPJKU/madmom/blob/develop/madmom/utils/midi.py
Please note that I bundled everything in a single file and removed all the stuff I don't need.
HTH
from python-midi.
Related Issues (20)
- Marker
- Meta
- Handling Marker Events
- Appending an event with a tick less than the last one in absolute mode results in invalid tick
- package installation issue HOT 7
- MIDI Events
- make_ticks_rel is broken
- Python2 Errors HOT 1
- The 'midi==0.2.3' distribution was not found and is required by the application
- SetTempoEvent to 120 bpm doesn't seem to align with my metronome or in my music software
- Does python-midi still work?
- The loss of generator is always negative. HOT 1
- Can't install the package in anaconda HOT 4
- Is this repo still being maintained? HOT 1
- I made it available for Windows and Python 3 HOT 11
- pip3 package doesn't work HOT 2
- Installation issue HOT 7
- Do you have a python version HOT 1
- where can i find the ref doc
- Ubuntu Studio 23.10 - Mary.mid example fails HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from python-midi.