全排列c++代码_用代码来写音乐?我用业余时间开发的一个音乐代码语言库musicpy(一)...

最近几个月学业繁忙,但是业余时间自己开发了很多python库,内容包括数学统计,各种游戏,还有音乐等等。其实还有试着写AI方面的,但是目前还是初期进度。今天我想先介绍一下我正在开发中的一个音乐代码语言库: musicpy。

这个库可以让你用非常简洁的语法,来表达一段音乐的音符,节奏等等信息,并且可以简单地输出成midi文件的格式。这个库里面涉及到非常多的乐理知识,所以个人推荐至少要先了解一部分乐理再来使用会比较上手。相对地,如果你是一个对乐理比较了解的人,那么看完我写的教程之后你应该很快就上手了。

在musicpy里面,几个基本的类是note(音符), chord(和弦)和scale(音阶)。这几个类是构成音乐代码的基础。musicpy里面的乐理功能非常多,先从几个最基本的开始介绍吧。

1、note类(音符类),初始化一个note的实例只需要给一个音名(CDEFGAB其中一个)和一个音高(一个正整数),现在你就可以使用这个音符去做音乐里的任何事情了。你还可以设定音符的duration(音符长度)和volume(音符的音量大小)。音符长度默认为1,音量默认为100。

比如: a = note('A', 5)

这样就是把音符A5赋值给了a。

2、 接下来需要介绍使用musicpy里面的一个函数叫做“play”, play函数可以播放任何符合musicpy正确语法的语句,并且同时生成midi文件。play函数的第一个参数是音乐语句,之后几个比较重要的关键字参数是tempo(速度),name(midi文件的名字),modes(可以选择重新写一段音乐或者往之前的音乐之后追加等等)。比如之前的音符a,只要运行play(a),就可以听到音符A5的钢琴声音了。

3、chord类(和弦类),这个应该是最重要的类了。在musicpy里,和弦类被定义为“一组音符的集合”,这个定义或许比乐理里面的和弦定义更为广义化,因为按照这个定义,一首完整的乐曲也可以完全装进和弦类里面,在这个库里也确实可以2333

初始化一个和弦实例,只需要给一个音符的列表即可。还可以设定duration(所有音符的长度设置),interval(音符之间的间隔,用列表表示)。这里比较人性化的一个地方是,你在给定音符列表时无需先用note类初始化,而只需要直接写音符的名字(字符串)就行了。

比如: Cmaj7 = chord(['C5', 'E5'

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值