Skip to content

Latest commit

 

History

History
257 lines (180 loc) · 6.74 KB

File metadata and controls

257 lines (180 loc) · 6.74 KB
Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0748
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在: 

     个人网站: `https://oeasy.org` 
     蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
     GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
     Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

列表 - 嵌套 embedded

回忆

  • 上次了解了 音符四要素
要素 定义 影响因素 作用 举例
音高 音符的高低 发声体振动频率 构建旋律与和声框架 钢琴从左到右音高渐高
时长 音符发声持续的时间 发声体振动持续时长 时间上的长短比例 形成节奏 全音符、四分音符
音强 音符发声的强弱程度 发声体振动幅度 情感起伏 动态变化 激昂用强音 轻柔 用弱音
音色 音符声音的特色 发声体的材质、结构、发声方式等 赋予声音独特个性 钢琴清脆明亮 二胡悠扬
  • 设置好 音轨的音色之后

图片描述

  • 每个音符 都有自己的三要素
    • 音高
    • 时值
    • 音强
  • 可以利用 音符的三要素 做首歌吗??🤔

靠谱

  • 作曲 就怕 不着调

图片描述

  • 这五声调式 具体有什么区别呢?

区别

图片描述

  • 看起来 可以通过编程的方式实现

宫调式

图片描述

import mido
from mido import Message, MidiFile, MidiTrack

# 创建一个新的MIDI文件
mid = MidiFile()
# 创建一个音轨
track = MidiTrack()
mid.tracks.append(track)

# 设置速度(微秒/拍),这里设置为120拍/分钟
tempo = mido.bpm2tempo(120)
track.append(mido.MetaMessage('set_tempo', tempo=tempo))

# C宫调式的音阶对应的MIDI音符编号,从低八度宫音到高八度宫音
# C为60,D为62,E为64,G为67,A为69,下一个C为72
c_major_pentatonic_notes = [60, 62, 64, 67, 69, 72]

# 每个音符的持续时间(以ticks为单位,这里设置为480 ticks,即一个四分音符的时长)
note_duration = 480
# 每个音符的力度
velocity = 64

# 依次添加每个音符的开启和关闭消息到音轨
for note in c_major_pentatonic_notes:
    track.append(Message('note_on', note=note, velocity=velocity, time=0))
    track.append(Message('note_off', note=note, velocity=0, time=note_duration))

# 添加结束消息
track.append(mido.MetaMessage('end_of_track'))

# 保存MIDI文件
mid.save('gong.mid')

实现效果

  • 这宫调音阶
    • 从C3 到 C4 完成一个八度
    • 以 C为主音
    • 叫做 C宫

图片描述

  • 那 商调式 又 长什么样呢?

商调式

图片描述

import mido
from mido import Message, MidiFile, MidiTrack

# 创建一个新的 MIDI 文件
mid = MidiFile()
# 创建一个音轨
track = MidiTrack()
mid.tracks.append(track)

# 设置速度(微秒/拍),这里设置为 120 拍/分钟
tempo = mido.bpm2tempo(120)
track.append(mido.MetaMessage('set_tempo', tempo=tempo))

# D 商调式一个八度内的音阶对应的 MIDI 音符编号
# D 为 62,E 为 64,G 为 67,A 为 69,C 为 60,高八度 D 为 74
d_shang_mode_notes = [62, 64, 67, 69, 72, 74]

# 每个音符的持续时间(以 ticks 为单位,这里设置为 480 ticks,即一个四分音符的时长)
note_duration = 480
# 每个音符的力度
velocity = 64

# 依次添加每个音符的开启和关闭消息到音轨
for note in d_shang_mode_notes:
    track.append(Message('note_on', note=note, velocity=velocity, time=0))
    track.append(Message('note_off', note=note, velocity=0, time=note_duration))

# 添加结束消息
track.append(mido.MetaMessage('end_of_track'))

# 保存 MIDI 文件
mid.save('d_shang_mode_full_octave.mid')

D商

  • 这商调音阶
    • 从D3 到 D4 完成一个八度
    • 以 D为主音
    • 叫做 D商

图片描述

  • 宫调式 和 商调式 有什么区别呢?

区别

图片描述

  • 如果 商调式
    • 主音 落在A上
    • 从A3开始 到A4
    • 还是 商调式吗?

观察

图片描述

  • 写个代码 观察一下

代码

图片描述

import mido
from mido import Message, MidiFile, MidiTrack

# 创建一个新的 MIDI 文件
mid = MidiFile()
# 创建一个音轨
track = MidiTrack()
mid.tracks.append(track)

# 设置速度(微秒/拍),这里设置为 120 拍/分钟
tempo = mido.bpm2tempo(120)
track.append(mido.MetaMessage('set_tempo', tempo=tempo))

# 设置拍号为 4/4 拍
track.append(mido.MetaMessage('time_signature', numerator=4, denominator=2, clocks_per_click=24, notated_32nd_notes_per_beat=8))

# A 商调式一个八度内的音阶对应的 MIDI 音符编号
# A 为 69,B 为 71,D 为 74,E 为 76,G 为 79,高八度 A 为 81
a_shang_mode_notes = [69, 71, 74, 76, 79, 81]

# 每个音符的持续时间(以 ticks 为单位,这里设置一个四分音符为 480 ticks)
note_duration = 480
# 每个音符的力度
velocity = 64

# 依次添加每个音符的开启和关闭消息到音轨
for note in a_shang_mode_notes:
    track.append(Message('note_on', note=note, velocity=velocity, time=0))
    track.append(Message('note_off', note=note, velocity=0, time=note_duration))

# 添加结束消息
track.append(mido.MetaMessage('end_of_track'))

# 保存 MIDI 文件
mid.save('a_shang.mid')

具体效果

图片描述

  • 为什么 主音落在A上
    • 为什么 还是 商调式 呢?

平移

  • 把所有音符选中
    • 平行向上移动
    • 就得到了 D商

图片描述

  • 商调式 的本质是什么呢?

调式区别

  • 调式 的本质 是 音阶的音程关系
    • 西方c大调 全全半全全全半
  • 商调式 指的是 固定的音程关系

图片描述

  • 那主音 有什么用呢?

开始位置

  • 有人嗓子高 有人嗓子低沉
    • 可以 升调
    • 也就是 把主音 升上去
    • 就像 卡拉ok 里一样 升降

图片描述

  • Ab商 指的是
    • 主音 在Ab上的
    • 商调式

总结

  • 这次我们了解了
    • 中国五声调式
    • 宫商角徵羽 五种调式

图片描述

  • 一次 可以把五种调式 全写出来吗?
  • 下次再说 👋

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。