All Projects → josephwilk → Musical Creativity

josephwilk / Musical Creativity

Models of Musical Creativity (in Clojure)

Programming Languages

clojure
4091 projects

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
Youka Desktop
The Best Karaoke Maker
Stars: ✭ 458 (+266.4%)
Mutual labels:  ai, music
1keys
A 1 Kilobyte JavaScript Piano
Stars: ✭ 118 (-5.6%)
Mutual labels:  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
Notation
Simplified music notation
Stars: ✭ 124 (-0.8%)
Mutual labels:  music
Wavelink
A powerful Lavalink library for Discord.py.
Stars: ✭ 117 (-6.4%)
Mutual labels:  music
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
Amplipi
Whole House Audio System 🔊
Stars: ✭ 125 (+0%)
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:

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

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].