【全网唯一!】学院级·系统化·全系列 音乐制作编曲教程(新版)『带作业、多风格扩

P22课笔记
#主和弦的调号
mainHeXian = 1
#定义和弦类,实例化后其根音参数只能输入A-G的大写英文字母
class chord():
def __init__(self,root,**kw):
self.root = root
for third,fifth in kw.items():
setattr(self,third,fifth)
def play(self):
print("该和弦的根音是",self.root)
def transposition(self): #转调
if self.root == mainHeXian:
print("可以转到任意一个调,因为整个乐段已经回到终止的状态")
#判断主和弦的属和弦
if self.root == (mainHeXian+4)-7*((mainHeXian+4)//7):
print("可以选择级进或跳进\n")
print("直接转调,在音阶中,两个相邻的音是级进,比如do→re,re→mi是级进\n")
print("跳进过渡转调,在级进的基础上,跳过某个音,比如do→mi]n")
else:
print("万能转调")
#把str类型的根音字母转换到int类型
def Root_Letter_to_Num(self):
if self.root == "C": self.intRoot = 1
if self.root == "D": self.intRoot = 2
if self.root == "E": self.intRoot = 3
if self.root == "F": self.intRoot = 4
if self.root == "G": self.intRoot = 5
if self.root == "A": self.intRoot = 6
if self.root == "B": self.intRoot = 7
#万能转调函数
def universal_transposition(later_chord): #参数当中有个chord类
#先把和弦根音的root转换到整数
later_chord.Root_Letter_to_Num()
GuoDu_chord_root = (later_chord.intRoot+4)-7*((later_chord.intRoot+4)//7)
print("过渡和弦是",GuoDu_chord_root,"和弦")
#定义减七和弦法
def reduce7_Chord(later_chord):
GuoDu_chord_root = "#"+later_chord.root
print("过渡和弦是", GuoDu_chord_root,"和弦")
C = chord("C",third="E",fifth="G")
C.play()
print("C和弦的三音是",C.third,",五音是",C.fifth)
#测试万能转调,假设后面的和弦是F和弦
F = chord("F")
universal_transposition(F)
#测试减七和弦法,假设后面的和弦是A和弦
A = chord("A")
reduce7_Chord(A)
-----------------------------------以上为python代码
测试结果为
该和弦的根音是 C
C和弦的三音是 E ,五音是 G
过渡和弦是 1 和弦
过渡和弦是 #A 和弦
---------------------------------这篇学完后瞬感自己tobyfox、2un附体
