在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python國產庫推薦之musicpy:讓你用代碼來寫音樂

數據分析與開發 ? 來源:數據分析與開發 ? 作者:數據分析與開發 ? 2020-12-16 11:26 ? 次閱讀

你想過用代碼來寫音樂嗎?這里給大家介紹一個國人寫的庫 musicpy,讓你用簡潔的語法通過樂理邏輯寫出優美的音樂。

這個庫可以讓你用非常簡潔的語法,來表達一段音樂的音符,節奏等等信息,并且可以簡單地輸出成midi文件的格式。

這個庫里面涉及到非常多的樂理知識,所以個人推薦至少要先了解一部分樂理再來使用會比較上手。相對地,如果你是一個對樂理比較了解的人,那么看完作者在Wiki正在寫的教程之后,你應該很快就上手了。

(說明:這個庫的作者還在持續開發中,很有創意的一個庫,向大家推薦)

安裝

首先在musicpy文件夾里打開cmd, 跑一下pip install -r requirements.txt安裝依賴庫(如果本來就是pip install musicpy安裝的就不需要這一步, 作者也比較推薦直接pip install musicpy就行)

import 這個庫:

from musicpy import *

作者自己做的介紹與使用教程視頻第一期:

https://www.bilibili.com/video/BV1754y197a9/

詳細的musicpy數據結構,基礎語法以及使用教程,請看作者正在寫的Wiki,作者會盡量把所有的細節都講清楚。

Wiki的地址:https://github.com/Rainbow-Dreamer/musicpy/wiki

musicpy說明

在musicpy里面,幾個基本的類是note(音符), chord(和弦)和scale(音階)。這幾個類是構成音樂代碼的基礎。

在musicpy這門語言的數據結構設計中,音符類本身是等值為純數字的,也就是完全可以作為純數字使用。

和弦類是音符類的集合,也說明和弦類本身等值為一個全部都是數字的集合,也可以作為向量,甚至矩陣來看待(比如多個和弦的連接走向就可以看作多個向量的拼接,因此也就有了行列數,也就是矩陣的形式)。

也因此在這門語言的數據結構設計中,音符類,和弦類,音階類都是可以進行數學運算的,比如線性代數領域的運算,離散數學領域的運算等等。也可以在這門語言的數據結構的基礎上建立一整套樂理邏輯的算法,結合純數學邏輯來進行多方面的音樂分析研究。

現代音樂領域的很多實驗性質的音樂,比如序列主義,偶然音樂,后現代主義音樂(比如極簡主義音樂),理論上全部都可以在這門語言的純數字化的數據結構的基礎上進行嚴格的創作。即使不提實驗性質的音樂,這門語言也可以寫任何的古典音樂,爵士音樂,流行音樂。

作者每隔兩三天就會更新一次這個庫的內容,具體的更新內容請大家看這個庫里的“更新日志Changelog.txt”,里面有按照日期的每次更新的非常詳細的細節與說明。

更新日志的鏈接:

https://github.com/Rainbow-Dreamer/musicpy/blob/master/%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97Changelog.txt

初衷

作者開發這個語言主要的初衷有兩點:

第一,比起工程文件和midi文件單純存儲音符,力度,速度等單位化的信息,如果能夠按照樂理上的角度來表示一段音樂從作曲上的角度是如何實現的,那就更加有表示的意義了。而且只要不是現代主義無調性音樂,大部分的音樂都是極其具有樂理上的規律性的,這些規律抽象成樂理邏輯語句可以大大地精簡化。(比如一個midi文件1000個音符,實際上按照樂理角度可能可以簡化到幾句代碼)。

第二,開發這個語言是為了讓作曲AI能夠在真正懂得樂理的情況下來作曲(而不是深度學習,喂大量的數據),這個語言也算是一個接口,AI只要把樂理的語法搞懂了,那作曲就會擁有和人一樣的思維。我們可以把樂理上的規則,做什么好不做什么好告訴AI,這些東西還是可以量化的,所以這個樂理庫也可以作為一個樂理接口,溝通人和AI之間的音樂。因此,比如想讓AI學習某個人的作曲風格,那么在樂理上面也同樣可以量化這個人的風格,每種風格對應著一些不同的樂理邏輯規則,這些只要寫給AI,經過作者這個庫,AI就可以實現模仿那個人的風格了。如果是AI自己原創風格,那就是從各種復雜的作曲規則里尋找可能性。

為何不用深度學習?

作者在想不用深度學習,神經網絡這些東西,直接教給AI樂理和某個人的風格化的樂理規則,那么AI或許可以做的比深度學習大數據訓練出來的更好。因為大數據訓練只是給AI模仿數據本身而已,這樣其實AI并沒有真正地和人類自己一樣理解作曲是什么,樂理是什么,所以作者才想通過這個庫實現把人的樂理同樣教給AI,讓AI真正意義上地理解樂理,這樣的話,作曲起來就不會生硬了,沒有機器和隨機的感覺了。

所以作者寫這個庫的初衷之一就是避開深度學習那一套。但是感覺抽象出不同音樂人的樂理規則確實很有難度,作者會加油寫好這個算法的qwq 另外其實也可以音樂人自己告訴AI他自己樂理上喜歡怎么寫(也就是自己獨特的樂理偏好規則),那么AI就會模仿的很到位,因為AI那時候確實懂得樂理了,作曲不可能會有機器感和隨機感,此時AI腦子里想的就和音樂人腦子里想的是完全一樣的東西。

AI不必完全按照我們給他的樂理邏輯規則來創作,我們可以設置一個“偏好度”的概念給AI,AI在自己作曲時會有一定程度地偏好某種風格,但是除此之外會有自己在“符合正確樂理”的規則里面找到的獨特的風格,這樣AI就可以說“受到了某些音樂人的影響下自己原創的作曲風格了”。當這個偏好度為0時,AI的作曲將會完全是自己通過樂理尋找到的風格,就像一個人自己學習了樂理之后,開始摸索自己的作曲風格一樣。一個懂得樂理的AI很容易找到自己獨特的風格來作曲,我們甚至都不需要給他數據來訓練,而只要教給AI樂理就行。

如何教AI樂理?

那么怎么教給AI樂理呢?在音樂上面,暫時不考慮現代主義音樂的范疇,那么絕大部分的音樂都是遵循著一些很基本的樂理規則的。這里的規則指的是,怎么樣寫樂理上ok,怎么樣寫犯了樂理上的錯誤。比如寫和聲的時候,四部同向往往是要避免的,尤其是在編曲時寫管弦樂的部分。比如寫一個和弦,如果和弦里面的音出現小二度(或者小九度)會聽著比較打架。比如當AI自己決定一首曲子要從A大調開始寫,那么他應該從A大調音階里按照級數來選取和弦,有可能適當地離調一下,加幾個副屬和弦,寫完主歌部分可能按照五度圈轉個調,或者大三度/小三度轉調,同主音大小調轉調等等。我們需要做的事情就是告訴AI作曲的時候怎么寫是正確的,更進一步的,怎么寫聽著比較有水平。

AI學好了樂理,不會忘記,也比較難犯錯,因此可以寫出真正屬于AI自己的音樂。他們會真正懂得音樂是什么,樂理是什么。因為這個庫的語言做的事情就是把樂理抽象成邏輯語句,那么我們每次給AI“上課”,就是把人自己的樂理概念用這個庫的語言來表述,然后寫進AI的數據庫里。通過這種方式,AI真正的學習到了樂理。這樣的作曲AI,不需要深度學習,不需要訓練集,不需要大數據,而與之相比,那些深度學習訓練出來的作曲AI實際上根本就不懂樂理是什么,也沒有音樂的概念,他們只是從海量的訓練數據里面照葫蘆畫瓢而已。還有一個重點是,既然可以用具體的邏輯來描述的事情,其實是不需要機器學習的。如果是文字識別,圖像分類這些比較難以用抽象的邏輯來描述的事情,那才是深度學習的用武之地。

結語

這個庫作者也上傳到 pypi 上了,大家 pip install musicpy 就可以使用了。

作者從去年的10月份開始開發musicpy,目前這個項目還在初期進度,不過已經有一套比較完整的樂理邏輯語法了。這個庫的使用教程視頻作者會持續更新。作者之前發的專欄也有一部分的使用教學。

GitHub鏈接:https://github.com/Rainbow-Dreamer/musicpy

責任編輯:xj

原文標題:Python 國產庫推薦之 musicpy

文章出處:【微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4809

    瀏覽量

    68816
  • python
    +關注

    關注

    56

    文章

    4801

    瀏覽量

    84867

原文標題:Python 國產庫推薦之 musicpy

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用Python進行串口通信的案例

    當然!以下是一個使用Python進行串口通信的簡單示例。這個示例展示了如何配置串口、發送數據以及接收數據。我們將使用 pyserial ,這是一個非常流行的用于串口通信的Python
    的頭像 發表于 11-22 09:11 ?324次閱讀

    NVIDIA發布cuPyNumeric加速計算

    該加速計算幫助科研人員無縫地擴展到強大的計算集群,并且無需修改 Python 代碼,推進科學發現。
    的頭像 發表于 11-21 10:05 ?302次閱讀

    如何使用Python構建LSTM神經網絡模型

    構建一個LSTM(長短期記憶)神經網絡模型是一個涉及多個步驟的過程。以下是使用Python和Keras構建LSTM模型的指南。 1. 安裝必要的 首先,確保已經安裝了
    的頭像 發表于 11-13 10:10 ?488次閱讀

    全志T507-H國產平臺Ubuntu系統正式發布,您的應用開發更便捷!

    Python、MQTT、Qt等技術和工具時,其優勢尤為明顯。(1)Python:Ubuntu為Python提供了豐富的開發環境和資源。開發者可以在Ubuntu安裝Python解釋器、
    發表于 10-29 09:39

    Python常用函數大全

    Python 世界里,有一些寶藏函數和模塊,它們可以編程更輕松、代碼更高效。這篇文章將帶你一一認識這些神器,
    的頭像 發表于 10-27 17:20 ?300次閱讀

    Python解析:通過實現代理請求與數據抓取

    Python中,有多個可以幫助你實現代理請求和數據抓取。這些提供了豐富的功能和靈活的API,使得可以輕松地發送HTTP請求、處理響應、解析HTML/XML/JSON數據,以及進
    的頭像 發表于 10-24 07:54 ?212次閱讀

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?2134次閱讀

    python寫驗證環境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗如何。
    的頭像 發表于 07-24 09:38 ?583次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗證環境cocotb

    pycharm進行python爬蟲的步驟

    提供了許多有用的功能,如代碼自動完成、調試和版本控制等。您可以從JetBrains的官方網站下載PyCharm,并根據您的需求選擇免費社區版或付費專業版。 創建一個新的Python項目 打開
    的頭像 發表于 07-11 10:11 ?907次閱讀

    深度學習常用的Python

    深度學習作為人工智能的一個重要分支,通過模擬人類大腦中的神經網絡來解決復雜問題。Python作為一種流行的編程語言,憑借其簡潔的語法和豐富的支持,成為了深度學習研究和應用的首選工具。本文將深入探討
    的頭像 發表于 07-03 16:04 ?677次閱讀

    來寫代碼,改變的電機轉速

    一、KV值"KV值"是一個常用的參數,它表示電機的轉速常數。KV值定義為電機在無負載條件下,每增加1伏特電壓時,電機轉速增加的轉數(rpm)。換句話說,KV值是電機轉速與供電電壓之間的比例系數。即:KV=2000RPM/24V=83.3二、電機U、V、W三相線上如何調整電壓值:MOS的導通時間與關斷時間步驟1:假設我們要調整U+V-之間的
    的頭像 發表于 07-03 08:10 ?1040次閱讀
    <b class='flag-5'>來寫</b>個<b class='flag-5'>代碼</b>,改變<b class='flag-5'>你</b>的電機轉速

    FHT4644國產替代必然性崛起還不來了解一下芯片這些事嗎

    FHT4644國產替代必然性崛起還不來了解一下芯片這些事嗎 國產芯片崛起,國內發展環境變得更加穩定,國產芯片FHT4644通過性能實驗測
    發表于 06-24 17:38

    ESP32下如何加自定義Python

    我看官方有提供Micropython的bin文件,但我想根據自己外設擴充一下Python,這個應該從哪里入手? 之前做過RTT系統的python擴充,RTT有提供Micropyth
    發表于 06-18 06:27

    Pyserial來進行與stm32的串口通信,write方法給32發數據時會出現數據的錯誤和缺失怎么解決?

    我使用的是Pyserial來進行與stm32的串口通信,python可以很好地接收32發來的數據,但是我write方法給32發數據時會出現數據的錯誤和缺失,同樣的32程序我串口調
    發表于 03-12 07:32

    Python智能家居系統代碼介紹

    Python智能家居系統是一種基于Python編程語言開發的智能家居控制系統,在現代家庭中得到了越來越廣泛的應用。本文將詳細介紹Python智能家居系統的代碼實現,包括系統的結構與功能
    的頭像 發表于 01-25 09:46 ?1414次閱讀
    主站蜘蛛池模板: 国产三级精品三级| 天天操bb| 欧美在线伊人| 欧美精品一区二区三区在线播放| 日日操免费视频| 高清一级做a爱视频免费| 色www视频永久免费软件| 激情五月激情综合色区| 69日本xxxxhd| 在线免费观看h| 国产一二三区在线| 欧美网站在线播放| 性videofree极品另类| 末发育女一区二区三区| 激情综合丝袜美女一区二区| 国产小视频网站| 深夜视频免费在线观看| 久在操| 手机看片1024欧美| www.a级片| 国产免费播放| 午夜一区二区在线观看| 在线观看高清免费播放| 成年视频在线观看| 国产精品久久久久久久久免费hd | 天天操天天擦| aa黄色大片| 成人特黄午夜性a一级毛片| 国产一级特黄全黄毛片| 亚洲国产精| 天天插日日干| 2021国产成人午夜精品| 男女透逼视频| 色在线网| 日本三浦理惠子中文字幕| 色噜噜狠狠网站| 日本三级成人中文字幕乱码| 国产一区二区三区乱码| 国产精品黄网站免费观看| 天天插天天干| 444kk免费|