Skip to content

Latest commit

 

History

History
197 lines (134 loc) · 4.85 KB

File metadata and controls

197 lines (134 loc) · 4.85 KB
Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0751
- 这是 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` 
---

列表 - 切片 - slice - 步长 - step

回忆

  • 上次我们给《弹歌》谱了曲

图片描述

  • 二言 的 歌曲 现在很少了
    • 昆曲的题目 一般还是 二言的
    • 以后 歌曲会如何 变化呢?🤔

二变四

  • 硕鼠硕鼠 无食我黍
  • 三岁贯女,莫我肯顾
  • 逝将去女 适彼乐土
  • 乐土乐土,爰得我所
  • 表达了奴隶对剥削者的愤恨和对理想乐土的向往

四言绝句

图片描述

  • 想给这个 配乐

提问

图片描述

import mido
from mido import Message, MidiFile, MidiTrack
from mido.midifiles import midifiles

# 定义每个字对应的音符(以C大调五声音阶为例,体现起承转合)
# 第一句:平稳开始
phrase1_notes = ['C4', 'D4', 'E4', 'D4']
# 第二句:承接并稍微推进
phrase2_notes = ['D4', 'E4', 'G4', 'A4']
# 第三句:转折,情绪有所提升
phrase3_notes = ['G4', 'A4', 'C5', 'D5']
# 第四句:回归与收束
phrase4_notes = ['E4', 'D4', 'C4', 'C4']

# 创建MIDI文件和音轨
mid = MidiFile()
track = MidiTrack()
mid.tracks.append(track)

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

# 函数:将音符添加到音轨
# 在文件开头添加音符字典(C大调五声音阶)
NOTE_MAP = {
    'C4': 60,  # 宫
    'D4': 62,  # 商
    'E4': 64,  # 角
    'G4': 67,  # 徵
    'A4': 69,  # 羽
    'C5': 72,  # 高八度宫
    'D5': 74   # 新增D5映射
}

# 修改后的add_phrase_to_track函数
def add_phrase_to_track(notes):
    for n in notes:
        midi_note = NOTE_MAP[n]  # 通过字典获取MIDI编号
        track.append(Message('note_on', note=midi_note, velocity=64, time=0))
        track.append(Message('note_off', note=midi_note, velocity=64, time=480))

# 原代码中的phrase定义需要与字典键匹配,例如:
# 添加四句诗对应的音符到音轨
add_phrase_to_track(phrase1_notes)
add_phrase_to_track(phrase2_notes)
add_phrase_to_track(phrase3_notes)
add_phrase_to_track(phrase4_notes)

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

效果

图片描述

  • 填上词 听听

填词

关关雎鸠在河之洲窈窕淑女君子好逑
  • 填上听听

图片描述

  • 为什么这么多四个字的歌曲呢??

提问

图片描述

唐尧

图片描述

  • 情感朴素真挚

图片描述

  • 舜帝呢?

虞舜

  • 歌颂舜帝的歌曲很多

图片描述

  • 而且舜帝本身也是一个音乐家

韶乐

  • 济南 今天还有 舜打的井
    • 南巡到了广东韶关 做了韶乐
    • 孔子听了之后 三个月不知道肉味
  • 尧舜 之后 就是 大禹

图片描述

  • 有什么 大禹治水的歌曲吗?

候人兮猗

  • 大禹治水 三过家门

    • 妻子 涂山氏
  • 《候人歌》

    • 只有候人兮猗(hòu rén xī yī) 一句歌词

图片描述

陈胜吴广

  • 王侯将相,宁有种乎
  • 体现了对命运的抗争和对等级制度的质疑。

黄巾起义

  • 苍天已死,黄天当立,岁在甲子,天下大吉。”借宗教预言表达了推翻东汉王朝的决心。

太平天国

  • 天下一家,同享太平

  • 体现了太平天国追求社会平等、人人共享太平的理想。

    • “无处不均匀,无人不饱暖”:出自《天朝田亩制度》,反映了对土地分配平等和生活保障的诉求。

    • **“扶清灭洋”**是义和团运动的口号,注意不要混淆。太平天国的口号更侧重于反对清朝统治和封建剥削,构建理想中的“天国”社会。

说起来顺

  • 鱼腹藏书
  • 篝火狐鸣

总结🤔

  • 这次我们给《关雎》谱了曲

图片描述

  • 还看了 上古时代
    • 尧舜禹 的 史诗
    • 到了 大禹 时代
    • 国家就建立起来了
  • 关于 夏商周 的建立
    • 有什么 史诗 吗?
  • 下次再说 👋

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