Python实现的音理学。音符、音程、音阶和和弦。
项目描述
musthe
Python实现的音理学。音符、音阶和和弦。
它仍在开发中,因此请随意阅读代码、分叉并提交拉取请求!它们非常受欢迎!
安装
要安装
$ pip install musthe
开发安装
要作为开发安装
(可选) 创建一个虚拟环境
$ python -m venv env
$ source env/bin/activate
然后安装
$ pip install -e .
如何使用
它非常简单,一切都是面向对象的方式编写的,例如
$ python
>>> from musthe import *
>>> a = Note('A') #Default A4
>>> a
Note("A4")
>>> str(a)
'A'
假设你想创建紧张,所以你想创建A的完美五度或小七度,那么你做
>>> fifth = Interval('P5')
>>> seventh = Interval('m7')
>>> a+fifth
Note("E5")
>>> str(a+fifth)
'E'
>>> str(a+seventh)
'G'
尽管重要的是要注意这些音符的八度是不同的
>>> a.octave
4
>>> (a+seventh).octave
5
现在让我们看看基本的和弦使用
>>> Chord(Note('A'), 'M')
Chord(Note('A'), 'M')
>>> Chord(Note('A'), 'M').notes
[Note("A4"), Note("C#5"), Note("E5")]
>>> Chord(Note('Bb'), 'dim').notes
[Note("Bb4"), Note("Db5"), Note("Fb5")]
你可以使用一个字符串来构建一个和弦
>>> Chord('C#aug7') == Chord(Note('C#'), 'aug7')
True
默认和弦类型是 'M' (大调)。
现在让我们试试音阶
>>> s = Scale(Note('B'), 'major')
>>> [s[i] for i in range(len(s))]
[Note('B4'), Note('C#5'), Note('D#5'), Note('E5'), Note('F#5'), Note('G#5'), Note('A#5')]
>>> s[0]
Note('B4')
>>> s[-11]
Note('E3')
它返回一个音符实例的列表,因此如果你想得到一个更干净的结果,应该做类似的事情
>>> s = Scale(Note('B'), 'major')
>>> [str(s[i]) for i in range(len(s))]
['B', 'C#', 'D#', 'E', 'F#', 'G#', 'A#']
检查音符和弦是否包含在给定的音阶中
>>> Note('D#3') in s
True
>>> Note('F3') in s
False
>>> Chord('C#m') in s
True
>>> Chord('CM') in s
False
现在让我们尝试一些更高级的东西:给定一个和弦列表,找到包含这些和弦的所有音阶
>>> chords = [Chord('Cm'), Chord('Fm7'), Chord('Gm')]
>>> for scale in Scale.all():
... if chords in scale:
... print(scale)
...
C natural_minor
Eb major
如果你安装了lilypond,你可以使用这个程序制作小旋律,示例在 'lilypond_example.py' 中给出
贡献者
按字母顺序排列
- David H
- Edgar Gavrik
- Federico Ferri
- Gonzalo Ciruelos
- Marco Heins
- nvoster
- Sri Raghavan
- Sylvain
- zsinx6
许可证
请参阅许可证文件。
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
musthe-1.0.0.tar.gz (8.0 kB 查看哈希值)
构建分发
musthe-1.0.0-py2.py3-none-any.whl (6.8 kB 查看哈希值)
关闭
musthe-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 46825a7fcbf638e2617277c2ddfceac658e09fab9746e2bff17c9a548278f6ee |
|
MD5 | 783d146fe451a0834a7500ab33edf5e9 |
|
BLAKE2b-256 | 961736aefdc50455aa5528431f75c98a36f114595626cb91d71ee4ad53285b8c |
关闭
musthe-1.0.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1439a86e46ee37bc05202ec489df2815071a7b0afce19f3808dd34441f64c57 |
|
MD5 | 7d89d34f6ce480f86b2d88b158162878 |
|
BLAKE2b-256 | fbcc82660a8755a43b916114e2a86e83931066745db79b63b6dff5448ae07901 |