91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python國產(chǎn)庫推薦之musicpy:讓你用代碼來寫音樂

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)分析與開發(fā) ? 作者:數(shù)據(jù)分析與開發(fā) ? 2020-12-16 11:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

(說明:這個(gè)庫的作者還在持續(xù)開發(fā)中,很有創(chuàng)意的一個(gè)庫,向大家推薦)

安裝

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

import 這個(gè)庫:

from musicpy import *

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

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

詳細(xì)的musicpy數(shù)據(jù)結(jié)構(gòu),基礎(chǔ)語法以及使用教程,請(qǐng)看作者正在寫的Wiki,作者會(huì)盡量把所有的細(xì)節(jié)都講清楚。

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

musicpy說明

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

在musicpy這門語言的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)中,音符類本身是等值為純數(shù)字的,也就是完全可以作為純數(shù)字使用。

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

也因此在這門語言的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)中,音符類,和弦類,音階類都是可以進(jìn)行數(shù)學(xué)運(yùn)算的,比如線性代數(shù)領(lǐng)域的運(yùn)算,離散數(shù)學(xué)領(lǐng)域的運(yùn)算等等。也可以在這門語言的數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上建立一整套樂理邏輯的算法,結(jié)合純數(shù)學(xué)邏輯來進(jìn)行多方面的音樂分析研究。

現(xiàn)代音樂領(lǐng)域的很多實(shí)驗(yàn)性質(zhì)的音樂,比如序列主義,偶然音樂,后現(xiàn)代主義音樂(比如極簡(jiǎn)主義音樂),理論上全部都可以在這門語言的純數(shù)字化的數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行嚴(yán)格的創(chuàng)作。即使不提實(shí)驗(yàn)性質(zhì)的音樂,這門語言也可以寫任何的古典音樂,爵士音樂,流行音樂。

作者每隔兩三天就會(huì)更新一次這個(gè)庫的內(nèi)容,具體的更新內(nèi)容請(qǐng)大家看這個(gè)庫里的“更新日志Changelog.txt”,里面有按照日期的每次更新的非常詳細(xì)的細(xì)節(jié)與說明。

更新日志的鏈接:

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

初衷

作者開發(fā)這個(gè)語言主要的初衷有兩點(diǎn):

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

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

為何不用深度學(xué)習(xí)?

作者在想不用深度學(xué)習(xí),神經(jīng)網(wǎng)絡(luò)這些東西,直接教給AI樂理和某個(gè)人的風(fēng)格化的樂理規(guī)則,那么AI或許可以做的比深度學(xué)習(xí)大數(shù)據(jù)訓(xùn)練出來的更好。因?yàn)榇髷?shù)據(jù)訓(xùn)練只是給AI模仿數(shù)據(jù)本身而已,這樣其實(shí)AI并沒有真正地和人類自己一樣理解作曲是什么,樂理是什么,所以作者才想通過這個(gè)庫實(shí)現(xiàn)把人的樂理同樣教給AI,讓AI真正意義上地理解樂理,這樣的話,作曲起來就不會(huì)生硬了,沒有機(jī)器和隨機(jī)的感覺了。

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

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

如何教AI樂理?

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

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

結(jié)語

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

作者從去年的10月份開始開發(fā)musicpy,目前這個(gè)項(xiàng)目還在初期進(jìn)度,不過已經(jīng)有一套比較完整的樂理邏輯語法了。這個(gè)庫的使用教程視頻作者會(huì)持續(xù)更新。作者之前發(fā)的專欄也有一部分的使用教學(xué)。

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

責(zé)任編輯:xj

原文標(biāo)題:Python 國產(chǎn)庫推薦之 musicpy

文章出處:【微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    74011
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4877

    瀏覽量

    90079

原文標(biāo)題:Python 國產(chǎn)庫推薦之 musicpy

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    無法去除 Python VisionFive.i2c 的終端輸出?

    燒的官方最新八月份的 debian 12 的系統(tǒng)。 根據(jù)這個(gè)案例安裝好了 python 環(huán)境和 VisionFive 。 執(zhí)行下面這條代碼: import VisionFive.i2c
    發(fā)表于 02-25 06:13

    Termux中調(diào)試圣誕樹Python代碼

    python --version 如果輸出Python 3.x.x(比如3.11.4),說明安裝成功。 二、代碼編寫(兩種方式可選) 方式1:Termux自帶編輯器(nano
    發(fā)表于 12-09 09:02

    Python調(diào)用API教程

    兩個(gè)不同系統(tǒng)之間的信息交互。在這篇文章中,我們將詳細(xì)介紹Python調(diào)用API的方法和技巧。 一、Requests發(fā)送HTTP請(qǐng)求 使用Python調(diào)用API的第一步是發(fā)送HTTP
    的頭像 發(fā)表于 11-03 09:15 ?902次閱讀

    國產(chǎn)數(shù)據(jù)的AI戰(zhàn)事

    國產(chǎn)數(shù)據(jù)硝煙再起,Vastbase V100構(gòu)筑企業(yè)智能基座
    的頭像 發(fā)表于 10-24 20:45 ?4063次閱讀
    <b class='flag-5'>國產(chǎn)</b>數(shù)據(jù)<b class='flag-5'>庫</b>的AI戰(zhàn)事

    Python 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)

    一、技術(shù)選型:為什么選 Python 而不是 Java? 結(jié)論: “調(diào)研階段 Python,上線后如果 QPS 爆表再考慮 Java 重構(gòu)?!?二、整體架構(gòu)速覽(3 分鐘看懂) 三、開發(fā)前準(zhǔn)備(5
    的頭像 發(fā)表于 10-21 16:59 ?525次閱讀
    <b class='flag-5'>用</b> <b class='flag-5'>Python</b> 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)

    STM32已經(jīng)標(biāo)準(zhǔn)寫好的代碼,怎么導(dǎo)入RT THREAD?

    之前已經(jīng)在裸機(jī)上實(shí)現(xiàn)了SAE J1939協(xié)議,因?yàn)橐砑覫OT 功能,現(xiàn)在想添加RT THREAD.因?yàn)橹皩懧銠C(jī)程序的時(shí)候的是標(biāo)準(zhǔn)。而RT THREAD STUDIO自動(dòng)生成的是HAL,請(qǐng)問有什么好方法在我原來的
    發(fā)表于 09-19 06:16

    告別代碼迷宮!exgnss擴(kuò)展GNSS定位開發(fā)秒變簡(jiǎn)單

    還在為GNSS定位的復(fù)雜代碼頭疼?exgnss擴(kuò)展掃清障礙!它提供簡(jiǎn)潔的接口和高效的工具鏈,從信號(hào)捕獲到坐標(biāo)解析一氣呵成,開發(fā)效率直線飆升。 一、exgnss的三種應(yīng)用模式 e
    的頭像 發(fā)表于 09-10 17:23 ?813次閱讀
    告別<b class='flag-5'>代碼</b>迷宮!exgnss擴(kuò)展<b class='flag-5'>庫</b><b class='flag-5'>讓</b>GNSS定位開發(fā)秒變簡(jiǎn)單

    三款主流國產(chǎn)數(shù)據(jù)的技術(shù)特點(diǎn)

    隨著數(shù)字經(jīng)濟(jì)的快速發(fā)展和數(shù)據(jù)安全要求的提升,國產(chǎn)數(shù)據(jù)正迎來前所未有的發(fā)展機(jī)遇。在信創(chuàng)浪潮推動(dòng)下,達(dá)夢(mèng)數(shù)據(jù)、TiDB、華為高斯數(shù)據(jù)國產(chǎn)
    的頭像 發(fā)表于 07-14 11:08 ?1180次閱讀

    基礎(chǔ)篇3:掌握Python中的條件語句與循環(huán)

    : print(\"還很小。\") 循環(huán) 循環(huán)允許程序重復(fù)執(zhí)行一段代碼,直到滿足某個(gè)條件為止。Python中有幾種不同的循環(huán)結(jié)構(gòu)。 for循環(huán) for循環(huán)通常用于遍歷序列(如列表、元組
    發(fā)表于 07-03 16:13

    【正點(diǎn)原子STM32MP257開發(fā)板試用】5.播放音樂

    前言 感謝正點(diǎn)原子和電子發(fā)燒友論壇提供的這次機(jī)會(huì)我有機(jī)會(huì)體驗(yàn)這款正點(diǎn)原子STM32MP257開發(fā)板,希望可以借這個(gè)機(jī)會(huì)好好學(xué)習(xí)一下。 環(huán)境搭建 播放音樂有很多Python比如pyg
    發(fā)表于 06-28 14:27

    STM32已經(jīng)標(biāo)準(zhǔn)寫好的代碼,怎么導(dǎo)入RT THREAD?

    之前已經(jīng)在裸機(jī)上實(shí)現(xiàn)了SAE J1939協(xié)議,因?yàn)橐砑覫OT 功能,現(xiàn)在想添加RT THREAD.因?yàn)橹皩懧銠C(jī)程序的時(shí)候的是標(biāo)準(zhǔn)。而RT THREAD STUDIO自動(dòng)生成的是HAL,請(qǐng)問有什么好方法在我原來的
    發(fā)表于 05-27 06:01

    這個(gè)夏天,代碼定義的硬核實(shí)力!RT-Thread開源夏重磅來襲

    還在為簡(jiǎn)歷項(xiàng)目發(fā)愁?想和業(yè)界大牛零距離交流?渴望自己的代碼跑在千萬級(jí)設(shè)備上?今年,RT-Thread再次加入開源夏,帶來了四個(gè)有趣又有挑戰(zhàn)的項(xiàng)目任務(wù)。我們帶你一起收貨技術(shù)成長(zhǎng)、導(dǎo)師指導(dǎo)、現(xiàn)金
    的頭像 發(fā)表于 05-23 16:06 ?848次閱讀
    這個(gè)夏天,<b class='flag-5'>用</b><b class='flag-5'>代碼</b>定義<b class='flag-5'>你</b>的硬核實(shí)力!RT-Thread開源<b class='flag-5'>之</b>夏重磅來襲

    python入門圣經(jīng)-高清電子書(建議下載)

    和Pygal 等強(qiáng)大的Python 和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測(cè)試等內(nèi)容; 第二部分將理論付諸實(shí)踐,講解如何開發(fā)三個(gè)項(xiàng)目,包括簡(jiǎn)單的Python
    發(fā)表于 04-10 16:53

    性能飆升!使用Python并行計(jì)算榨干樹莓派算力!

    甚至微型服務(wù)器時(shí),是否也遇到過程序卡頓、視頻處理延遲的尷尬?今天我們就手把手教你Python并行處理技術(shù),樹莓派的性能瞬間翻倍!歡迎在評(píng)論區(qū)曬出
    的頭像 發(fā)表于 03-26 17:08 ?939次閱讀
    <b class='flag-5'>讓</b>性能飆升!使用<b class='flag-5'>Python</b>并行計(jì)算榨干樹莓派算力!

    ?如何在虛擬環(huán)境中使用 Python,提升的開發(fā)體驗(yàn)~

    RaspberryPiOS預(yù)裝了Python,需要使用其虛擬環(huán)境來安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負(fù)責(zé)人NateContino撰寫的一篇實(shí)用教程,幫助你入門
    的頭像 發(fā)表于 03-25 09:34 ?821次閱讀
    ?如何在虛擬環(huán)境中使用 <b class='flag-5'>Python</b>,提升<b class='flag-5'>你</b>的開發(fā)體驗(yàn)~