Simple and fast library to convert midi files to video
Project description
Midi2Vid - Simple and Fast Midi to Video Converter
Midi to video converter. This program renders the notes of a midi file to a video. The renderer is built on top of the pygame library and uses multiple processes to generate the frames of the video. It then uses ffmpeg to convert the frames to a video. It also uses the fluidsynth library to render the midi file to a wav file.
Installation
Install from github using pip:
pip install midi2vid
Build with docker:
docker build -t midi2vid-base .
docker run --rm -v $(pwd):/app midi2vid-base -i midi2vid/data/example.mid -o your_output.mp4
Build from source:
git clone https://github.com/pianoviz/midi2vid.git
cd midi2vid
pip install -e .
Usage
midi2vid -i <input_midi_file> -o <output_video_file>
Options
-i, --input: Input midi file
-o, --output: Output video file
--config: Path to the configuration file (default: default.json)
Example
There is an example midi file in the data directory. You can run the following
command to generate a video from the example midi file:
midi2vid -i midi2vid/data/example.mid -o example.mp4
Configuration
The configuration file is a JSON file that specifies various parameters for the video generation. Here is an example configuration file:
{
"soundfont_path": "data/soundfont.sf2",
"max_note_length": 50,
"n_processors": 4,
"screen_width": 1920,
"screen_height": 1080,
"bpm": 120,
"fps": 30,
"speed": 200,
"white_note_color": [255, 255, 255],
"black_note_color": [49, 49, 49],
"background_color": [43, 43, 43],
"octave_lines_color": [92, 92, 92],
"note_color": [179, 44, 49],
"dark_note_color": [113, 34, 36],
"right_note_color": [168, 255, 145],
"left_note_color": [176, 202, 229],
"dark_right_note_color": [118, 208, 68],
"dark_left_note_color": [124, 142, 151],
"estimate_hands": false
}
The estimate_hands parameter is experimental and is used to estimate the hand
positions based on the notes played. It is currently under development and may
not work as expected.
Dependencies
- pygame
- ffmpeg
- fluidsynth
Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
License
This project is licensed under the MIT License. See the LICENSE file for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file midi2vid-0.0.5.tar.gz.
File metadata
- Download URL: midi2vid-0.0.5.tar.gz
- Upload date:
- Size: 89.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5aa96fa75fd766dfddf8a39612e7a05b1b1b86b7887b86451b8e19a240901b14
|
|
| MD5 |
6f55b3428ff7202ac0f50c4988b23efd
|
|
| BLAKE2b-256 |
418d8c71823e89e1bb264d9e6587e61d0908a8963253a03d62ba49216060a671
|
File details
Details for the file midi2vid-0.0.5-py3-none-any.whl.
File metadata
- Download URL: midi2vid-0.0.5-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2037fb4257e8505aec40a447208e61158227731baea8e9caae64997abbf0fedc
|
|
| MD5 |
02c282574680837b6f3250c9f5de23c2
|
|
| BLAKE2b-256 |
8f178f15196324e7bbb4c44d8076ec97fe2d441dbb8dedc61182fcde876f93ee
|