Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/MusicLang/musiclang
https://github.com/MusicLang/musiclang
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/MusicLang/musiclang
- Owner: MusicLang
- License: bsd-2-clause
- Created: 2023-01-06T13:20:17.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-25T08:51:32.000Z (11 months ago)
- Last Synced: 2024-10-02T14:18:06.745Z (5 months ago)
- Language: Python
- Size: 2.65 MB
- Stars: 169
- Watchers: 2
- Forks: 13
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Musiclang
=========
[](https://musiclang.readthedocs.io/en/latest/?badge=latest)
The Python framework to write, analyze, transform and predict music.
What is MusicLang ?
--------------------MusicLang which simply stands for "music language" is a Python framework
implementing a new language for tonal music.
This language allows composers to load, write, transform and predict symbolic music in a simple,
condensed and high level manner.MusicLang internally uses a [LLM (Large Language Model)](https://huggingface.co/floriangardin/musiclang) to predict what could happen next in a musical score.
/!\ Please note that : we decoupled AI from the language itself in a new package called musiclang_predict. If you want to use AI capabilities of musiclang please install [musiclang_predict](https://github.com/MusicLang/musiclang_predict) package.This framework is well suited to :
- Generate musical ideas quickly.
- Do symbolic music prediction or inpainting.
- Create an interpretable and rich text representation of a midi file[Read our documentation](https://musiclang.readthedocs.io/en/latest).
How to install
--------------MusicLang is available on Pypi :
```
pip install musiclang
```
Examples
---------1. A hello world example to create a C-major chord in musiclang and save it to midi :
```python
from musiclang.library import *# Write a C major chord (First degree of C major scale)
score = (I % I.M)(piano=[s0, s2, s4])# Store it to midi
score.to_midi('c_major.mid')
```2. Create, transform and harmonize a theme quickly :
```python
from musiclang.library import *# Create a cool melody (the beginning of happy birthday, independant of any harmonic context)
melody = s4.ed + s4.s + s5 + s4 + s0.o(1) + s6.h# Create a simple accompaniment with a cello and a oboe
acc_melody = r + s0.o(-1).q * 3 + s0.o(-1).h
accomp = {'cello__0': acc_melody, 'oboe__0': acc_melody.o(1)}# Play it in F-major
score = (I % IV.M)(violin__0=melody, **accomp)# Repeat the score a second time in F-minor and forte
score += (score % I.m).f# Just to create an anachrusis at the first bar
score = (I % I.M)(violin__0=r.h) + score# Transform a bit the accompaniment by applying counterpoint rules automatically
score = score.get_counterpoint(fixed_parts=['violin__0'])# Save it to musicxml
score.to_musicxml('happy_birthday.musicxml', signature=(3, 4), title='Happy birthday !')# Et voilà !
```
3. Predict a score using a deep learning model trained on musiclang language :
See [MusicLang Predict](https://github.com/MusicLang/musiclang_predict) for more information.
Contact us
----------If you want to help shape the future of open source music generation / language modeling,
please contact [us](mailto:[email protected])License
-------The MusicLang base language (this package) is licensed under the BSD 3-Clause License.
The MusicLang predict package and its associated models is licensed under the GPL-3.0 License.