Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Wally869/MidiGenerator
Utils and classes to algorithmically generate Music. This folder builds on MusiStrata to represent a musical structure and output a midi.
https://github.com/Wally869/MidiGenerator
midi midi-files midigenerator music music-analysis music-generation music-theory procedural-generation python
Last synced: 2 months ago
JSON representation
Utils and classes to algorithmically generate Music. This folder builds on MusiStrata to represent a musical structure and output a midi.
- Host: GitHub
- URL: https://github.com/Wally869/MidiGenerator
- Owner: Wally869
- Created: 2020-03-18T09:24:21.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-28T21:16:07.000Z (almost 2 years ago)
- Last Synced: 2024-08-05T06:05:46.009Z (6 months ago)
- Topics: midi, midi-files, midigenerator, music, music-analysis, music-generation, music-theory, procedural-generation, python
- Language: Python
- Homepage: https://www.noveltech.dev/work/music-utilities/
- Size: 1.47 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MidiGenerator
## Overview
Collection of Recipes for Algorithmic Music Generation.
This folder builds on MusiStrata (https://github.com/Wally869/MusiStrata) to represent a musical structure and output midi files, to be further processed in a DAW or soundfont-based synthesizer, such as fluidsynth.THIS IS A WIP. This Branch is experimental and a lot of things are likely to be broken. Please make an issue if you encounter an issue.
## Dependencies
- MusiStrata (https://github.com/Wally869/MusiStrata)
- Mido (https://github.com/mido/mido)## Generators
### Rhythmic Generators
- Rhythmic Model
Generate a sequence of MusiStrata.SoundEvent elements by drawing Duration values to pack a preselected bar duration (number of beats per bar).
- Rhythmic Preset
Generate a sequence of SoundEvents by drawing subsequences from a pre-made preset and variants### Melodic Models
- Distance Picker Model
From a given array of height-ordered allowed notes, and knowing the starting note, pick a new note at random. Notes weights are determined by in-array position distance from the previous note, and subjected to a decaying factor. This allows to replicate the stability property often found in melodies
- From Interval Picker Model
Pick a new note by considering a previous note, an array of potential target notes, and an array of allowed intervals. This can allow to create successions of consonances, or very flexible notes succession (for example, allowing in your model the use of a minor harmonic scale, which flattens the 7th note in the scale when descending from the 8th).
- Scale Follower Picker Model
Create a succession of notes from a scale. Basically a scale arpeggio.