// 本脚本格式化乐器名称，数据来源：https://olon.notion.site/563e6245fe0c4c79999f45ab1b567486
// 直接复制 --- 所有乐器名称 --- 下,所有内容
// 目前不支持合成乐器

const names = `- Piano（钢 琴）
    - 0 Acoustic Grand Piano 大钢琴（声学钢琴）
    - 1 Bright Acoustic Piano 明亮的钢琴
    - 2 Electric Grand Piano 电钢琴
    - 3 Honky-tonk Piano酒吧钢琴
    - 4 Rhodes Piano 柔和的电钢琴
    - 5 Chorused Piano 加合唱效果的电钢琴
    - 6 Harpsichord 羽管键琴（拨弦古钢琴）
    - 7 Clavichord 科拉维科特琴（击弦古钢琴）
- 色彩打击乐器
    - 8 Celesta 钢片琴
    - 9 Glockenspiel钟琴
    - 10 Music box 八音盒
    - 11 Vibraphone 颤音琴
    - 12 Marimba 马林巴
    - 13 Xylophone 木琴
    - 14 Tubular Bells 管钟
    - 15 Dulcimer 大扬琴
- 风琴
    - 16 Hammond Organ 击杆风琴
    - 17 Percussive Organ 打击式风琴
    - 18 Rock Organ 摇滚风琴
    - 19 Church Organ 教堂风琴
    - 20 Reed Organ 簧管风琴
    - 21 Accordian 手风琴
    - 22 Harmonica 口琴
    - 23 Tango Accordian 探戈手风琴
- 吉他
    - 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 吉他和音
- 贝司
    - 32 Acoustic Bass 大贝司（声学贝司）
    - 33 Electric Bass(finger) 电贝司（指弹）
    - 34 Electric Bass (pick) 电贝司（拨片）
    - 35 Fretless Bass 无品贝司
    - 36 Slap Bass 1 掌击Bass 1
    - 37 Slap Bass 2 掌击Bass 2
    - 38 Synth Bass 1 电子合成Bass 1
    - 39 Synth Bass 2 电子合成Bass 2
- 弦乐
    - 40 Violin 小提琴
    - 41 Viola 中提琴
    - 42 Cello 大提琴
    - 43 Contrabass 低音大提琴
    - 44 Tremolo Strings 弦乐群颤音音色
    - 45 Pizzicato Strings 弦乐群拨弦音色
    - 46 Orchestral Harp 竖琴
    - 47 Timpani 定音鼓
- 合奏/合唱
    - 48 String Ensemble 1 弦乐合奏音色1
    - 49 String Ensemble 2 弦乐合奏音色2
    - 50 Synth Strings 1 合成弦乐合奏音色1
    - 51 Synth Strings 2 合成弦乐合奏音色2
    - 52 Choir Aahs 人声合唱“啊”
    - 53 Voice Oohs 人声“嘟”
    - 54 Synth Voice 合成人声
    - 55 Orchestra Hit 管弦乐敲击齐奏
- 铜管
    - 56 Trumpet 小号
    - 57 Trombone 长号
    - 58 Tuba 大号
    - 59 Muted Trumpet 加弱音器小号
    - 60 French Horn 法国号（圆号）
    - 61 Brass Section 铜管组（铜管乐器合奏音色）
    - 62 Synth Brass 1 合成铜管音色1
    - 63 Synth Brass 2 合成铜管音色2
- 簧管
    - 64 Soprano Sax 高音萨克斯风
    - 65 Alto Sax 中音萨克斯风
    - 66 Tenor Sax 次中音萨克斯风
    - 67 Baritone Sax 低音萨克斯风
    - 68 Oboe 双簧管
    - 69 English Horn 英国管
    - 70 Bassoon 巴松（大管）
    - 71 Clarinet 单簧管（黑管）
- 笛
    - 72 Piccolo 短笛
    - 73 Flute 长笛
    - 74 Recorder 竖笛
    - 75 Pan Flute 排箫
    - 76 Bottle Blow 瓶木管
    - 77 Shakuhachi日本尺八
    - 78 Whistle 口哨声
    - 79 Ocarina 奥卡雷那
- 合成主音
    - 80 Lead 1 (square) 合成主音1（方波）
    - 81 Lead 2 (sawtooth) 合成主音2（锯齿波）
    - 82 Lead 3 (caliope lead) 合成主音3
    - 83 Lead 4 (chiff lead) 合成主音4
    - 84 Lead 5 (charang) 合成主音5
    - 85 Lead 6 (voice) 合成主音6（人声）
    - 86 Lead 7 (fifths) 合成主音7（平行五度）
    - 87 Lead 8 (bass+lead)合成主音8（贝司加主音）
- 合成音色
    - 88 Pad 1 (new age) 合成音色1（新世纪）
    - 89 Pad 2 (warm) 合成音色2 （温暖）
    - 90 Pad 3 (polysynth) 合成音色3
    - 91 Pad 4 (choir) 合成音色4 （合唱）
    - 92 Pad 5 (bowed) 合成音色5
    - 93 Pad 6 (metallic) 合成音色6 （金属声）
    - 94 Pad 7 (halo) 合成音色7 （光环）
    - 95 Pad 8 (sweep) 合成音色8
- 合成效果
    - 96 FX 1 (rain) 合成效果 1 雨声
    - 97 FX 2 (soundtrack) 合成效果 2 音轨
    - 98 FX 3 (crystal) 合成效果 3 水晶
    - 99 FX 4 (atmosphere) 合成效果 4 大气
    - 100 FX 5 (brightness) 合成效果 5 明亮
    - 101 FX 6 (goblins) 合成效果 6 鬼怪
    - 102 FX 7 (echoes) 合成效果 7 回声
    - 103 FX 8 (sci-fi) 合成效果 8 科幻
- 民间乐器
    - 104 Sitar 西塔尔（印度）
    - 105 Banjo 班卓琴（美洲）
    - 106 Shamisen 三昧线（日本）
    - 107 Koto 十三弦筝（日本）
    - 108 Kalimba 卡林巴
    - 109 Bagpipe 风笛
    - 110 Fiddle 民族提琴
    - 111 Shanai 山奈
- 打击乐器
    - 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 枪声
- 更多打击乐(部分不支持)
    - 35 Acoustic Bass Drum 大鼓 2
    - 36 Bass Drum 1 大鼓 1
    - 37 Side Stick 小鼓鼓边
    - 38 Acoustic Snare 小鼓 1
    - 39 Hand Clap 拍手
    - 40 Electric Snare 小鼓 2
    - 41 Low Floor Tom 低音鼓 2
    - 42 Closed Hi-Hat 闭合钹
    - 43 High Floor Tom 低音鼓 1
    - 44 Pedal Hi-Hat 脚踏钹
    - 45 Low Tom 中音鼓 2
    - 46 Open Hi-Hat 强音钹
    - 47 Low-Mid Tom 中音鼓 1
    - 48 Hi Mid Tom 2 高音鼓 2
    - 49 Crash Cymbal 1 强音钹 1
    - 50 High Tom 高音鼓 1
    - 51 Ride Cymbal 1 打点钹 1
    - 52 Chinese Cymbal 钹
    - 53 Ride Bell 圆铃
    - 54 Tambourine 铃鼓
    - 55 Splash Cymbal 小钹铜钹
    - 56 Cowbell 牛铃
    - 57 Crash Cymbal 2 强音钹 2
    - 58 Vibra-Slap 颤音器
    - 59 Ride Cymbal 2 打点钹 2
    - 60 Hi Bongo 高音邦加鼓
    - 61 Low Bongo 低音邦加鼓
    - 62 Mute Hi Conga 弱音高音康加鼓
    - 63 Open Hi Conga 强音高音康加鼓
    - 64 Low Conga 低音康加鼓
    - 65 High Timbale 高音天巴鼓
    - 66 Low Timbale 低音天巴鼓
    - 67 High Agogo 高音阿哥哥
    - 68 Low Agogo 低音阿哥哥
    - 69 Cabasa 串珠
    - 70 Maracas 沙铃
    - 71 Short Whistle 短口哨
    - 72 Long Whistle 长口哨
    - 73 Short Guiro 短刮壶
    - 74 Long Guiro 长刮壶
    - 75 Claves 梆子
    - 76 Hi Wood Block 高音木块
    - 77 Low Wood Block 低音木块
    - 78 Mute Cuica
    - 79 Open Cuica
    - 80 Mute Triangle 弱音三角铁
    - 81 Open Triangle 强音三角铁
- 额外添加乐器
    - Hulusi flute 葫芦丝
    - Melodica 口风琴
    - ocarina陶笛
    - Pan Flute 排箫
    - Snare Drum 小军鼓
    - Cymbal 镲
    - Cymbals 镲
    - Horn in F 圆号
    - Triangle 三角铁
    - Vibrato 颤音琴
    - Suspend Cymbal 吊镲
    - Tom-Toms 嗵嗵鼓
    - Bell 铃铛
    - Bells 铃铛
    - Alto Clarinet 中音单簧管
    - Soprano Saxophone 高音萨克斯风
    - Alto Saxophone 中音萨克斯风
    - Tenor Saxophone 次中音萨克斯风
    - Baritone Saxophone 低音萨克斯风
    - Cornet 短号
    - Euphonium 上低音号
    - crash cymbals 对镲
    - Suspend cymbals 吊镲
    - Castanets 响板`.trim()

const fs = require('fs')
const path = require('path')

const parseNames = names.split('\n').filter(line => line.indexOf('    ') === 0).map(line => line.trim())

const data = {}
const json = {}

for (let index = 0; index < parseNames.length; index++) {
  const name = parseNames[index];
  const key = name.match(/ [a-zA-Z-]+/ig)
  const value = name.match(/ [\u4e00-\u9fa5]+/ig)
  if (key && value) {
    const k = key.map(name => name.trim()).join(' ').trim()
    json[k] = value.join(' ').trim(),
    data[k] = {
      key,
      v: value.join(' ').trim(),
      i: index,
      name
    }
  }
}
const filepath = path.resolve(__dirname, '../src/constant/instruments.ts')

fs.writeFileSync(filepath, `export default ${JSON.stringify(json, null, 2)}`)
