josephwilk / Musical Creativity
Models of Musical Creativity (in Clojure)
Stars: ✭ 125
Programming Languages
clojure
4091 projects
Labels
Projects that are alternatives of or similar to Musical Creativity
Microscale
Generated in real-time from random Wikipedia articles, microscale is a web-based, generative album.
Stars: ✭ 76 (-39.2%)
Mutual labels: generative, music
Triangle
Convert images to computer generated art using delaunay triangulation.
Stars: ✭ 1,838 (+1370.4%)
Mutual labels: generative
Snake Ai Reinforcement
AI for Snake game trained from pixels using Deep Reinforcement Learning (DQN).
Stars: ✭ 123 (-1.6%)
Mutual labels: ai
Modelchimp
Experiment tracking for machine and deep learning projects
Stars: ✭ 121 (-3.2%)
Mutual labels: ai
Om Sharp
OM#: Visual Programming | Computer-Assisted Music Compositon
Stars: ✭ 124 (-0.8%)
Mutual labels: music
Dmusic
DMusic Player for Android - An online music player based on Component + MVP Base + MVP Customization + greenDAO + OkHttp3 + Retrofit + RxJava2; supports local and network music playback; can play Baidu music, Netease cloud music; support online music list , radio, MV, music online, download, local and online lyrics; Lyrics, music cache; self-built song list, song management, collection, sorting, sorting, skinning, sleep timing, mode switching, more settings, etc. 基于 Component + MVP Base + MVP Customization + greenDAO + OkHttp3 + Retrofit + RxJava2 的在线音乐播放器; 支持本地及网络音乐播放; 可播放百度音乐,网易云音乐; 支持在线音乐榜单, 电台, MV, 音乐在线播放,下载, 本地及在线歌词; 歌词, 音乐缓存; 自建歌单, 歌曲管理, 收藏, 排序, 分类, 换肤, 睡眠定时, 模式切换, 更多设置等
Stars: ✭ 121 (-3.2%)
Mutual labels: music
Android Youtubemp3
Download videos as mp3 directly from Youtube Android App
Stars: ✭ 124 (-0.8%)
Mutual labels: music
Cramer Gan
Tensorflow Implementation on "The Cramer Distance as a Solution to Biased Wasserstein Gradients" (https://arxiv.org/pdf/1705.10743.pdf)
Stars: ✭ 123 (-1.6%)
Mutual labels: generative
Qqmusicspider
基于Scrapy的QQ音乐爬虫(QQ Music Spider),爬取歌曲信息、歌词、精彩评论等,并且分享了QQ音乐中排名前6400名的内地和港台歌手的49万+的音乐语料
Stars: ✭ 120 (-4%)
Mutual labels: music
Xsound
Web Audio API Library for Synthesizer, Effects, Visualization, Multi-Track Recording, Audio Streaming, Visual Audio Sprite ...
Stars: ✭ 123 (-1.6%)
Mutual labels: music
Generative.fm
A platform for playing generative music in the browser.
Stars: ✭ 1,534 (+1127.2%)
Mutual labels: music
Web Drum Sequencer
A drum machine and sequencer built with the Web Audio API, React, and Redux.
Stars: ✭ 117 (-6.4%)
Mutual labels: music
Androidequalizer
Android Equalizer View that can also manage the audio track frequencies
Stars: ✭ 123 (-1.6%)
Mutual labels: music
Jiosaavnapi
An unofficial API for JioSaavn written in Python 3
Stars: ✭ 123 (-1.6%)
Mutual labels: music
Machine Learning Flappy Bird
Machine Learning for Flappy Bird using Neural Network and Genetic Algorithm
Stars: ✭ 1,683 (+1246.4%)
Mutual labels: ai
#Computer models of musical creativity
Experiments with models for computers generating music.
##Examples
(require '[musical-creativity.musician :as musician] :reload)
(use '[musical-creativity.instruments] :reload)
;Cosine
(require '[musical-creativity.composers.cosine :as cosine] :reload)
(musician/play (cosine/compose) piano)
;Cellular automata
(require '[musical-creativity.composers.cellular-automata :as ca] :reload)
(musician/play (ca/compose) organ)
(musician/play (ca/compose ca/rule-22) sawish)
;Sonify data
(require '[musical-creativity.composers.sonify-data :as sonify-data] :reload)
(musician/play (sonify-data/compose) piano)
;Sonify text
(require '[musical-creativity.composers.sonify-words :as sonify-words] :reload)
(musician/play (sonify-words/compose "Strange Loop Strange Loop") piano)
(musician/play (sonify-words/compose "potato potato") ping)
;Network (Using adaptive resonance theory)
(require '[musical-creativity.composers.network :as network] :reload)
(musician/play (network/compose) piano)
;Markov chains
(require '[musical-creativity.composers.markov :as markov] :reload)
(musician/play (markov/compose) piano)
(musician/play (markov/compose) ping)
(musician/play (markov/compose data.bach/bach1 [57 60 69] 1 50) piano)
;with phrase mapping
(musician/play (markov/compose data.bach/bach1 [57] 16 (* 5 16)) piano)
;with naive voice extraction and phrase mapping
(require '[musical-creativity.analyzer :as analyzer] :reload)
; first extracted voice only and phrase mapping
(musician/play (markov/compose (first (-> data.bach/bach1
analyzer/group-by-time analyzer/extract-voices-min-distance)) [57] 16
(* 16 5)) piano)
; all voices added to model separately and phrase mapping
(musician/play (markov/compose (flatten (-> data.bach/bach1
analyzer/group-by-time analyzer/extract-voices-min-distance)) [57] 16
(* 16 5)) piano)
;multiple markov models
(let [lead-voice 1
standard-prep #(-> %
analyzer/group-by-time
analyzer/extract-voices-min-distance)
dur-prep #(->> %
analyzer/group-by-time
analyzer/extract-durations
(map (fn [d] {:duration d}))
vector)]
(markov/compose-multi-model
data.bach/bach1
50
:pitch (markov/transition-source standard-prep
1 8 1 lead-voice)
:voices (markov/transition-source #(-> %
analyzer/group-by-time
vector)
1 4 1 0)
:harmonics (markov/harmonic-source standard-prep lead-voice [0 2 3])
:duration (markov/transition-source dur-prep
1 4 4 :all)
:velocity (markov/constant-source 128)))
;Fuzzy
(require '[musical-creativity.composers.fuzzy :as fuzzy] :reload)
(musician/play (fuzzy/compose) piano)
;Improvise
;(very experimental)
(require '[musical-creativity.composers.improvise :as improvise] :reload)
(musician/play (improvise/compose) piano)
(require '[musical-creativity.band :as band] :reload)
(band/play (improvise/compose))
;Recombinance (Based on Bach Choral no. 140)
(require '[musical-creativity.composers.recombinance :as recombinance] :reload)
(require '[data.bach :as bach] :reload)
(recombinance/create-database-from bach/chorale-140-data)
(musician/play (recombinance/compose) organ)
(musician/play (recombinance/compose) piano)
(musician/play (recombinance/compose) slow-piano)
(musician/play (recombinance/compose-original) piano)
;Gradus (with each run Gradus learns how to better compose)
(require '[musical-creativity.composers.gradus :as gradus] :reload)
(musician/play (gradus/compose) piano)
(musician/play (gradus/compose-canon) piano)
(musician/play (gradus/compose-canon data.gradus/cantus-firmus-1) piano)
(musician/play (gradus/compose-canon data.gradus/cantus-firmus-2) piano)
(musician/play (gradus/compose-canon data.gradus/cantus-firmus-7) piano)
(musician/play (gradus/compose-contemporary) piano)
Association Network (Apprentice)
(require '[musical-creativity.composers.apprentice :as apprentice] :reload)
(require '[musical-creativity.composers.apprentice.player :refer :all] :reload)
(apprentice/apprentice play-all)
An example musical conversion:
user> ceg!
user> gbd?
alice> ceg!
user> ceg fac gbd?
alice> fac ceg ceg!
user> ceg fac gbd ceg!
alice> gbd?
user> ceg!
alice> gbd?
user> gbd?
alice> ceg!
Weightings:
A non musical dialog example:
user> hello!
Alice> your what your is name?
user> my name is joseph!
Alice> name?
user> your name is computer!
Alice> name?
user> what is my name?
Alice> joseph!
user> what is your name?
Alice> computer!
user> no*
user> what is your name?
Alice> joseph!
Demos
;;b11606b
(musical-creativity.musician/play (map musical-creativity.events/midi-to-event data.bach.chorale-140/b11606b) piano)
(require '[musical-creativity.composers.recombinance :as recombinance] :reload)
(require '[data.bach :as bach] :reload)
(recombinance/create-database-from bach/chorale-140-data)
(musical-creativity.musician/play (map musical-creativity.events/midi-to-event ('b11606b-22 @beats-store)))
##Book
Based on exercises from:
Computer Models of Musical Creativity http://mitpress.mit.edu/books/computer-models-musical-creativity
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].