如何用計算機生成一段隨機的音樂?
我用mathematica試了一下(新手,不會用),好像不行,代碼如下:
t = 0;For[i = 0, i &< 100, i++, r = RandomReal[];EmitSound[
Sound[(*Append[#, "Violin"]/@*){SoundNote[ RandomChoice[{"A", "B", "C", "D", "E", "F", "G"}], {t, r}]}]]; t = t + r]
謝謝
2011年的Chuck Ronco獲獎作品...大概是這個思路:
rule=ArrayRules[ToString/@{C,D,E,F5,G,A1,B3,C5,D5,C3}];
length=Sound[SoundNote@@@Table[{{RealDigits[N[Pi,#]][[1,i]]},.46,"NewAge"},{i,#}]/.rule];
length[100]
你的思路的話...還不如
Sound[SoundNote[#,RandomReal[],"Violin"]/@RandomChoice[{"A","B","C","D","E","F","G"},100]]
好像能聽的樣子...
範例里就有好多...你還自己瞎造輪子......
送你個起床鈴....
Sound[SoundNote[DeleteCases[3 Range[21]Reverse[#],0]-24,.1]/@Transpose[CellularAutomaton[90,{{1},0},20]]]
不過我感覺還是這個最魔性...
Sound[Table[SoundNote[RandomInteger[7],.2,RandomChoice[{"Piano","Guitar","Violin"}]],1000]]
這個很簡單吧,定幾個固定長度、固定頻率,不過我覺得還是確定節奏生成隨機樂句後,進行組合比較好,否則和噪音差不多
隨機生成音樂只能娛樂,不能用來聽。因為根本沒法聽。生成的隨機的旋律根本無法表達作曲者的思想感情。
隨機生成音樂不難,關鍵是能聽
推薦閱讀:
※如何從Deemo遊戲中提取音樂的midi文件?
※如何看待「Mathematica 只是一個高級計算器」的說法?
※如何找到mathmatica最新幾版的學習教材教程?
TAG:音樂 | 演算法 | 計算機 | WolframMathematica |