最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3使用PySynth制作音樂的方法

 更新時(shí)間:2019年09月09日 09:34:54   作者:Linux  
這篇文章主要介紹了Python3使用PySynth制作音樂的方法,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本人雖然五音不全,但是聽歌還是很喜歡的。希望能利用機(jī)器自動制作音樂,本我發(fā)現(xiàn)了一個比較適合入門的有趣的開源音樂生成模塊 PySynth ,文我們主要講解下如何Python3使用PySynth制作音樂。

樂理

  •  聲音:物體振動產(chǎn)生,振動次數(shù)越多,音越高;振動次數(shù)越少,音越低
  • 可聞:人耳可以聽到的聲音在每秒16-2000此左右 樂音:振動規(guī)則產(chǎn)生,聽起來高低明顯
  • 噪音:振動不規(guī)則產(chǎn)生,聽起來高低不明顯
  • 音樂:將聲音通過藝術(shù)形象表達(dá)人們的思想感情
  • 音階:do、re、mi、sol、la、(do)
  • 調(diào)性:C、D、E、F、G、A、B

安裝

pip3 install pysynth

示例

import pysynth
# 例1:C大調(diào)
song1 = [
['c',4],['d',4],['e',4],['f',4],['g',4],['a',4],['b',4],['c5',2],['r',1],
['c3',4],['d3',4],['e3',4],['f3',4],['g3',4],['a3',4],['b3',4],['c4',2],['r',1],
['c1*', 1], ['c2*', 1], ['c3*', 1], ['c4*', 1], ['c5*', 1], ['c6*', 1], ['c7*', 1], ['c8*', 1],

]
pysynth.make_wav(song1, fn = "linuxidc.com.wav")

在當(dāng)前目錄下生成linuxidc.com.wav文件。

在Linux終端輸入以下命令試聽一下

[linuxidc@localhost www.linuxidc.com]$ aplay -D plughw:0,0 linuxidc.com.wav

試下周杰倫的晴天,bmp是67下每分鐘:

import pysynth
songx=(('e3',8),('d3',8),('f3',8),('e3',4),('c3',8),('g3',8),('b3',8),('c4',8),('b3',8),('c3',8),('c3',4),('c3',8),('a3',8),('a3',8),
('r',16),('a3',16),('g3',8),('g3',4),('g3',8),('f3',8),('e3',8),('d3',8),('e3',8),('f3',8),('e3',2.25),('e3',8),('f#3',8),('g#3',8),
('e3',4),('f3',8),('g3',8),('b3',8),('d4',8),('b3',8),('c4',8),('c4',6),('c4',16),('c4',8),('g3',8),('g3',8),('a3',8),('g3',8),('f3',8),
('a2',8),('b2',8),('c3',8),('d3',8),('e3',8),('d3',3),('e3',8),('c3',2))
pysynth.make_wav(songx, bpm=67, repeat=0, fn="linuxidc.wav")

隨機(jī)生成中國風(fēng)音樂旋律

import pysynth
import numpy as np
import re
#先限定音符12356 中國風(fēng)五聲調(diào)式 這樣聽起來比較自然
notes=np.array(["c4","d4","e4","g4","a4",])
#音符時(shí)值
durations=np.array([1,2,4,-2,-4,-8])
#隨機(jī)生成音符 重音穿插其中
sn=[]
for t in range(16):
n=np.random.randint(0,len(notes))
note=notes[n]+"*"
sn.append(note)
for i in range(np.random.randint(3,5)):
note0=notes[np.random.randint(0,len(notes))]
sn.append(note0)
#隨機(jī)生成音符時(shí)值序列 形成長短參差變幻的節(jié)奏
dn=[]
for i in range(len(sn)):
duration=durations[np.random.randint(0,len(durations))]
nn=sn[i]
dn.append(duration)
#將音符和時(shí)值合并成旋律
melody=tuple(zip(sn,dn))
print(melody)
#將樂譜合成到聲音文件
pysynth.make_wav(melody,fn =r"linuxmi.com.wav")
print("ok")

備注:

'song' 是一個被定義的列表或元組,格式是這樣 ['音', 長度]

音符是'a','g'這些; 升半音以 '#' 表示,降半音以 'b' 表示;以octave 結(jié)束 (默認(rèn)為四分音符);asterisk 在最后代表重音; 'r' 是空.

音的長度用數(shù)字表示:1=全音符; 2=二分音符; 4=四分音符, 等.

浮點(diǎn)音符寫法:

1.33 = -2 = 二分浮點(diǎn)音符

2.66 = -4 = 四分浮點(diǎn)音符

5.33 = -8 = 八分浮點(diǎn)音符

一些參數(shù):

節(jié)奏:每分鐘節(jié)拍數(shù);  bpm = 95

八度轉(zhuǎn)變 (neg. 降八度; pos. 升八度); transpose = 0

音符間停頓 (0. = 連音 ;  0.5 = 斷音); pause = 0.05

Volume boost:音量變高 (1. = 音量無變化);  boost = 1.2

Output file name 輸出文件名;fn = 'pysynth_output.wav'

其他參數(shù):

Influences the decay of harmonics over frequency. Lowering the value eliminates even more harmonics at high frequencies.

Suggested range: between 3. and 5., depending on the frequency response  of speakers/headphones used

harm_max = 4.

總結(jié)

以上所述是小編給大家介紹的Python3使用PySynth制作音樂的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • python提取具有某種特定字符串的行數(shù)據(jù)方法

    python提取具有某種特定字符串的行數(shù)據(jù)方法

    今天小編就為大家分享一篇python提取具有某種特定字符串的行數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 將python依賴包打包成window下可執(zhí)行文件bat方式

    將python依賴包打包成window下可執(zhí)行文件bat方式

    今天小編就為大家分享一篇將python依賴包打包成window下可執(zhí)行文件bat方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python 獲取et和excel的版本號

    python 獲取et和excel的版本號

    在進(jìn)行OA開發(fā)過程中,經(jīng)常會用到當(dāng)前辦公軟件的版本號,在python可以通過如下的方法獲取。
    2009-04-04
  • python中實(shí)現(xiàn)精確的浮點(diǎn)數(shù)運(yùn)算詳解

    python中實(shí)現(xiàn)精確的浮點(diǎn)數(shù)運(yùn)算詳解

    計(jì)算機(jī)智能處理可數(shù)集合的運(yùn)算,但是全體實(shí)數(shù)是不可數(shù)的,所以計(jì)算機(jī)只能用一些奇怪的方法來擬合他,于是就產(chǎn)生了浮點(diǎn)數(shù)。下面這篇文章主要給大家介紹了關(guān)于python中實(shí)現(xiàn)精確浮點(diǎn)數(shù)運(yùn)算的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Python寫的一個簡單監(jiān)控系統(tǒng)

    Python寫的一個簡單監(jiān)控系統(tǒng)

    這篇文章主要介紹了Python寫的一個簡單監(jiān)控系統(tǒng),本文講解了詳細(xì)的編碼步驟,并給給出相應(yīng)的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • Python找出list中最常出現(xiàn)元素的方法

    Python找出list中最常出現(xiàn)元素的方法

    這篇文章主要介紹了Python找出list中最常出現(xiàn)元素的方法,給出了三種常用的方法供大家對比參考,需要的朋友可以參考下
    2016-06-06
  • python執(zhí)行g(shù)et提交的方法

    python執(zhí)行g(shù)et提交的方法

    這篇文章主要介紹了python執(zhí)行g(shù)et提交的方法,實(shí)例分析了Python通過get傳遞數(shù)據(jù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python做圖像處理及視頻音頻文件分離和合成功能

    Python做圖像處理及視頻音頻文件分離和合成功能

    這篇文章主要介紹了Python做圖像處理及視頻音頻文件分離和合成功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python實(shí)現(xiàn)單例的兩種方法解讀

    python實(shí)現(xiàn)單例的兩種方法解讀

    這篇文章主要介紹了python實(shí)現(xiàn)單例的兩種方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Python的ORM框架SQLObject入門實(shí)例

    Python的ORM框架SQLObject入門實(shí)例

    這篇文章主要介紹了Python的ORM框架SQLObject簡單使用實(shí)例,使用Linux Mint 15、Python 2.7,需要的朋友可以參考下
    2014-04-04

最新評論

南召县| 同仁县| 韩城市| 广西| 望城县| 邳州市| 拉萨市| 新郑市| 兴和县| 永丰县| 巫溪县| 陇南市| 沿河| 高碑店市| 古蔺县| 贵南县| 浦县| 磐石市| 海安县| 乌拉特前旗| 台东市| 广平县| 三都| 岑溪市| 白山市| 二手房| 时尚| 丰顺县| 昌邑市| 紫金县| 府谷县| 巴青县| 洮南市| 都昌县| 宁蒗| 铁力市| 葵青区| 蕉岭县| 镇赉县| 顺昌县| 沾益县|