const instruments: any = { 'Acoustic Grand Piano': '大钢琴', 'Bright Acoustic Piano': '明亮的钢琴', 'Electric Grand Piano': '电钢琴', 'Rhodes Piano': '柔和的电钢琴', 'Chorused Piano': '加合唱效果的电钢琴', Harpsichord: '羽管键琴', Clavichord: '科拉维科特琴', Celesta: '钢片琴', Glockenspiel: '钢片琴', 'Music box': '八音盒', Vibraphone: '颤音琴', Marimba: '马林巴', Xylophone: '木琴', 'Tubular Bells': '管钟', Dulcimer: '大扬琴', 'Hammond Organ': '击杆风琴', 'Percussive Organ': '打击式风琴', 'Rock Organ': '摇滚风琴', 'Church Organ': '教堂风琴', 'Reed Organ': '簧管风琴', Accordian: '手风琴', Harmonica: '口琴', 'Tango Accordian': '探戈手风琴', 'Acoustic Guitar': '钢弦吉他', 'Electric Guitar': '闷音电吉他', 'Overdriven Guitar': '加驱动效果的电吉他', 'Distortion Guitar': '加失真效果的电吉他', 'Guitar Harmonics': '吉他和音', 'Acoustic Bass': '大贝司', 'Electric Bass': '电贝司', 'Fretless Bass': '无品贝司', 'Slap Bass': '掌击', 'Synth Bass': '电子合成', Violin: '小提琴', Viola: '中提琴', Cello: '大提琴', Contrabass: '低音大提琴', 'Tremolo Strings': '弦乐群颤音音色', 'Pizzicato Strings': '弦乐群拨弦音色', 'Orchestral Harp': '竖琴', Timpani: '定音鼓', 'String Ensemble': '弦乐合奏音色', 'Synth Strings': '合成弦乐合奏音色', 'Choir Aahs': '人声合唱', 'Voice Oohs': '人声', 'Synth Voice': '合成人声', 'Orchestra Hit': '管弦乐敲击齐奏', Trumpet: '小号', Trombone: '长号', Tuba: '大号', 'Muted Trumpet': '加弱音器小号', 'French Horn': '法国号', 'Brass Section': '铜管组', 'Synth Brass': '合成铜管音色', 'Soprano Sax': '高音萨克斯管', 'Alto Sax': '中音萨克斯管', 'Tenor Sax': '次中音萨克斯管', 'Baritone Sax': '低音萨克斯管', Oboe: '双簧管', 'English Horn': '英国管', Bassoon: '巴松', 'Soprano Saxophone': '高音萨克斯管', 'Alto Saxophone': '中音萨克斯管', 'Tenor Saxophone': '次中音萨克斯管', 'Baritone Saxophone': '低音萨克斯管', Piccolo: '短笛', Flute: '长笛', Recorder: '竖笛', 'Soprano Recorder': '高音竖笛', 'Pan Flute': '排箫', 'Bottle Blow': '瓶木管', Whistle: '口哨声', Ocarina: '陶笛', Lead: '合成主音', 'Lead lead': '合成主音', 'Pad age': '合成音色', Pad: '合成音色', FX: '合成效果 科幻', Sitar: '西塔尔', Banjo: '班卓琴', Shamisen: '三昧线', Koto: '十三弦筝', Kalimba: '卡林巴', Bagpipe: '风笛', Fiddle: '民族提琴', Shanai: '山奈', 'Tinkle Bell': '叮当铃', Agogos: '阿戈戈铃', 'Steel Drums': '钢鼓', 'Taiko Drum': '太鼓', 'Melodic Toms': '嗵嗵鼓', 'Synth Drums': '合成鼓', 'Reverse Cymbals': '反向镲', 'Agogo Bells': '阿戈戈铃', 'Taiko Drums': '太鼓', Bongos: '邦戈鼓', 'Bongo Bell': '邦戈铃', Congas: '康加鼓', Guiro: '刮壶', 'Guitar Fret Noise': '吉他换把杂音', 'Breath Noise': '呼吸声', Seashore: '海浪声', 'Bird Tweet': '鸟鸣', 'Telephone Ring': '电话铃', Helicopter: '直升机', Applause: '鼓掌声', Gunshot: '枪声', 'Acoustic Bass Drum': '大鼓', 'Bass Drum': '大鼓', 'Side Drum': '小鼓鼓边', 'Acoustic Snare': '小鼓', 'Hand Claps': '拍手', 'Electric Snare': '小鼓', 'Low Floor Tom': '低音嗵鼓', 'Closed Hi-Hat': '闭合踩镲', 'High Floor Tom': '高音落地嗵鼓', 'Pedal Hi-Hat': '脚踏踩镲', 'Low Tom': '低音嗵鼓', 'Open Hi-Hat': '开音踩镲', 'Low-Mid Tom': '中低音嗵鼓', 'Hi Mid Tom': '高音鼓', 'Crash Cymbals': '对镲', 'High Tom': '高音嗵鼓', 'Ride Cymbals': '叮叮镲', 'Chinese Cymbals': '中国镲', 'Ride Bell': '圆铃', Tambourine: '铃鼓', 'Splash Cymbal': '溅音镲', Cowbell: '牛铃', 'Crash Cymbal': '强音钹', 'Vibra-Slap': '颤音器', 'Ride Cymbal': '打点钹', 'Hi Bongo': '高音邦戈鼓', 'Low Bongo': '低音邦戈鼓', 'Mute Hi Conga': '弱音高音康加鼓', 'Open Hi Conga': '强音高音康加鼓', 'Low Conga': '低音康加鼓', 'High Timbale': '高音天巴鼓', 'Low Timbale': '低音天巴鼓', 'High Agogo': '高音阿戈戈铃', 'Low Agogo': '低音阿戈戈铃', Cabasa: '卡巴萨', Maracas: '沙锤', 'Short Whistle': '短口哨', 'Long Whistle': '长口哨', 'Short Guiro': '短刮壶', 'Long Guiro': '长刮壶', Claves: '响棒', 'Hi Wood Block': '高音木鱼', 'Low Wood Block': '低音木鱼', 'Mute Triangle': '弱音三角铁', 'Open Triangle': '强音三角铁', 'Drum Set': '架子鼓', 'Hulusi flute': '葫芦丝', Melodica: '口风琴', 'Snare Drum': '小军鼓', 'Horn in F': '圆号', 'Horns in F': '圆号', Triangle: '三角铁', Vibrato: '颤音琴', 'Suspend Cymbals': '吊镲', 'Suspended Cymbals': '吊镲', 'Tom-Toms': '嗵嗵鼓', Bell: '铃铛', Bells: '铃铛', 'Alto Clarinet': '中音单簧管', 'Bass Clarinet': '低音单簧管', Clarinet: '单簧管', Cornet: '短号', Euphonium: '上低音号', 'crash cymbals': '对镲', Castanets: '响板', Shaker: '沙锤', 'Mark tree': '音树', Chimes: '管钟', 'Mark Tree': '音树', 'Tom-toms': '嗵嗵鼓', 'Hi-Hat': '踩镲', 'Sleigh Bells': '雪橇铃', Flexatone: '弹音器', 'Brake drum': '闸鼓', Gong: '锣', 'concert tom': '音乐会嗵嗵鼓', 'brake drum': '车轮鼓', 'finger cymbal': '指钹', 'ride cymbal': '叮叮镲', 'Concert Toms': '音乐会嗵嗵鼓', Vibraslap: '弹音器', 'Wood Blocks': '木鱼', 'Temple Blocks': '木鱼', 'Wood Block': '木鱼', 'Field Drum': '军鼓', 'Quad-Toms': '筒鼓', Quads: '筒鼓', 'Drums set': '架子鼓', 'High Bongo': '邦戈', Timbales: '天巴鼓', 'rain stick': '雨棒', 'String Bass': '弦乐低音', 'Floor Tom': '侧嗵鼓', 'Brake Drum': '闸鼓', 'Tam-tam': '大锣', Cymbal: '镲', Cymbals: '镲', Whip: '乐鞭', whip: '乐鞭' }; /** 获取分轨名称 */ export const getInstrumentName = (name = '') => { name = name.toLocaleLowerCase().replace(/ /g, '') if (!name) return '' for(let key in instruments){ const _key = key.toLocaleLowerCase().replace(/ /g, '') if (_key.includes(name)){ return instruments[key] } } for(let key in instruments){ const _key = key.toLocaleLowerCase().replace(/ /g, '') if (name.includes(_key)){ return instruments[key] } } return '' }; /** * 乐器排序 * 排序顺序:长笛、单簧管、中音单簧管、低音单簧管、高音萨克斯风、中音萨克斯风、次中音萨克斯风、低音萨克斯风、小号、长号、圆号、大号、上低音号 * */ export const sortMusical = (name: string, index: number) => { let sortId = 0 switch (name) { case '长笛': sortId = 1 break; case '单簧管': sortId = 2 break; case '中音单簧管': sortId = 3 break; case '低音单簧管': sortId = 4 break; case '高音萨克斯风': sortId = 5 break; case '中音萨克斯风': sortId = 6 break; case '次中音萨克斯风': sortId = 7 break; case '低音萨克斯风': sortId = 8 break; case '小号': sortId = 9 break; case '长号': sortId = 10 break; case '圆号': sortId =11 break; case '大号': sortId = 12 break; case '上低音号': sortId = 13 break; default: sortId = index + 14 break; } return sortId } export const fixInstrumentNameCode = (trackId: string | number) => { let code: any; const trackName = instruments[trackId] || '' if (trackName.includes('长笛')) { code = 2 } else if (trackName.includes('单簧管')) { code = 4 } else if (trackName.includes('萨克斯')) { code = 5 } else if (trackName.includes('小号')) { code = 12 } else if (trackName.includes('圆号')) { code = 13 } else if (trackName.includes('长号')) { code = 14 } else if (trackName.includes('上低音号')) { code = 15 } else if (trackName.includes('大号')) { code = 17 } else if (trackName.includes('德式竖笛')) { code = 'piccolo' } else if (trackName.includes('英式竖笛')) { code = 'baroque-recorder' } else if (trackName.includes('葫芦丝')) { code = 'hulusi-flute' } else if (trackName.includes('排箫')) { code = 'pan-flute' } else if (trackName.includes('高音陶笛')) { code = 'whistling' } else if (trackName.includes('陶笛')) { code = 'ocarina' } else if (trackName.includes('口风琴')) { code = 'melodica' } return code; }