Skip to content

Latest commit

 

History

History
41 lines (36 loc) · 15.1 KB

File metadata and controls

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

苏三起解

import mido
from mido import MidiFile, MidiTrack, Message, MetaMessage

tpb = 480
names = ['Jinghu', 'Vocal']
programs = [0, 110]
t0 = [(77, 80, 7680, 479), (75, 80, 1, 479), (75, 80, 241, 239), (72, 80, 1, 239), (70, 80, 1, 239), (67, 80, 1, 239), (67, 80, 1, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (67, 80, 481, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 479), (67, 80, 1, 479), (75, 80, 241, 239), (70, 80, 1, 359), (72, 80, 1, 119), (70, 80, 1, 479), (67, 80, 241, 239), (67, 80, 1, 239), (70, 80, 1, 239), (75, 80, 1, 479), (72, 80, 1, 239), (70, 80, 1, 239), (75, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (68, 80, 121, 119), (67, 80, 1, 359), (70, 80, 1, 119), (72, 80, 1, 239), (67, 80, 1, 239), (67, 80, 1, 239), (75, 80, 1, 239), (70, 80, 1, 359), (72, 80, 1, 119), (70, 80, 1, 479), (75, 80, 241, 239), (72, 80, 1, 239), (70, 80, 1, 239), (67, 80, 1, 359), (70, 80, 1, 119), (70, 80, 1, 479), (72, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (68, 80, 121, 119), (67, 80, 1, 359), (70, 80, 1, 119), (72, 80, 1, 239), (67, 80, 1, 239), (67, 80, 1, 239), (75, 80, 1, 239), (70, 80, 1, 359), (72, 80, 1, 119), (70, 80, 1, 239), (67, 80, 241, 359), (70, 80, 1, 119), (75, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (74, 80, 1, 239), (72, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 359), (72, 80, 1, 119), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (70, 80, 241, 239), (72, 80, 1, 239), (75, 80, 1, 479), (70, 80, 1, 479), (72, 80, 1, 359), (75, 80, 1, 119), (70, 80, 1, 479), (70, 80, 1, 479), (89, 80, 1, 479), (87, 80, 1, 479), (87, 80, 241, 239), (84, 80, 1, 239), (82, 80, 1, 239), (79, 80, 1, 239), (79, 80, 1, 239), (79, 80, 1, 239), (82, 80, 1, 239), (84, 80, 1, 239), (79, 80, 481, 239), (79, 80, 1, 239), (82, 80, 1, 239), (84, 80, 1, 479), (79, 80, 1, 479), (87, 80, 241, 239), (82, 80, 1, 359), (84, 80, 1, 119), (82, 80, 1, 479), (79, 80, 241, 239), (79, 80, 1, 239), (82, 80, 1, 239), (87, 80, 1, 479), (84, 80, 1, 239), (82, 80, 1, 239), (87, 80, 1, 239), (87, 80, 1, 239), (79, 80, 1, 239), (82, 80, 1, 239), (84, 80, 1, 239), (80, 80, 121, 119), (79, 80, 1, 359), (82, 80, 1, 119), (84, 80, 1, 239), (79, 80, 1, 239), (79, 80, 1, 239), (87, 80, 1, 239), (82, 80, 1, 359), (84, 80, 1, 119), (82, 80, 1, 479), (87, 80, 241, 239), (84, 80, 1, 239), (82, 80, 1, 239), (79, 80, 1, 359), (82, 80, 1, 119), (82, 80, 1, 479), (84, 80, 1, 239), (87, 80, 1, 239), (79, 80, 1, 239), (82, 80, 1, 239), (84, 80, 1, 239), (80, 80, 121, 119), (79, 80, 1, 359), (82, 80, 1, 119), (84, 80, 1, 239), (79, 80, 1, 239), (79, 80, 1, 239), (87, 80, 1, 239), (82, 80, 1, 359), (84, 80, 1, 119), (82, 80, 1, 239), (79, 80, 241, 359), (82, 80, 1, 119), (87, 80, 1, 239), (87, 80, 1, 239), (79, 80, 1, 239), (82, 80, 1, 239), (84, 80, 1, 239), (86, 80, 1, 239), (84, 80, 1, 239), (82, 80, 1, 239), (82, 80, 1, 359), (84, 80, 1, 119), (79, 80, 1, 239), (82, 80, 1, 239), (84, 80, 1, 239), (82, 80, 241, 239), (84, 80, 1, 239), (87, 80, 1, 479), (82, 80, 1, 479), (84, 80, 1, 359), (87, 80, 1, 119), (82, 80, 1, 479), (82, 80, 1, 479), (77, 80, 6241, 479), (75, 80, 1, 479), (75, 80, 241, 239), (72, 80, 1, 239), (70, 80, 1, 239), (67, 80, 1, 239), (67, 80, 1, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (67, 80, 481, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 479), (67, 80, 1, 479), (75, 80, 241, 239), (70, 80, 1, 359), (72, 80, 1, 119), (70, 80, 1, 479), (67, 80, 241, 239), (67, 80, 1, 239), (70, 80, 1, 239), (75, 80, 1, 479), (72, 80, 1, 239), (70, 80, 1, 239), (75, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (68, 80, 121, 119), (67, 80, 1, 359), (70, 80, 1, 119), (72, 80, 1, 239), (67, 80, 1, 239), (67, 80, 1, 239), (75, 80, 1, 239), (70, 80, 1, 359), (72, 80, 1, 119), (70, 80, 1, 479), (75, 80, 241, 239), (72, 80, 1, 239), (70, 80, 1, 239), (67, 80, 1, 359), (70, 80, 1, 119), (70, 80, 1, 479), (72, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (68, 80, 121, 119), (67, 80, 1, 359), (70, 80, 1, 119), (72, 80, 1, 239), (67, 80, 1, 239), (67, 80, 1, 239), (75, 80, 1, 239), (70, 80, 1, 359), (72, 80, 1, 119), (70, 80, 1, 239), (67, 80, 241, 359), (70, 80, 1, 119), (75, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (74, 80, 1, 239), (72, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 359), (72, 80, 1, 119), (67, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 239), (70, 80, 241, 239), (72, 80, 1, 239), (75, 80, 1, 479), (70, 80, 1, 479), (72, 80, 1, 359), (75, 80, 1, 119), (70, 80, 1, 479), (70, 80, 1, 479)]
t1 = [(60, 80, 0, 479), (60, 80, 1, 479), (67, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 119), (70, 80, 1, 119), (67, 80, 1, 119), (70, 80, 1, 119), (72, 80, 1, 119), (75, 80, 1, 119), (70, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (65, 80, 1, 239), (63, 80, 1, 239), (65, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 119), (70, 80, 1, 119), (67, 80, 1, 119), (70, 80, 1, 119), (72, 80, 1, 119), (75, 80, 1, 119), (70, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (65, 80, 1, 239), (63, 80, 1, 239), (65, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 239), (70, 80, 1, 239), (53, 80, 1, 239), (53, 80, 1, 239), (51, 80, 1, 239), (48, 80, 1, 119), (53, 80, 1, 119), (51, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 239), (55, 80, 1, 239), (48, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (55, 80, 1, 479), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (63, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 239), (63, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 239), (56, 80, 121, 119), (55, 80, 1, 119), (56, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (63, 80, 1, 239), (58, 80, 1, 119), (55, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (56, 80, 121, 119), (55, 80, 1, 359), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (55, 80, 241, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (63, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (62, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 239), (58, 80, 1, 239), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 359), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (53, 80, 1, 239), (53, 80, 1, 239), (51, 80, 1, 239), (48, 80, 1, 119), (53, 80, 1, 119), (51, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 239), (55, 80, 1, 239), (48, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (55, 80, 1, 479), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (63, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 239), (63, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 239), (56, 80, 121, 119), (55, 80, 1, 119), (56, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (63, 80, 1, 239), (58, 80, 1, 119), (55, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (56, 80, 121, 119), (55, 80, 1, 359), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (55, 80, 241, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (63, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (62, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 239), (58, 80, 1, 239), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 359), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (70, 80, 1, 239), (72, 80, 1, 119), (70, 80, 1, 119), (67, 80, 1, 119), (70, 80, 1, 119), (72, 80, 1, 119), (75, 80, 1, 119), (70, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (65, 80, 1, 239), (63, 80, 1, 239), (65, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 239), (70, 80, 1, 239), (72, 80, 1, 119), (70, 80, 1, 119), (67, 80, 1, 119), (70, 80, 1, 119), (72, 80, 1, 119), (75, 80, 1, 119), (70, 80, 1, 239), (75, 80, 1, 239), (67, 80, 1, 239), (65, 80, 1, 239), (63, 80, 1, 239), (65, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 239), (70, 80, 1, 239), (53, 80, 1, 239), (53, 80, 1, 239), (51, 80, 1, 239), (48, 80, 1, 119), (53, 80, 1, 119), (51, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 239), (55, 80, 1, 239), (48, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (55, 80, 1, 479), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (63, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 239), (63, 80, 1, 239), (55, 80, 1, 239), (58, 80, 1, 239), (60, 80, 1, 239), (56, 80, 121, 119), (55, 80, 1, 119), (56, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (55, 80, 1, 239), (55, 80, 1, 239), (63, 80, 1, 239), (58, 80, 1, 119), (55, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 239), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (63, 80, 1, 239), (60, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (56, 80, 121, 119), (55, 80, 1, 359), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 239), (55, 80, 241, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (63, 80, 1, 239), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 239), (62, 80, 1, 239), (60, 80, 1, 239), (58, 80, 1, 239), (58, 80, 1, 239), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 359), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (63, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (55, 80, 1, 119), (58, 80, 1, 119), (60, 80, 1, 119), (63, 80, 1, 119), (58, 80, 1, 239), (58, 80, 1, 239), (58, 80, 1, 479)]

def gen():
    m = MidiFile(ticks_per_beat=tpb)
    for i, notes in enumerate([t0, t1]):
        tr = MidiTrack()
        m.tracks.append(tr)
        tr.name = names[i]
        tr.append(Message('program_change', program=programs[i], time=0))
        for n, v, t, d in notes:
            tr.append(Message('note_on', note=n, velocity=v, time=t))
            tr.append(Message('note_off', note=n, velocity=0, time=d))
    m.save('output.mid')
    print('已生成 output.mid')
gen()


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