原创 Python編曲實踐(十):用Ableton Live 10手工扒的Grunge搖滾數據集,涵蓋Grunge時期四大代表樂隊的經典專輯

前言 音樂數據不同於圖片數據,其節拍和速度的變化會嚴重影響數據集的構建,而如今並沒有穩定且高效的方法來對節拍和速度來進行讀取,大部分較爲可靠的方法都無法對音樂行進過程中出現的節拍和速度變化作出響應,更何況網上流傳的MIDI數據本

原创 Python編曲實踐(二):和絃的實現和進行

前言 上一篇文章 中我簡單介紹瞭如何使用Mido這個庫在Python中實現MIDI編程,分享了我的經驗和心得,但是單音軌的純音符堆砌聽起來太單薄了,故本篇文章介紹如何輕鬆添加和絃音軌,使得樂曲更加飽滿、豐富。 和絃的背景知識 和絃

原创 SuperCollider學習筆記(四)- 失真(Distortion)

前言 失真(Distortion)在維基百科中的定義是 “一個物體、影像、聲音、波形或其他信息形式其原本形狀(或其他特徵)的改變現象”,在一定限度內的信號失真,如果沒有影響到信號本身的準確程度的話,會產生十分奇特的效果。搖滾樂中如

原创 SuperCollider學習筆記(三)- 濾波器(Filters)

定義 濾波器(Filters)在維基百科的定義是“可執行信號處理功能的電子線路組件或設備,它專門用於去除信號中不想要的成分或者增強所需成分”,即用於“過濾”掉不想要的信號的一種設施,其有許多分類和應用場景。 分類解讀 低通和高通濾

原创 Python編曲實踐(六):將MIDI文件轉化成矩陣,繼承PyTorch的Dataset類來構建數據集(附數據集網盤下載鏈接)

前言 上篇文章中,我介紹瞭如何通過編寫爬蟲來從 Free Midi Files Download 網站上爬取海量的MIDI數據。本篇文章介紹的是使用 pretty_midi 庫來將MIDI文件轉化成矩陣,並通過PyTorch的Da

原创 Python編曲實踐(一):通過Mido和PyGame來編寫和播放單軌MIDI文件

前言 人工智能編曲是一個十分複雜的話題,而這一話題的起點便是選擇一個良好的編曲媒介,使得開發者能夠將AI的音樂靈感記錄下來,並且能夠很方便地將其播放、編輯、分享。 MIDI文件是電腦編曲的一種通用格式,它容易通過音樂編輯軟件導入、

原创 SuperCollider學習筆記(二)- 噪音(Noise)

定義 噪音來自無週期的信號源(Aperiodic Sources),即聲波的頻率、強弱變化無規律、雜亂無章的聲音,與振盪器產生的有固定頻率和振幅的信號相對。 分類解讀 低頻噪音生成器(“Low Frequency” Noise G

原创 Python編曲實踐(五):通過編寫爬蟲來爬取海量MIDI文件,預備構建數據集(附有百度雲下載鏈接)

前言 由於畢業設計的課題是通過CycleGAN搭建一個音樂風格轉換系統,需要大量的音樂文件來訓練神經網絡,而MIDI文件作爲最廣泛使用的一種電腦編曲保存媒介,十分容易蒐集資源,也有很多成熟的Python庫來對MIDI文件進行處理

原创 Python編曲實踐(三):如何模擬“彎音輪”實現滑音和顫音效果

前言 彎音輪,是在MIDI鍵盤或專業電子琴一旁安裝的一個裝置(如下圖)。 通過前後撥動滾輪,可以實現彎音和顫音的效果。這對於追求特殊電音效果的作曲者來說是必不可少的,而這兩個技巧也是吉他等樂器演奏時十分常用的技巧,故在編程中學會

原创 Python編曲實踐(四):向MIDI文件中添加鼓組音軌

前言 在前面三篇文章中,我介紹瞭如何通過Python的Mido庫添加旋律、和絃和模擬滑音、顫音。然而,鼓的作用也是不可忽視的,它就像骨骼一樣支撐起整個音樂,而編輯鼓點的樣式也爲想象力的發揮提供了無限空間,是十分愉悅的事情,本篇文章

原创 SuperCollider學習筆記(一)- 振盪器(Oscillators)

前言 作爲計算機作曲語言 MUSIC-N 大家族的一員,SuperCollider 這個編程語言爲實時聲音合成和算法作曲提供了很好的解決方案,它不僅功能全面,版本新,還有十分好用的官方IDE - SuperCollider IDE

原创 通過Spark Mllib中決策樹模型,訓練通過其他信息來判斷婚姻狀況

簡介 嘗試通過Spark上的決策樹模型來訓練模型,通過人羣的其他信息來判斷婚姻狀況 此項目基於UCI上的開放數據 adult.data github地址:AdultBase - Truedick23 配置 Spark版本: s

原创 Python編曲實踐(九):如何計算並估計音樂的調性(大/小調+主音)?Krumhansl-Schmuckler調性分析算法的原理與實現

前言 之前,我在 Python編曲實踐(五)中記錄了構建MIDI數據集Free MIDI Library的過程,其中預處理階段十分重要的一個步驟是移調,即把所有音樂的調性調整爲C大調或A小調,這樣會使得音樂數據一致性更強,進而提高

原创 Python編曲實踐(八):我,喬魯諾·喬巴那,能用兩百行代碼寫出JOJO黃金之風裏我自己的出場曲!

前言 前些天筆者寫的文章 Python編曲實踐(七):整整一百行Python代碼寫出黑人擡棺梗曲《Astronomia》的旋律 受到了大家的許多支持和好評,本篇文章挑戰更復雜、更有挑戰性,同時也很有梗的一首音樂,那就是《JOJO的

原创 Python編曲實踐(七):整整一百行Python代碼寫出黑人擡棺梗曲《Astronomia》的旋律

前言 黑人擡棺梗如今可以說是火爆全球,而原版視頻的背景音樂《Astronomia》也開始爆火,正在不斷被油管的音樂播主用各種樂器花式cover: 受此超級巨梗的影響,本博主也打算跟一跟風,用整整百行Python代碼寫出這首《As