No project description provided
Project description
pyPCS —— A professional music analyzer (unfinished)
pyPCS —— 旨在建立一个专业的音乐分析工具(未完成)
目前的状态:
基本功能尚未完全开发完(下面介绍的功能有的并未开发完毕),但是已经完成的模块已经上传, 可以直接用pip指令安装该库,如果想要贡献代码可以阅读 CONTRIBUTING.md 以了解更多。
Choosing Language
简体中文
PCS 指的是音级集合(Pitch-class set),是一个使用非常广泛的概念 ,因此借PCS之名。
目录
一.背景
pyPCS旨在创建 一个用于乐理研究人士的趁手的分析工具 和 一个小型音乐片段生成器(基于随机生成后条件筛选)
二.安装
pyPCS最新的版本(v0.0.4)已经上传到了PyPI,可以直接使用pip安装:
python3 -m pip install pyPCS
目前安装完之后还暂时还不能直接使用,
需要把下面这两个文件下载到环境目录(如下):
"(environment)/Lib/site-packages/pyPCS/"
三.使用
用pip安装完之后,可以用import直接导入模块
import pyPCS
目录
一维数据结构:
- 1.Chord 和弦
- 2.PitchSeries音高序列
- 3.Rhythm 时值序列
- 4.PitchClassSeries 音级序列
二维数据结构:
2.PitchSeries
Pitch series 意为音高序列,即一组有序的音高
-
属性
series:音高列表
length:音符数量。
average:平均音高。
pitch_tend:音高趋向性。(*自定义的算法)
-
方法
play():利用pygame播放该对象。强烈建议在全局用pygame.midi.Output()方法设置输出端口并传入。
-
运算
Transposition():变换音集的音高
Retrograde():翻转
Inversion():倒影
RetrogradeInversion():翻转倒影
Rotation():轮转
-
魔术方法
作为迭代器使用:返回音高。
加减运算符:返回音符被运算后的新对象,不会改变原来的类对象的值。
更改索引值:改变音集的某一个音高,返回一个新的类对象,不会改变原来的类对象。
len():获取音集的音符数量。
reversed():将音集倒序,返回一个新的类对象,不会改变原来的类对象。
3.Rhythm
-
属性
rhythm:时值列表
length:音符数量
average:平均音高
total_duration:总时值(拍)
rhythm_intensity_tend:密度趋向性。(*自定义的算法)
-
方法
play():利用pygame播放该对象。强烈建议在全局用pygame.midi.Output()方法设置输出端口并传入。
-
运算
Retrograde():翻转
Rotation():轮转
-
魔术方法
作为迭代器使用:返回时值。
更改索引值:改变音集的某一个音高,返回一个新的类对象,不会改变原来的类对象。
len():获取音集的音符数量。
reversed():翻转,返回一个新的类对象,不会改变原来的类对象。
4.PitchClassSeries
-
属性
series:音级序列
length:音符数量。
-
方法
play():利用pygame播放该对象。强烈建议在全局用pygame.midi.Output()方法设置输出端口并传入。
-
运算
Transposition():加减后mod12,变换音级。
Retrograde():翻转音高&节奏
Inversion():倒影
RetrogradeInversion():翻转倒影
Rotation():轮转
-
魔术方法
作为迭代器使用:返回音级。
加减运算符:返回音符被运算后的新对象,不会改变原来的类对象的值。
更改索引值:改变音集的某一个音高,返回一个新的类对象,不会改变原来的类对象。
len():获取音集的音符数量。
reversed():将音级倒序,返回一个新的类对象,不会改变原来的类对象。
5.PitchSegment
Pitch segment 意为音高截段,相关名词可以参考文献《Introduction to Post-Tonal Theory》(《后调性理论导论》)
PitchSegment 是一个用于处理有序的音集的 Python 类,使用前需要先建立PitchSeries和Rhythm对象再传入。
-
属性
segment:包括音高和时值两个列表。
pitch_set:音高列表。
duration_set:音符的时值列表(拍)。
length:音符数量。
total_duration:总时值(拍)。
w_average:加权平均音高。
pitch_tend:音高趋向性。(*自定义的算法)
rhythm_intensity_tend:密度趋向性。(*自定义的算法)
-
方法
get_pc_segment():将音集转化为音级集。
get_rhythm_intensity_tend():获取密度趋向性。
change_rhyme():产生新节奏的截段。
getSubsegment():获取子截段
getCounterpoint():使用对位法生成一个对位声部。
play():利用pygame播放该对象。强烈建议在全局用pygame.midi.Output()方法设置输出端口并传入。
-
运算
Transposition():变换音集的音高。
Retrograde_with_rhythm():翻转音高&节奏
Retrograde_without_rhythm():翻转音高,不翻转节奏
Inversion():倒影
RetrogradeInversion():翻转倒影,包括节奏
Rotation_with_rhythm():轮转,包括节奏
Rotation_without_rhythm():轮转,不包括节奏
-
魔术方法
作为迭代器使用:返回一个包含音高和时值的元组。
加减运算符:返回音符被运算后的新对象,不会改变原来的类对象的值。
更改索引值:改变音集的某一个音高,返回一个新的类对象,不会改变原来的类对象。
len():获取音集的音符数量。
reversed():将音集倒序(包括节奏),返回一个新的类对象,不会改变原来的类对象。
English
PCS refers to Pitch-class Set, which is a universal concept in post tonal theory.
Table of Contents
Background
Nowadays, AI is developing rapidly. It's easy to preview its broad prospect in the field of music analyzing and composing.
This project aims to create a powerful tool for complex music analysing and tiny pieces' generating (based on random generating then screening)
Install
The latest release (v0.0.1 but still unfinished) is available on PyPI, and you can install it by saying
python3 -m pip install pyPCS
Usage
After installation, you can simply use the module by
import pyPCS
Table of Contents
1d array:
- 1.Chord
- 2.PitchSeries
- 3.Rhythm duration(beat) set
- 4.PitchClassSeries
2d array:
2.PitchSeries
Pitch series 意为音高序列,即一组有序的音高
-
属性
series:音高列表
length:音符数量。
average:平均音高。
pitch_tend:音高趋向性。(*自定义的算法)
-
方法
play():利用pygame播放该对象。强烈建议在全局用pygame.midi.Output()方法设置输出端口并传入。
-
运算
Transposition():变换音集的音高
Retrograde():翻转
Inversion():倒影
RetrogradeInversion():翻转倒影
Rotation():轮转
-
魔术方法
作为迭代器使用:返回音高。
加减运算符:返回音符被运算后的新对象,不会改变原来的类对象的值。
更改索引值:改变音集的某一个音高,返回一个新的类对象,不会改变原来的类对象。
len():获取音集的音符数量。
reversed():将音集倒序,返回一个新的类对象,不会改变原来的类对象。
3.Rhythm
-
属性
rhythm:时值列表
length:音符数量
average:平均音高
total_duration:总时值(拍)
rhythm_intensity_tend:密度趋向性。(*自定义的算法)
-
方法
play():利用pygame播放该对象。强烈建议在全局用pygame.midi.Output()方法设置输出端口并传入。
-
运算
Retrograde():翻转
Rotation():轮转
-
魔术方法
作为迭代器使用:返回时值。
更改索引值:改变音集的某一个音高,返回一个新的类对象,不会改变原来的类对象。
len():获取音集的音符数量。
reversed():翻转,返回一个新的类对象,不会改变原来的类对象。
4.PitchClassSeries
-
属性
series:音级序列
length:音符数量。
-
方法
play():利用pygame播放该对象。强烈建议在全局用pygame.midi.Output()方法设置输出端口并传入。
-
运算
Transposition():加减后mod12,变换音级。
Retrograde():翻转音高&节奏
Inversion():倒影
RetrogradeInversion():翻转倒影
Rotation():轮转
-
魔术方法
作为迭代器使用:返回音级。
加减运算符:返回音符被运算后的新对象,不会改变原来的类对象的值。
更改索引值:改变音集的某一个音高,返回一个新的类对象,不会改变原来的类对象。
len():获取音集的音符数量。
reversed():将音级倒序,返回一个新的类对象,不会改变原来的类对象。
5.PitchSegment
Pitch segment 意为音高截段,相关名词可以参考文献《Introduction to Post-Tonal Theory》(《后调性理论导论》)
PitchSegment 是一个用于处理有序的音集的 Python 类,使用前需要先建立PitchSeries和Rhythm对象再传入。
-
属性
segment:包括音高和时值两个列表。
pitch_set:音高列表。
duration_set:音符的时值列表(拍)。
length:音符数量。
total_duration:总时值(拍)。
w_average:加权平均音高。
pitch_tend:音高趋向性。(*自定义的算法)
rhythm_intensity_tend:密度趋向性。(*自定义的算法)
-
方法
get_pc_segment():将音集转化为音级集。
get_rhythm_intensity_tend():获取密度趋向性。
change_rhyme():产生新节奏的截段。
getSubsegment():获取子截段
getCounterpoint():使用对位法生成一个对位声部。
play():利用pygame播放该对象。强烈建议在全局用pygame.midi.Output()方法设置输出端口并传入。
-
运算
Transposition():变换音集的音高。
Retrograde_with_rhythm():翻转音高&节奏
Retrograde_without_rhythm():翻转音高,不翻转节奏
Inversion():倒影
RetrogradeInversion():翻转倒影,包括节奏
Rotation_with_rhythm():轮转,包括节奏
Rotation_without_rhythm():轮转,不包括节奏
-
魔术方法
作为迭代器使用:返回一个包含音高和时值的元组。
加减运算符:返回音符被运算后的新对象,不会改变原来的类对象的值。
更改索引值:改变音集的某一个音高,返回一个新的类对象,不会改变原来的类对象。
len():获取音集的音符数量。
reversed():将音集倒序(包括节奏),返回一个新的类对象,不会改变原来的类对象。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pypcs-0.0.5.tar.gz
.
File metadata
- Download URL: pypcs-0.0.5.tar.gz
- Upload date:
- Size: 250.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39442e07e1e8a2cd1e19227dcdf2276825148f104d817fb38010be9aec083d26 |
|
MD5 | dd40f92c8c71c8ad9265e4d288bf3f6c |
|
BLAKE2b-256 | 833034cd51b7daed532b6826258f6e9c76bf6e20af84d07a609351c6cdd64b8c |