AI MIDI 生成器:生成短乐句

给定调性、速度和声部即可生成一段 MIDI 乐句。可选旋律、和弦、贝斯或琶音,设定小节数后直接下载,得到的文件能拖进任何编曲软件里继续编辑。

设好调性、速度和要哪个声部,然后生成。拿到的是一段可下载、可在任意编辑器里打开的 MIDI 乐句——是音符和时间,不是音频。

01

你会得到什么,以及不会得到什么

01

输出是一个标准 MIDI 文件:音符号、位置和时长。里面没有音频。在编曲软件里打开,它会用那条轨道指向的任何乐器发声,这正是重点——同一段乐句可以是钢琴、合成器主音或者一组弦乐,取决于你给它分配什么。

02

这也意味着它本身不构成任何声音。如果你期待的是一段能直接丢进视频的成品循环,MIDI 就是错的格式,本站的音乐生成器才是对的那个。

03

乐句长度为四、八或十六小节,4/4 拍。这是刻意的:它们是用来循环、移调和编辑的构件,不是编曲。让语言模型产出完整歌曲结构,得到的东西远不如一段短乐句站得住。

02

怎么选声部

01

旋律给出的多是单音线条,就是你会唱或者当主音弹的那种。和弦叠出同时发声的音,适合垫在别的东西下面做和声底。贝斯留在低音区,倾向于在强拍上用较长的音。琶音把和弦拆成均匀的细分,是四者中最密的一个,垫在稀疏旋律下面做律动最好用。

02

实用的做法是一次只要一个声部,而不是一次要全部。先生成和弦,听听它往哪儿走,再用同样的调和速度生成旋律,看能不能叠得上。两次独立请求给你两条可以各自对齐和编辑的轨道;一次请求要两者,给你的是一条还得手工拆开的轨道。

03

如果你需要某个特定的和弦排列或者某种形状,就写进补充说明——像「从五度音起」或者「第三拍留白」这类具体指示,比换一个风格更能可靠地改变结果。

03

对结果该有什么预期

01

语言模型生成音符,擅长的是守住调性、产出说得通的节奏,弱的是长程结构。在四到八小节之内这通常没问题。到十六小节,你更常拿到的是漂移而不是发展,这也是建议从短开始的主要原因。

02

请预期需要修改。最常见的两处是:把一两个落得别扭的音挪一下,以及把最后一个音修短让乐句循环得干净。在钢琴卷帘里这两件事都是几秒钟的活,也都不意味着这次生成失败了。

03

即便参数完全相同,每次结果也会不一样。这是有用的特性而不是缺陷:生成三次挑最好的一次,通常比试图用文字精确描述你想要什么更快。

04

音符是怎么被处理的

01

音符位置按拍而不是按秒来要,因为让模型自己乘 BPM 换算成秒,是一种可靠的出错方式。换算成秒发生在之后,也就是写 MIDI 文件的时候。

02

模型的输出随后会被校验而不是直接采信。超出 MIDI 音高范围的会被夹断而不是丢弃,起点落在最后一小节之后的会被丢掉,跨过结尾的长音会被裁到小节末。时长字段坏掉时回退为一拍,而不是丢掉一个模型明确想放的音;短到听不见的碎音会被移除,因为它们只会让钢琴卷帘变脏。

03

你设定的速度会写进文件头,导入时小节线能对上。音符本身不依赖这个值——之后改工程速度,乐句会按预期被拉伸。

05

生成的 MIDI 拿来做什么

01

打破空白页是最常见的理由。在你正在用的调上生成一段乐句,就有了可以反应的东西,而反应通常比从零开始容易。多数人会留下一个片段,把其余部分重写。

02

制作人用它来做自己乐器之外的声部。不习惯用键盘思考和弦排列的吉他手可以生成一个和声底;和弦写得顺但贝斯写不动的人可以生成一条线,再把它简化。

03

学理论的人把它当作范例:在某个调上生成一组进行,看它用到哪些级数,再和自己的预期对照。因为输出是音符而不是音频,答案是可以直接看到的,不必先听写出来。

04

如果你手上有音频而不是一段描述,本站的音频转 MIDI 会去转录一段已有的录音——当你已经知道这个声部该怎么走时,那条路更合适。

06

AI MIDI 生成常见问题

文件里有音频吗?

没有。MIDI 文件只包含音符和时间。它通过你的编曲软件分配给该轨道的乐器发声,这也是为什么同一段乐句可以是钢琴也可以是合成器。

为什么要登录?

每次生成都会在我们这边花掉一次模型请求。要求账号能避免这件事被匿名大规模使用。

为什么同样的设置每次结果都不同?

生成不是确定性的。这在这里是有用的:跑三次挑最好的,通常比试图用文字精确描述你想要什么更快。

能生成一首完整的歌吗?

不能,而且这是刻意的。四到十六小节是这件事能站得住的范围。更长的请求会漂移而不是发展,所以请分声部生成、自己编排。

能生成鼓吗?

暂时不能。MIDI 里的打击乐依赖鼓映射而不是音高,需要和旋律声部不同的处理方式。

补充说明那一栏起什么作用?

它会被附加到请求里。具体的音乐性指示最有效——起始音程、要避开的节奏、音区。含糊的形容词对结果的影响,反而不如风格和情绪两个下拉框本身。

速度该设成多少?

设成你工程的速度。这个值会写进文件头,导入时小节线能对上;音符本身是按拍定位的,所以之后改速度,乐句会被正确拉伸。