极简 SF2 MIDI 工具

← 返回工具
目录 开始 语法 示例 错误处理 已知限制 可视化编辑 GM 乐器 CC 速查

开始

在浏览器中快速创作 MIDI。将脚本粘贴到输入框,按 Ctrl + Enter 解析,然后点击 播放下载 MIDI

底部日志面板会按时间顺序显示 音色加载、解析、播放、清缓存等关键状态。

如果音色库未就绪,播放 按钮会被置灰,下载 MIDI 仍可使用。

cc<n>=<v>      // n 控制器编号 0~127,v 值 0~127
               // 标准 MIDI CC 是 0~119,本工具不限制(220+ 用户自负责)

语法速查

轨道与全局

BPM=<1~1000> 全局速度,默认 120。

pd=<拍数>/<分母> 拍号,如 pd=4/4pd=3/4

gd=<1~16> 轨道声明(编号)。

yq=<0~127> 轨道乐器编号(GM Program),可在轨道内重复使用以切换乐器。

td=<1~16> 轨道 MIDI 通道。

name=<名称> 轨道名称(无空格)。

bpm=<1~1000> 全局或轨道独立速度,写在轨道内时可在任意位置改变速度。

ppq=<16~9999> 设置 PPQ(ticks per quarter note),默认 480。上传 MIDI 时自动保留原始 PPQ。

音符

<音名>[#][<八度>][=<时值>]

音名:c d e f g a b# 升号。八度 0~9。时值:1=全音符 2=二分 4=四分 8=八分 16=十六分。

示例:c4=4 中央 C 四分音符,c#1=2 C#1 二分音符,d5=8 D5 八分音符。

默认时值为 4(四分音符),如 c4

数字简谱:可用数字 1~7 代替音名:1=c 2=d 3=e 4=f 5=g 6=a 7=b,同样支持升降号、八度和时值。示例:14 = c41#4 = c#455=8 = g5=8。支持与字母混用,如 14 d4 2 3

休止符

. 四分休止(1 拍)。

.=<时值> 指定时值的休止。

示例:.=8 八分休止(0.5 拍),.=16 十六分休止(0.25 拍),.=2 二分休止(2 拍),.=1 全休止(4 拍)。

音符参数

写在音符后面用逗号分隔:<音>,ld=<0~127>,cc<n>=<0~127>

ld 力度,默认 100。cc<n> 控制器编号和值。

dt=<整数> 精确 tick 时长,替代 =dur 的标准时值换算。仅在 tick= 模式下有效。

示例:c4,ld=127c4,dt=240,ld=80c4,ld=80,cc7=100

和弦

hx <音符1> <音符2> ... 同一声明中所有音符同时发音。

和弦仅在当行有效,换行即恢复单音。首音符的时值决定整个和弦的时值。

示例:hx c4 e4 g4hx c4,ld=120 e4hx c4,cc7=100 e4

琶音 py

py=<方向>=<时值> <音符1> <音符2> ... 将多个音符按时值和方向展开为琶音序列。

方向 0 = 顺序(低→高),1 = 倒序(高→低)。时值 8/16/32

每个音依次发声,总时长 = 音数 × py 时值。

示例:py=0=8 c4 e4 g4 c5 → c4 e4 g4 c5 各八分音符依次发声

py=1=8 c4 e4 g4 c5 → 倒序:c5 g4 e4 c4

py=0=8 c4,ld=120 e4 g4 → 琶音中 c4 力度 120

允许独立 CC 事件穿插:py=0=8 c4 e4 cc7=100 g4

琶音行内不允许 gd=yq=hx 等模式指令。

单音符自定义时值

琶音中的每个音符可以单独指定时值,覆盖基础的 py 时值。在音符后加 =dur 即可。

py=0=16 c4 e4 g4 c5 e5 g5 c6=2 → 前 6 个音十六分音符,c6 是二分音符

也可以结合逗号参数化语法:py=0=16 c4=4,ld=110 e4 g4 → c4 四分音符+力度 110,其余十六分

小节线

| 小节线:分隔小节。

bar=<小节号> 跳转到指定小节。

tick=<整数> 设置当前轨道的精确 tick 位置(用于上传 MIDI 生成的精确脚本)。

ppq=<16~9999> 设置 PPQ(ticks per quarter note),默认 480。上传 MIDI 时自动保留原始 PPQ。

注释

# 注释。c#1 中的 # 是升号,不视为注释。c4 # 这是注释

轨道级参数 (在 gd 声明之后)

以下指令可写在轨道内部任意位置,在当前 tick 位置生成对应 MIDI 事件:

cc<n>=<v> 发送控制器事件。

pb=<0~16383> 弯音轮(Pitch Bend),8192 为中间值。

at=<0~127> 通道触后(Channel Aftertouch)。

pt=<音符>,<压力值> 复音触后(Polyphonic Aftertouch),如 pt=60,64

sysex=<十六进制> 系统专有信息(SysEx),以 F0 开头,如 sysex=F043104C00007E00F7

key=<音名> 调号 + 变调,仅当前行有效,换行自动恢复 C。无 m/maj 后缀时(如 key=dkey=bbkey=f#),将该行音符整体变调:key=d c4 输出 D4。有 m/maj 后缀时仅写调号(如 key=F#mkey=Bbmaj),不改变音高。

text=<文本> 文本元事件。

lyric=<歌词> 歌词元事件。

marker=<标记> 标记元事件。

copyright=<文本> 版权声明元事件。

instr=<名称> 乐器名称元事件。

cue=<文本> 提示点元事件。

progname=<名称> 程序名称元事件。

smpte=<时,分,秒,帧,子帧> SMPTE 偏移量,如 smpte=0,0,0,0,0

chprefix=<0~255> MIDI 通道前缀。

port=<0~255> MIDI 端口号。

seq=<0~65535> 序列号。

seqspec=<十六进制> 音序器专有数据。

完整示例

BPM=120
pd=4/4

gd=1 name=lead yq=81 td=1
c5=4 d5=4 e5=4 f5=4 | g5=2 a5=2 b5=1 c6=2

bar=3 c5=4,ld=110,cc64=127 d5=4    # 第 3 小节强音 + sustain

gd=2 name=bass yq=32 td=2
bpm=100                             # 轨道独立 BPM
c3=2 g3=2 | c3=2 g3=2 . . . .

gd=2 cc7=90                         # bass 整体音量降到 90

gd=10 name=drums yq=0 td=10
c3=4 . c3=8 c3=8 . c3=4 . . . cc91=100

# 高级事件示例
gd=3 name=synth yq=88 td=3
tick=0 pb=8192                      # 弯音复位
c4=4
tick=480 pb=16383                   # 弯音到最高
d4=4
tick=960 key=F#m                    # 调号变为升F小调
e4=4
tick=1440 at=100                    # 通道触后
f4=4
tick=1920 pt=60,80                  # 复音触后
g4=4
tick=2400 marker=verse_start        # 标记
a4=4

上传 MIDI → 精确脚本

点击上传 MIDI 按钮,选择 .mid 文件,工具会将其转换为精确 tick 脚本。

精确脚本模式

与手写脚本不同,上传生成的脚本使用 tick=dt= 精确定位每个事件:

ppq=960

gd=1 td=9 yq=0
tick=960
c4,dt=455,ld=74
cc7=100
tick=1200
d4,dt=491,ld=78

每条 tick= 指定精确位置,dt= 指定音符持续 tick 数。ppq= 保留原始 MIDI 的 PPQ。

这种模式下,音符的 =dur 不参与时长计算,完全由 dt= 决定。解析和重建后 tick 位置零误差。

与手写脚本共存

手写脚本可以用标准时值(c4=4),上传脚本用精确 tick(c4,dt=455),互不冲突。同一轨内两种模式也可以混合使用,但一般不推荐。

注意:上传 MIDI 属于一次性转换,生成的脚本可以修改后重新导出 MIDI。

错误处理

已知限制

可视化编辑

解析成功后点击 可视化编辑 按钮,在新窗口中用键盘逐音符编辑。

每次浏览或修改都会播放该音符的最新状态。

按键功能
前后浏览音符
切换轨道(多轨时)
7 9力度减/增 1
2 8音高降/升 1 个半音

所有修改直接作用于解析后的脚本数据,不会自动写回文本框。
如需导出修改后的 MIDI,建议先关闭编辑器,在主工具重新解析已修改的脚本。

CC 控制器速查表(完整)

使用 cc<n>=<v> 作为音符参数发送控制器,例如 c4,cc64=127。作为独立 token 时(如 cc7=100)写入轨道事件流。

编号名称值范围说明
0Bank Select (MSB)0-127音色库选择高位,配合 CC32-63 选择音色
1Modulation Wheel0-127颤音轮(常用 64=开启)
2Breath Controller0-127呼吸控制器(需硬件支持)
3Undefined0-127部分合成器用作 Software/DataMaster Volume
4Foot Controller0-127脚踏控制器
5Portamento Time0-127滑音时间(值越大滑音越长)
6Data Entry (MSB)0-127数据输入高位,与 RPN/NRPN 配合使用
7Volume0-127通道音量(常用 100)
8Balance0-127立体声平衡(0=左, 64=中, 127=右)
9Undefined0-127部分设备用作 Balance LSBEffect Depth
10Pan0-127声像(0=左, 64=中, 127=右)
11Expression0-127表情控制器(与 Volume 相乘,常用 127)
12Effect Control 10-127效果控制 1(通常为 Reverb)
13Effect Control 20-127效果控制 2(通常为 Tremolo)
14Undefined0-127部分合成器用作 Unused/Reserved
15Undefined0-127部分用作 Slider Transport
16-19General Purpose 1-40-127通用控制器 1-4
20-31Undefined0-127保留/未定义,部分合成器自定义用途
32Bank Select (LSB for CC0)0-127音色库选择低位
33Modulation (LSB)0-127CC1 低位(14 位精度颤音)
34Breath (LSB)0-127CC2 低位
35Undefined (LSB for CC3)0-127CC3 低位
36Foot (LSB)0-127CC4 低位
37Portamento Time (LSB)0-127CC5 低位
38Data Entry (LSB)0-127CC6 低位
39Volume (LSB)0-127CC7 低位
40Balance (LSB)0-127CC8 低位
41Undefined (LSB for CC9)0-127CC9 低位
42Pan (LSB)0-127CC10 低位
43Expression (LSB)0-127CC11 低位
44Effect Control 1 (LSB)0-127CC12 低位
45Effect Control 2 (LSB)0-127CC13 低位
46-63Undefined (LSBs for CC14-31)0-127对应 CC14-31 的低位字节
64Sustain (Damper)0-127延音踏板(0-63=off, 64-127=on)
65Portamento0-127滑音开关(0-63=off, 64-127=on)
66Sostenuto0-127持续音踏板(0-63=off, 64-127=on)
67Soft Pedal0-127弱音踏板(0-63=off, 64-127=on)
68Legato Footswitch0-127连音踏板(0-63=normal, 64-127=legato)
69Hold 20-127延音 2(0-63=off, 64-127=on)
70Sound Variation0-127音色变体(音源指定特定效果)
71Harmonic Content0-127泛音含量 / 滤波器共振值
72Release Time0-127释音时间(值越大尾音越长)
73Attack Time0-127起音时间(值越小起音越快)
74Brightness0-127亮度 / 滤波器截止频率
75Decay Time0-127衰减时间
76Vibrato Rate0-127颤音速率
77Vibrato Depth0-127颤音深度
78Vibrato Delay0-127颤音延迟
79Filter Cutoff0-127滤波器截止(与 CC74 类似,部分合成器使用)
80-83General Purpose 5-80-127通用控制器 5-8(部分合成器用作 Effect 1-4 Depth)
84Portamento Control0-127滑音控制(指定滑音的源音符)
85-90Undefined0-127保留/未定义
91Reverb Send (Effect 1)0-127混响发送量
92Tremolo Depth (Effect 2)0-127颤音深度
93Chorus Send (Effect 3)0-127合唱发送量
94Detune/Celeste (Effect 4)0-127失谐深度
95Phaser Depth (Effect 5)0-127移相深度
96Data Increment0-127RPN/NRPN 数据 +1
97Data Decrement0-127RPN/NRPN 数据 -1
98NRPN (LSB)0-127非注册参数号低位
99NRPN (MSB)0-127非注册参数号高位
100RPN (LSB)0-127注册参数号低位
101RPN (MSB)0-127注册参数号高位
102-119Undefined0-127保留/未定义(部分合成器用于高分辨率 NRPN)
120All Sound Off0全部声音关闭(静音所有发音)
121Reset All Controllers0重置所有控制器到默认值
122Local Control0-127本地控制开关(0=off, 127=on)
123All Notes Off0全部音符关闭(释放所有按键)
124Omni Mode Off0Omni 模式关
125Omni Mode On0Omni 模式开
126Mono Mode0-127单声道模式(值=发音数)
127Poly Mode0多声道模式

CC32-63 是对应 CC0-31 的低位字节(LSB),用于 14 位精度控制。通常只需使用高位(CC0-31),低位仅在需要精细控制时一并发送。

GM 乐器编号速查表(Program Change 0-127)

使用 yq=<n> 设置轨道乐器。GM(General MIDI)标准定义了 128 种乐器。

编号乐器英文名
Piano 钢琴
0三角大钢琴Acoustic Grand Piano
1亮音大钢琴Bright Acoustic Piano
2电钢琴Electric Grand Piano
3酒吧钢琴Honky-tonk Piano
4电钢琴 1Electric Piano 1 (Rhodes)
5电钢琴 2Electric Piano 2 (DX)
6大键琴Harpsichord
7古钢琴Clavinet
Chromatic Percussion 半音阶打击乐
8钢片琴Celesta
9钟琴Glockenspiel
10八音盒Music Box
11颤音琴Vibraphone
12马林巴Marimba
13木琴Xylophone
14管钟Tubular Bells
15扬琴Dulcimer (Santur)
Organ 风琴
16拉杆风琴Drawbar Organ (Hammond)
17打击风琴Percussive Organ
18摇滚风琴Rock Organ
19教堂管风琴Church Organ
20簧风琴Reed Organ
21手风琴Accordion (French)
22口琴Harmonica
23探戈手风琴Tango Accordion (Bandoneon)
Guitar 吉他
24尼龙弦吉他Acoustic Guitar (nylon)
25钢弦吉他Acoustic Guitar (steel)
26爵士电吉他Electric Guitar (jazz)
27清音电吉他Electric Guitar (clean)
28闷音电吉他Electric Guitar (muted)
29过载吉他Overdriven Guitar
30失真吉他Distortion Guitar
31吉他泛音Guitar Harmonics
Bass 贝斯
32原声贝斯Acoustic Bass
33指弹电贝斯Electric Bass (finger)
34拨片电贝斯Electric Bass (pick)
35无品贝斯Fretless Bass
36击弦贝斯 1Slap Bass 1
37击弦贝斯 2Slap Bass 2
38合成贝斯 1Synth Bass 1
39合成贝斯 2Synth Bass 2
Strings 弦乐
40小提琴Violin
41中提琴Viola
42大提琴Cello
43低音提琴Contrabass
44震音弦乐Tremolo Strings
45拨弦弦乐Pizzicato Strings
46竖琴Orchestral Harp
47定音鼓Timpani
Ensemble 合奏
48弦乐合奏 1String Ensemble 1 (slow)
49弦乐合奏 2String Ensemble 2 (fast)
50合成弦乐 1Synth Strings 1
51合成弦乐 2Synth Strings 2
52人声"啊"Choir Aahs
53人声"呜"Voice Oohs
54合成人声Synth Voice
55管弦乐强奏Orchestra Hit
Brass 铜管
56小号Trumpet
57长号Trombone
58大号Tuba
59弱音小号Muted Trumpet
60圆号French Horn
61铜管组Brass Section
62合成铜管 1Synth Brass 1
63合成铜管 2Synth Brass 2
Reed 簧片
64高音萨克斯Soprano Sax
65中音萨克斯Alto Sax
66次中音萨克斯Tenor Sax
67上低音萨克斯Baritone Sax
68双簧管Oboe
69英国管English Horn
70巴松管Bassoon
71单簧管Clarinet
Pipe 管乐
72短笛Piccolo
73长笛Flute
74竖笛Recorder
75排箫Pan Flute
76吹瓶Blown Bottle
77尺八Shakuhachi
78哨子Whistle
79陶笛Ocarina
Synth Lead 合成主音
80方波主音Lead 1 (square)
81锯齿波主音Lead 2 (sawtooth)
82卡利欧主音Lead 3 (calliope)
83气声主音Lead 4 (chiff)
84铿锵主音Lead 5 (charang)
85人声主音Lead 6 (voice)
86五度主音Lead 7 (fifths)
87贝斯主音Lead 8 (bass + lead)
Synth Pad 合成背景
88新世纪音垫Pad 1 (new age)
89温暖音垫Pad 2 (warm)
90复合成音垫Pad 3 (polysynth)
91合唱音垫Pad 4 (choir)
92弓弦音垫Pad 5 (bowed)
93金属音垫Pad 6 (metallic)
94光环音垫Pad 7 (halo)
95扫频音垫Pad 8 (sweep)
Synth Effects 合成效果
96雨声FX 1 (rain)
97音轨FX 2 (soundtrack)
98水晶FX 3 (crystal)
99氛围FX 4 (atmosphere)
100明亮FX 5 (brightness)
101小妖FX 6 (goblins)
102回声FX 7 (echoes)
103科幻FX 8 (sci-fi)
Ethnic 民族乐器
104西塔琴Sitar
105班卓琴Banjo
106三味线Shamisen
107古筝Koto
108卡林巴Kalimba
109风笛Bagpipe
110提琴Fiddle
111山奈Shanai
Percussive 打击乐器
112叮当铃Tinkle Bell
113阿哥哥铃Agogo
114钢鼓Steel Drums
115木鱼Woodblock
116太鼓Taiko Drum
117旋律鼓Melodic Tom
118合成鼓Synth Drum
119反转镲Reverse Cymbal
Sound Effects 音效
120吉他品弦声Guitar Fret Noise
121呼吸声Breath Noise
122海浪Seashore
123鸟鸣Bird Tweet
124电话铃Telephone Ring
125直升机Helicopter
126掌声Applause
127枪声Gunshot

GM 打击乐通道为通道 10(编号 9/td=10),在此通道上每个音高对应不同打击乐器。

—— 极简 · 专注 · 在浏览器里写 MIDI