Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mtingers/mdcmp
mdcmp (MIDI Composer) is a Python library for easily generating songs and emitting MIDI files.
https://github.com/mtingers/mdcmp
generative midi music
Last synced: 12 days ago
JSON representation
mdcmp (MIDI Composer) is a Python library for easily generating songs and emitting MIDI files.
- Host: GitHub
- URL: https://github.com/mtingers/mdcmp
- Owner: mtingers
- License: bsd-3-clause
- Created: 2023-03-01T07:42:39.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-06T04:24:04.000Z (almost 2 years ago)
- Last Synced: 2024-11-21T12:48:12.565Z (2 months ago)
- Topics: generative, midi, music
- Language: Python
- Homepage:
- Size: 90.8 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mdcmp
mdcmp (MIDI Composer) is a Python library for easily generating songs and emitting MIDI files.
**This is a work in progress.**
* [MDC file format spec](/docs/MDC_FORMAT_SPEC.md)
* [Progressions spec](/docs/PROGRESSIONS.md)
* [Grid](/docs/GRID.md)# TODO
- Load MDC file: Convert mdc file back to grid
- Composition:
- Create the Composition class.
- Build a mdc bank of canned beats and progressions.
- Load banks, glob style.
- Generate random song from selected progressions.
- Generate intros, verses, bridges, breakdown, chorus, outro.
- Fade tracks out.
- Fade tracks in.
- Humanize: Add some velocity and timing micro-shifts.
- Drums: Fills.- CLI:
- Convert: translate mdc files to midi files via CLI.
- Compose from cli by specifying layers, loops, and params to composition object.
- Example idea of CLI composer usage:
```
mdc-compose \
--load samples/lofi/ \
--out name.midi \
--loop-all 2 \
--layer intro=drums1:lofi2,verse=drums1:lofi3 \
--loop-layer-order intro:2,verse:10,intro:2,verse:10 \
--velocity-jitter 13 \
--fade-in 10 --fade-out 10 \
--auto-dynamics [0-10] \
--humanize
```