欢迎光临散文网 会员登陆 & 注册

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

2023-06-10 12:39 作者:爱-格Egger  | 我要投稿

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附体


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

分享到微博请遵守国家法律