游戏百科

103用Python解码音乐奥秘!自然大调+钢琴结构+循环美学一次性掌握

c自然大调_开嗓音频_123454321_bpm回忆上次我们 制作了回文音符序列123454321要整合成一个从c开始到
c自然大调_开嗓音频_123454321_bpm回忆

上次我们 制作了回文音符序列

123454321

要整合成一个

从c开始

到c结束

序列不断升级

可以整合吗?🤔

xstudio编辑

13个小山峰

这有什么说法 呢?

八度

观察 钢琴卷帘

<span style="background:black;color:white;">黑键</span> 2个、3个 循环

2个 像筷子

3个 像叉子

每组 循环

octave

叫做 1个 八度

拢共 好几个八度

观察

每个八度里面

<span style="border:1px solid black;">7个白键</span> + <span style="background:black;color:white;">5个黑键</span>

有12个音

如果12个键 里面

只选择7个白键 就构成

C大调音阶

提问

请帮我使用mido,生成一个 Python,运行后可以生成c大调音阶mid

代码

复制代码

from mido import Message, MidiFile, MidiTrack, MetaMessagedef create_vocal_warmup_midi(output_file="C_major_scale.mid", tempo=500000, note_duration=500):    # 创建 MIDI 文件和音轨    mid = MidiFile()    track = MidiTrack()    mid.tracks.append(track)        # 设置速度(微秒/拍,默认中速)    track.append(MetaMessage('set_tempo', tempo=tempo))        # 定义开嗓音阶(C大调音阶:C4到C5再下行,对应MIDI音符60-67-60)    scale_notes = [60, 62, 64, 65, 67, 69, 71, 72]  # 音符序列(C4, D4, E4, F4, G4, A4, B4, C5)        # 生成音符事件    for note in scale_notes:        # 音符开启(力度64)        track.append(Message('note_on', note=note, velocity=64, time=0))        # 音符持续时间(以 ticks 为单位,需转换:1拍=480 ticks,假设4分音符为note_duration毫秒)        ticks = int((note_duration / 1000) * (mid.ticks_per_beat))        # 音符关闭        track.append(Message('note_off', note=note, velocity=64, time=ticks))        # 保存 MIDI 文件    mid.save(output_file)    print(f"MIDI 文件已生成:{output_file}")if __name__ == "__main__":    create_vocal_warmup_midi()

粘贴并运行

粘贴代码后

点击运行

运行之后

右键文件可以下载到本地

可以用本地的DAW打开

windows - 水果flstudio

mac - 库乐队

Digital Audio Workstation(数字音频工作站)

也可以在线编辑

结果

在线编辑midi

https://midi-to-gcode.bambulab.com/edit

看到了 c自然大调 音阶

C_major_scale

白键 一个不落

什么是 c自然大调 呢?

c自然大调

使用 这个音程关系(全全半全全全半)

从c开始

到c结束

有什么特点呢?

音程关系

自然大调

自然 就 符合规律

大调 就是 在调子里面

不跑调

c自然大调

1 = c

或 Do = c

写做

大调 可以

不从C 开始 吗?

更多大调

选中 8个音符

将根音 从C

移动到G

得到 G自然大调

从 G开始

到 G结束

G、A、B、C、D、E、F、F#、G

音程 为 全全半全全全半

依旧自然

依旧不跑调

所以 同样是 自然大调音阶

根音在G的 自然大调

G自然大调

起始位置

全全半全全全半的

自然大调音阶

从谁 开始都可以

只要保证 音节关系就可以

每八度 有 12个琴键

总共有 12种自然大调

要求

from mido import Message, MidiFile, MidiTrack, MetaMessagebase_note = 60       # C4note_offsets = [0, 2, 4, 5, 7, 5, 4, 2, 0]  # 123454321音程bpm = 120ticks_per_beat = 480time_per_beat = 60 / bpmtime_per_tick = time_per_beat / ticks_per_beatnote_duration = 0.5   # 前8音时长,最后音4拍track_separator = int(2 * time_per_beat / time_per_tick)  # 调间间隔2拍mid = MidiFile(ticks_per_beat=ticks_per_beat)track = MidiTrack()mid.tracks.append(track)# 添加速度控制(可选)track.append(MetaMessage('set_tempo', tempo=int(bpm * 500000 / 60)))  # 转换为微秒/拍for transpose in range(13):  # 升0~12半音(C4到C5)    current_note = base_note + transpose    for i, offset in enumerate(note_offsets):        note_num = current_note + offset        # 音符按下        track.append(Message('note_on', note=note_num, velocity=64, time=0))        # 计算时长        if i == len(note_offsets) - 1:            tick_duration = int(4 * time_per_beat / time_per_tick)        else:            tick_duration = int(note_duration / time_per_tick)        # 音符松开        track.append(Message('note_off', note_num, velocity=64, time=tick_duration))    # 调间间隔(2拍休止符)    track.append(Message('note_off', note=0, velocity=0, time=track_separator))  # 空事件表示休止mid.save('all_scales_sequential.mid')print("合并后的MIDI文件已生成(同一音轨顺序演奏)")

歌词

从南到北

海南渔舟荡舟渔南海台湾渔帆扬帆渔湾台云南普洱香洱普南云广西漓水清水漓江广广东粤茶香茶粤东广福建闽剧演剧闽建福贵州黔茶绿茶黔州贵湖南湘茶香茶湘南湖江西赣江流江赣西江浙江西湖美湖西江浙湖北黄鹤立鹤黄北湖安徽黄山秀山黄徽安江苏评弹唱弹评苏江四川蜀锦艳锦蜀川四重庆山城雾城山重川青海盐湖映湖海盐青甘肃祁连秀连祁肃甘陕西秦俑立俑秦西陕宁夏塞漠孤漠塞夏宁新疆胡杨挺杨胡疆新河南殷墟藏墟殷南河山东花生盛生花东山山西悬空寺空悬西山河北渤海涌海渤北河天津海河映河海津天京香山云绕云山香京内蒙草原牧原草蒙内辽宁辽塔耸塔辽宁辽吉林雾凇凝凇雾林吉龙江冰雕映雕冰江龙

如何改成从北到南?

歌词生成

s = "海南渔舟荡舟渔南海台湾渔帆扬帆渔湾台云南普洱香洱普南云广西漓水清水漓江广广东粤茶香茶粤东广福建闽剧演剧闽建福贵州黔茶绿茶黔州贵湖南湘茶香茶湘南湖江西赣江流江赣西江浙江西湖美湖西江浙湖北黄鹤立鹤黄北湖安徽黄山秀山黄徽安江苏评弹唱弹评苏江四川蜀锦艳锦蜀川四重庆山城雾城山重川青海盐湖映湖海盐青甘肃祁连秀连祁肃甘陕西秦俑立俑秦西陕宁夏塞漠孤漠塞夏宁新疆胡杨挺杨胡疆新河南殷墟藏墟殷南河山东花生盛生花东山山西悬空寺空悬西山河北渤海涌海渤北河天津海河映河海津天京香山云绕云山香京内蒙草原牧原草蒙内辽宁辽塔耸塔辽宁辽吉林雾凇凝凇雾林吉龙江冰雕映雕冰江龙"print(s[::-1])

除了省

地级市

县城

也可以是

有点像 骨牌

并列且递进的感觉

13个山峰

13个山峰

从C大调开始

到C#大调

再到D大调

12个琴键都做过大调的基音

回到C大调

回答最初

形成回环

动画电影

就像电影最终

又回到了最开始的地方

这里是终点

这里也是起点

总结🤔

从c大调开始

到c大调结束

这很像 衔尾蛇

绕了一圈 又回到了原点

诗歌 里面也有这种 衔尾蛇 吗?🤔

下次再说 👋