python创作音乐: 计算机创作,计算音乐
前言
上期留了尾,卖了关子。许多朋友感到不爽,气愤。这里表示歉意(๑◡๑)。我就接着上回,继续为您说。
(没看前篇的的朋友请点 这里 看上篇,否则看此文会有障碍)
如今,许多人尝试用计算机创作乐器,普遍方法是随机生成一段音乐,和现有曲子的相似度进行打分,一个分值范围内算通过。我也这么做?不,这样做效率低下,随机生成几千首只有一首通过,计算速度也十分低下(超级电脑不说),筛选出的曲子也不一定好听。
我用什么方法呢?今天,我们要了解许多令人发指的乐理,以及计算令人发指的乐理公式。准备好笔纸了么?今天,就让我,带您进入美妙复杂 的音乐殿堂吧!
乐理的代码(含拗口的句子):
友情提示:建议仔细阅读,多看几遍,看不懂不要紧,我学乐理时,是一头雾水。
废话不多说,先来讲讲“音程”:
音程及其算法:
看着玄乎,其实是最简单,它表示两音之间的“距离”,其基本单位称为度。在mido中,以“半音”为基本单位,接下来,我都采用半音计数。
1:小二度
2:大二度/减三度
3:小三度/增二度
4:大三度/减四度
5:纯四度/增三度
6:增四度/减五度
7:纯五度/减六度
8:小六度/增五度
9:大六度/减七度
10:小七度/增六度
11:大七度
(单位:半音)
除了四度和五度(八度不算),度按减小大增来计算,没有基准。但,一般“大度”为最佳选择。不信可以尝试下,是大三度好听,还是小三度好听。除四度以外,只有理论上的增减,不会说增三度,只说纯四度。因此,只需做11个函数就行了。比如说小二度:
1.def sd_two(low=None,high=None): #小二度
2. if type(low) == str:
3. ···#就是转换,前面的代码都写过
4. yin = []
5. if low and high == None:
6. high = low + 1
7. if high and low == None:
8. low = high - 1
9. yin.append(low)
10. yin.append(high)
11. return yin
我花了整天肝枯燥的做简单计算 的代码,想看去我的Github:
https://github.com/duoduo666/mido-Barock/blob/master/turn%20note/yin_cheng.py
记得给我star并关注哦
三和弦:
三和弦有四类,大三和弦,小三和弦,增三和弦,减三和弦。七和弦较复杂,有兴趣读者可自己搜搜。
大三和弦结构是:大三度+小三度。小三和弦结构是:小三度+大三度。增三和弦结构是:大三度+大三度,减三和弦结构是:小三度+小三度。最舒服的和弦是大三和弦,最恶心的和弦是减三和弦。
因此,我们只要知道一个音,就可以求出其他的音。我在这贴大三和弦代码:
1. def b_three(geng=None,zhong=None,wu=None):
2. yin = []
3. if geng and zhong == None and wu == None: #知道根音
4. zhong = geng + 4
5. wu = zhong + 3
6. yin.append(geng)
7. yin.append(zhong)
8. yin.append(wu)
9. return yin
10. if zhong and geng == None and wu == None: #知道中音
11. geng = zhong - 4
12. wu = zhong + 3
13. ····#同上
14. if wu and geng == None and zhong == None: #知道五音
15. zhong = wu - 3
16. geng = zhong - 4
17. ····#同上
转位
三和弦有四类,每类都有3种“形态”,称为“转位”,分别是:第一转位(原位),第二转位(4转位),第三转位(46转位)
每次转位把最低音(根音)提八度(12半音)。为大家理解,我画了大三和弦转位图
*单位:半音)。
X代表根音(最低音),Y代表三音(中间音),Z代表五音(最高音)。清楚多了吧,其余三个皆如此。
脑筋都不用动了,直接出转换代码。(转换位大4和弦)
2. yin = []
3. if geng and zhong and wu: #若是三个都有
4. if zhong - geng == 4 and wu - zhong == 3: #若是第一转为(三和弦)
5. geng += 12
6. yin.append(zhong)
7. yin.append(wu)
8. yin.append(geng)
9. return yin
10. if zhong - geng == 5 and wu - zhong == 4: #若是第三转为(46和弦)
11. wu -= 12
12. yin.append(wu)
13. yin.append(geng)
14. yin.append(zhong)
15. return yin
16. if zhong - geng == 3 and wu - zhong == 5:
17. return True
但是,种类太多,我花了10天(*夸张 *) 完成,这不贴了,有兴趣的到我的GitHub
https://github.com/duoduo666/mido-Barock/tree/master/turn%20note
(记得要给star和关注哦)
配上和弦(音程):
哇!可以求和弦和、音程了!鼓掌
python创作音乐: 计算机创作,计算音乐相关推荐
- 音乐计算机官方.,Boom音乐电脑版
Boom音乐电脑版是一款优质的音乐播放软件,用户可以在平台上轻松遇到好的音乐,平台还可以根据用户的喜好每日推送大量的优质音乐,爱听音乐的用户一定不要错过. 软件特色 · 这里有很全的曲库音源,各种你想 ...
- 中班音乐计算机创编,中班音乐:碰碰船
中班音乐:碰碰船 活动目标: 1.倾听音乐,能根据音乐的节奏做游戏,尝试创编不同的相互触碰动作. 2.体验与同伴合作游戏的快乐. 活动准备:蝴蝶胸饰一个,蝴蝶胸饰,磁带,录音机,幼儿已欣赏过音乐 活动 ...
- 音乐计算机研修心得,音乐研修总结
作业内容 音乐研修总结 通过这次网上音乐研修的学习,作为教师的我深深感到学习的重要性,在今后的教学中,我将立足于自己的本职工作,加强理论学习,转变教育教学观念,积极实践新课改,铺设好自己的专业化发展之 ...
- 斯坦福音乐计算机,斯坦福大学音乐硕士申请条件是什么
斯坦福大学音乐硕士申请条件是什么呢?大家都知道,斯坦福大学拥有庞大的资产及辽阔的土地.其校园面积为全美最大之一.它也是太平洋十大学联会的成员之一,同时也是美国西部学校联盟的一员.该校作为一所大型,高住 ...
- 中班音乐计算机反思,中班音乐教学反思
中班音乐教学反思 小鸭是我们班上孩子平时活动中比较喜爱也相对比较熟悉的家畜之一,小鸭走路的形态也是孩子们争相模仿的动作.因此,我在我们班开展了<小鸭洗澡>的音乐教学活动. 本次活动我设定了 ...
- python进行谱曲_python创作音乐_ 计算机创作,计算音乐
作者:隋顺意 博客:Sui_da_xia 微信:世界上的霸主本文原创,初发布于CSDN,今进军知乎 前言 上期留了尾,卖了关子.许多朋友感到不爽,就接着上回,继续为您说. (没看前篇的的朋友请点 [这 ...
- 用计算机创造的音乐,计算机音乐创作(普通组)
13.计算机音乐创作(普通组) 包括以下小类: (1)原创音乐类(纯音乐类,包含MIDI类作品.音频结合MIDI类作品). (2)原创歌曲类(曲.编曲需原创,歌词至少拥有使用权.编曲部分至少有计算机M ...
- 音乐计算机在线应用,计算机音乐技术在传统音乐创作中的应用及影响
论电影音乐创作中计算机音乐技术的应用 梁锦豪 摘 要:在计算机及网络技术为重要核心的数码时代,计算机都以"军师"的身份为它们作出不同的贡献.音乐领域也不例外,计算机音乐技术就是当今 ...
- 计算机和音乐结合的作品,用计算机创作多媒体作品──音乐和声音张燕.doc
PAGE / NUMPAGES 用计算机创作多媒体作品──音乐和声音 [教学背景] 本课题是初中信息技术下册第八章第3节内容的细化,学习对象是八年级学生,这些学生在小学的学习阶段已经掌握了一定的Pow ...
- 吴俊计算机音乐研究者,音乐创作中计算机音乐技术的应用研究
摘要: 当今,在以计算机技术为核心的数码时代,计算机音乐应运而生,它给音乐社会学研究带来了一系列的新课题.在音乐生产的各个领域里,计算机音乐都给传统音乐带来了巨大的挑战,通过使用计算机音乐系统,音乐家 ...
最新文章
- go语言接收html上传的文件,html5原生js拖拽上传(golang版)
- rabbitmq管理界面的使用
- 变量是否在数组内c语言,函数内创建的数组在调用后,是否就不存在
- VC调用C#写的DLL
- Android横竖屏切换View设置不同尺寸或等比例缩放的自定义View的onMeasure解决方案(2)...
- jvm垃圾回收机制_深入理解JVM的垃圾回收机制
- 获取repeater控件模版列中的控件
- Flash开发的基本概念
- 半小时入门MATLAB编程入门基础知识:
- javascript中基本类型和引用类型复制变量的值
- Opencv使用cv::matchTemplate进行模板匹配
- Windows中安装ElasticSearch(单机+集群+Kibana)
- 免疫算法的c语言,免疫算法(IA)
- html好看英文字体,js显示漂亮的英文字体实例
- 百度竞价推广要如何做好
- 使用DiskGenius拓展系统盘C盘的容量
- oracle的权限授予,oracle权限命令
- 微信内网页分享,分享者能看到分享的图片(描述),但被分享者无法看到
- pythonarray去除inf_python 中numpy快速去除nan, inf的方法
- 成功解决pyinstaller打包时报错:lib not found的问题
热门文章
- 金融服务公司域名备案
- 008_SSSS_ Improved Denoising Diffusion Probabilistic Models
- EAccessViolation
- HttpMessageNotReadableException: Required request body is missing
- idea开发SSM框架乐器租赁网站管理系统 (javaweb-php-asp.netC#-j2ee-springboot)
- 《WebRTC 1.0: Real-Time Communication Between Browsers》学习
- 蜂鸣器干扰通讯_提高蜂鸣器响度和降低蜂鸣器及驱动电路干扰电源的电路的制作方法...
- win7字体_win7系统为桌面添加自己喜欢的文字作为桌面背景,学习一下
- Linux (中标麒麟)离线安装 Python
- 3d touch android,苹果3DTouch好用?安卓这个功能不比它差!