instruments.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. // const instruments: any = {
  2. // 'Acoustic Grand Piano': '大钢琴',
  3. // 'Bright Acoustic Piano': '明亮的钢琴',
  4. // 'Electric Grand Piano': '电钢琴',
  5. // 'Rhodes Piano': '柔和的电钢琴',
  6. // 'Chorused Piano': '加合唱效果的电钢琴',
  7. // Harpsichord: '羽管键琴',
  8. // Clavichord: '科拉维科特琴',
  9. // Celesta: '钢片琴',
  10. // Glockenspiel: '钢片琴',
  11. // 'Music box': '八音盒',
  12. // Vibraphone: '颤音琴',
  13. // Marimba: '马林巴',
  14. // Xylophone: '木琴',
  15. // 'Tubular Bells': '管钟',
  16. // Dulcimer: '大扬琴',
  17. // 'Hammond Organ': '击杆风琴',
  18. // 'Percussive Organ': '打击式风琴',
  19. // 'Rock Organ': '摇滚风琴',
  20. // 'Church Organ': '教堂风琴',
  21. // 'Reed Organ': '簧管风琴',
  22. // Accordian: '手风琴',
  23. // Harmonica: '口琴',
  24. // 'Tango Accordian': '探戈手风琴',
  25. // 'Acoustic Guitar': '钢弦吉他',
  26. // 'Electric Guitar': '闷音电吉他',
  27. // 'Overdriven Guitar': '加驱动效果的电吉他',
  28. // 'Distortion Guitar': '加失真效果的电吉他',
  29. // 'Guitar Harmonics': '吉他和音',
  30. // 'Acoustic Bass': '大贝司',
  31. // 'Electric Bass': '电贝司',
  32. // 'Fretless Bass': '无品贝司',
  33. // 'Slap Bass': '掌击',
  34. // 'Synth Bass': '电子合成',
  35. // Violin: '小提琴',
  36. // Viola: '中提琴',
  37. // Cello: '大提琴',
  38. // Contrabass: '低音大提琴',
  39. // 'Tremolo Strings': '弦乐群颤音音色',
  40. // 'Pizzicato Strings': '弦乐群拨弦音色',
  41. // 'Orchestral Harp': '竖琴',
  42. // Timpani: '定音鼓',
  43. // 'String Ensemble': '弦乐合奏音色',
  44. // 'Synth Strings': '合成弦乐合奏音色',
  45. // 'Choir Aahs': '人声合唱',
  46. // 'Voice Oohs': '人声',
  47. // 'Synth Voice': '合成人声',
  48. // 'Orchestra Hit': '管弦乐敲击齐奏',
  49. // Trumpet: '小号',
  50. // Trombone: '长号',
  51. // Tuba: '大号',
  52. // 'Muted Trumpet': '加弱音器小号',
  53. // 'French Horn': '法国号',
  54. // 'Brass Section': '铜管组',
  55. // 'Synth Brass': '合成铜管音色',
  56. // 'Soprano Sax': '高音萨克斯管',
  57. // 'Alto Sax': '中音萨克斯管',
  58. // 'Tenor Sax': '次中音萨克斯管',
  59. // 'Baritone Sax': '低音萨克斯管',
  60. // Oboe: '双簧管',
  61. // 'English Horn': '英国管',
  62. // Bassoon: '巴松',
  63. // 'Soprano Saxophone': '高音萨克斯管',
  64. // 'Alto Saxophone': '中音萨克斯管',
  65. // 'Tenor Saxophone': '次中音萨克斯管',
  66. // 'Baritone Saxophone': '低音萨克斯管',
  67. // Piccolo: '短笛',
  68. // Flute: '长笛',
  69. // Recorder: '竖笛',
  70. // 'Soprano Recorder': '高音竖笛',
  71. // 'Pan Flute': '排箫',
  72. // 'Bottle Blow': '瓶木管',
  73. // Whistle: '口哨声',
  74. // Ocarina: '陶笛',
  75. // Lead: '合成主音',
  76. // 'Lead lead': '合成主音',
  77. // 'Pad age': '合成音色',
  78. // Pad: '合成音色',
  79. // FX: '合成效果 科幻',
  80. // Sitar: '西塔尔',
  81. // Banjo: '班卓琴',
  82. // Shamisen: '三昧线',
  83. // Koto: '十三弦筝',
  84. // Kalimba: '卡林巴',
  85. // Bagpipe: '风笛',
  86. // Fiddle: '民族提琴',
  87. // Shanai: '山奈',
  88. // 'Tinkle Bell': '叮当铃',
  89. // Agogos: '阿戈戈铃',
  90. // 'Steel Drums': '钢鼓',
  91. // 'Taiko Drum': '太鼓',
  92. // 'Melodic Toms': '嗵嗵鼓',
  93. // 'Synth Drums': '合成鼓',
  94. // 'Reverse Cymbals': '反向镲',
  95. // 'Agogo Bells': '阿戈戈铃',
  96. // 'Taiko Drums': '太鼓',
  97. // Bongos: '邦戈鼓',
  98. // 'Bongo Bell': '邦戈铃',
  99. // Congas: '康加鼓',
  100. // Guiro: '刮壶',
  101. // 'Guitar Fret Noise': '吉他换把杂音',
  102. // 'Breath Noise': '呼吸声',
  103. // Seashore: '海浪声',
  104. // 'Bird Tweet': '鸟鸣',
  105. // 'Telephone Ring': '电话铃',
  106. // Helicopter: '直升机',
  107. // Applause: '鼓掌声',
  108. // Gunshot: '枪声',
  109. // 'Acoustic Bass Drum': '大鼓',
  110. // 'Bass Drum': '大鼓',
  111. // 'Side Drum': '小鼓鼓边',
  112. // 'Acoustic Snare': '小鼓',
  113. // 'Hand Claps': '拍手',
  114. // 'Electric Snare': '小鼓',
  115. // 'Low Floor Tom': '低音嗵鼓',
  116. // 'Closed Hi-Hat': '闭合踩镲',
  117. // 'High Floor Tom': '高音落地嗵鼓',
  118. // 'Pedal Hi-Hat': '脚踏踩镲',
  119. // 'Low Tom': '低音嗵鼓',
  120. // 'Open Hi-Hat': '开音踩镲',
  121. // 'Low-Mid Tom': '中低音嗵鼓',
  122. // 'Hi Mid Tom': '高音鼓',
  123. // 'Crash Cymbals': '对镲',
  124. // 'High Tom': '高音嗵鼓',
  125. // 'Ride Cymbals': '叮叮镲',
  126. // 'Chinese Cymbals': '中国镲',
  127. // 'Ride Bell': '圆铃',
  128. // Tambourine: '铃鼓',
  129. // 'Splash Cymbal': '溅音镲',
  130. // Cowbell: '牛铃',
  131. // 'Crash Cymbal': '强音钹',
  132. // 'Vibra-Slap': '颤音器',
  133. // 'Ride Cymbal': '打点钹',
  134. // 'Hi Bongo': '高音邦戈鼓',
  135. // 'Low Bongo': '低音邦戈鼓',
  136. // 'Mute Hi Conga': '弱音高音康加鼓',
  137. // 'Open Hi Conga': '强音高音康加鼓',
  138. // 'Low Conga': '低音康加鼓',
  139. // 'High Timbale': '高音天巴鼓',
  140. // 'Low Timbale': '低音天巴鼓',
  141. // 'High Agogo': '高音阿戈戈铃',
  142. // 'Low Agogo': '低音阿戈戈铃',
  143. // Cabasa: '卡巴萨',
  144. // Maracas: '沙锤',
  145. // 'Short Whistle': '短口哨',
  146. // 'Long Whistle': '长口哨',
  147. // 'Short Guiro': '短刮壶',
  148. // 'Long Guiro': '长刮壶',
  149. // Claves: '响棒',
  150. // 'Hi Wood Block': '高音木鱼',
  151. // 'Low Wood Block': '低音木鱼',
  152. // 'Mute Triangle': '弱音三角铁',
  153. // 'Open Triangle': '强音三角铁',
  154. // 'Drum Set': '架子鼓',
  155. // 'Hulusi flute': '葫芦丝',
  156. // Melodica: '口风琴',
  157. // 'Snare Drum': '小军鼓',
  158. // 'Horn in F': '圆号',
  159. // 'Horns in F': '圆号',
  160. // Triangle: '三角铁',
  161. // Vibrato: '颤音琴',
  162. // 'Suspend Cymbals': '吊镲',
  163. // 'Suspended Cymbals': '吊镲',
  164. // 'Tom-Toms': '嗵嗵鼓',
  165. // Bell: '铃铛',
  166. // Bells: '铃铛',
  167. // 'Alto Clarinet': '中音单簧管',
  168. // 'Bass Clarinet': '低音单簧管',
  169. // Clarinet: '单簧管',
  170. // Cornet: '短号',
  171. // Euphonium: '上低音号',
  172. // 'crash cymbals': '对镲',
  173. // Castanets: '响板',
  174. // Shaker: '沙锤',
  175. // 'Mark tree': '音树',
  176. // Chimes: '管钟',
  177. // 'Mark Tree': '音树',
  178. // 'Tom-toms': '嗵嗵鼓',
  179. // 'Hi-Hat': '踩镲',
  180. // 'Sleigh Bells': '雪橇铃',
  181. // Flexatone: '弹音器',
  182. // 'Brake drum': '闸鼓',
  183. // Gong: '锣',
  184. // 'concert tom': '音乐会嗵嗵鼓',
  185. // 'brake drum': '车轮鼓',
  186. // 'finger cymbal': '指钹',
  187. // 'ride cymbal': '叮叮镲',
  188. // 'Concert Toms': '音乐会嗵嗵鼓',
  189. // Vibraslap: '弹音器',
  190. // 'Wood Blocks': '木鱼',
  191. // 'Temple Blocks': '木鱼',
  192. // 'Wood Block': '木鱼',
  193. // 'Field Drum': '军鼓',
  194. // 'Quad-Toms': '筒鼓',
  195. // Quads: '筒鼓',
  196. // 'Drums set': '架子鼓',
  197. // 'High Bongo': '邦戈',
  198. // Timbales: '天巴鼓',
  199. // 'rain stick': '雨棒',
  200. // 'String Bass': '弦乐低音',
  201. // 'Floor Tom': '侧嗵鼓',
  202. // 'Brake Drum': '闸鼓',
  203. // 'Tam-tam': '大锣',
  204. // Cymbal: '镲',
  205. // Cymbals: '镲',
  206. // Whip: '乐鞭',
  207. // whip: '乐鞭'
  208. // };
  209. /** 获取分轨名称 */
  210. // 乐器code码
  211. export const musicalInstrumentCodeInfo = [
  212. {
  213. name: '长笛',
  214. code: 'Flute',
  215. id: 1
  216. },
  217. {
  218. name: '短笛',
  219. code: 'Piccolo',
  220. id: 2
  221. },
  222. {
  223. name: '单簧管',
  224. code: 'Clarinet',
  225. id: 3
  226. },
  227. {
  228. name: '低音单簧管',
  229. code: 'Bass Clarinet',
  230. id: 4
  231. },
  232. {
  233. name: '中音萨克斯',
  234. code: 'Alto Saxophone',
  235. id: 5
  236. },
  237. {
  238. name: '次中音萨克斯',
  239. code: 'Tenor Saxophone',
  240. id: 6
  241. },
  242. {
  243. name: '高音萨克斯',
  244. code: 'Soprano Saxophone',
  245. id: 7
  246. },
  247. {
  248. name: '上低音萨克斯',
  249. code: 'Baritone Saxophone',
  250. id: 8
  251. },
  252. {
  253. name: '双簧管',
  254. code: 'Oboe',
  255. id: 9
  256. },
  257. {
  258. name: '大管',
  259. code: 'Bassoon',
  260. id: 10
  261. },
  262. {
  263. name: '小号',
  264. code: 'Trumpet',
  265. id: 11
  266. },
  267. {
  268. name: '圆号',
  269. code: 'Horn',
  270. id: 12
  271. },
  272. {
  273. name: '长号',
  274. code: 'Trombone',
  275. id: 13
  276. },
  277. {
  278. name: '上低音号',
  279. code: 'Baritone',
  280. id: 14
  281. },
  282. {
  283. name: '次中音号',
  284. code: 'Euphonium',
  285. id: 15
  286. },
  287. {
  288. name: '大号',
  289. code: 'Tuba',
  290. id: 16
  291. },
  292. {
  293. name: '钢琴',
  294. code: 'Piano',
  295. id: 17
  296. },
  297. {
  298. name: '电钢琴',
  299. code: 'Electronical Piano',
  300. id: 18
  301. },
  302. {
  303. name: '钢片琴',
  304. code: 'Glockenspiel',
  305. id: 19
  306. },
  307. {
  308. name: '小提琴',
  309. code: 'Violin',
  310. id: 20
  311. },
  312. {
  313. name: '中提琴',
  314. code: 'Viola',
  315. id: 21
  316. },
  317. {
  318. name: '大提琴',
  319. code: 'Violoncello',
  320. id: 22
  321. },
  322. {
  323. name: '低音提琴',
  324. code: 'Contrabass',
  325. id: 23
  326. },
  327. {
  328. name: '架子鼓',
  329. code: 'Drum Set',
  330. id: 24
  331. },
  332. {
  333. name: '小鼓',
  334. code: 'Snare Drum',
  335. id: 25
  336. },
  337. {
  338. name: '马林巴',
  339. code: 'Marimba',
  340. id: 26
  341. },
  342. {
  343. name: '颤音琴',
  344. code: 'Vibraphone',
  345. id: 27
  346. },
  347. {
  348. name: '钟琴',
  349. code: 'Chimes',
  350. id: 28
  351. },
  352. {
  353. name: '木琴',
  354. code: 'Xylophone',
  355. id: 29
  356. },
  357. {
  358. name: '管钟',
  359. code: 'Tubular Bells',
  360. id: 30
  361. },
  362. {
  363. name: '定音鼓',
  364. code: 'Timpani',
  365. id: 31
  366. },
  367. {
  368. name: '键盘',
  369. code: 'Mallets',
  370. id: 32
  371. },
  372. {
  373. name: '排箫',
  374. code: 'Panpipes',
  375. id: 33
  376. },
  377. {
  378. name: '陶笛',
  379. code: 'Ocarina',
  380. id: 34
  381. },
  382. {
  383. name: '陶笛',
  384. code: 'Alto Ocarina',
  385. id: 34
  386. },
  387. {
  388. name: '葫芦丝',
  389. code: 'Woodwind',
  390. id: 35
  391. },
  392. {
  393. name: '葫芦丝',
  394. code: 'Hulusi',
  395. id: 35
  396. },
  397. {
  398. name: '口风琴',
  399. code: 'Nai',
  400. id: 36
  401. },
  402. {
  403. name: '口风琴',
  404. code: 'Melodica',
  405. id: 36
  406. },
  407. {
  408. name: '德式竖笛',
  409. code: 'Tenor Recorder',
  410. id: 37
  411. },
  412. {
  413. name: '德式竖笛',
  414. code: 'German Recorder',
  415. id: 37
  416. },
  417. {
  418. name: '英式竖笛',
  419. code: 'Baroque Recorder',
  420. id: 38
  421. },
  422. {
  423. name: '高音陶笛',
  424. code: 'Whistling',
  425. id: 39
  426. },
  427. {
  428. name: '高音陶笛',
  429. code: 'Soprano Ocarina',
  430. id: 39
  431. },
  432. ]
  433. export let instruments: any = {}
  434. /** 获取分轨名称 */
  435. export const getInstrumentName = (name = '') => {
  436. name = name.toLocaleLowerCase().replace(/ /g, '')
  437. if (!name) return ''
  438. // 全匹配声轨名称
  439. for(let key in instruments){
  440. const _key = key.toLocaleLowerCase().replace(/ /g, '')
  441. if (_key === name){
  442. return instruments[key]
  443. }
  444. }
  445. // 用返回的code模糊匹配传入的xml声轨名称name
  446. for(let key in instruments){
  447. const _key = key.toLocaleLowerCase().replace(/ /g, '')
  448. if (name.includes(_key)){
  449. return instruments[key]
  450. }
  451. }
  452. // for(let key in instruments){
  453. // const _key = key.toLocaleLowerCase().replace(/ /g, '')
  454. // if (name.includes(_key)){
  455. // return instruments[key]
  456. // }
  457. // }
  458. return ''
  459. };
  460. /**
  461. * 乐器排序
  462. * 排序顺序:长笛、单簧管、中音单簧管、低音单簧管、高音萨克斯风、中音萨克斯风、次中音萨克斯风、低音萨克斯风、小号、长号、圆号、大号、上低音号
  463. * */
  464. export const sortMusical = (name: string, index: number) => {
  465. let sortId = 0
  466. switch (name) {
  467. case '长笛':
  468. sortId = 1
  469. break;
  470. case '单簧管':
  471. sortId = 2
  472. break;
  473. case '中音单簧管':
  474. sortId = 3
  475. break;
  476. case '低音单簧管':
  477. sortId = 4
  478. break;
  479. case '高音萨克斯风':
  480. sortId = 5
  481. break;
  482. case '中音萨克斯风':
  483. sortId = 6
  484. break;
  485. case '次中音萨克斯风':
  486. sortId = 7
  487. break;
  488. case '低音萨克斯风':
  489. sortId = 8
  490. break;
  491. case '小号':
  492. sortId = 9
  493. break;
  494. case '长号':
  495. sortId = 10
  496. break;
  497. case '圆号':
  498. sortId =11
  499. break;
  500. case '大号':
  501. sortId = 12
  502. break;
  503. case '上低音号':
  504. sortId = 13
  505. break;
  506. default:
  507. sortId = index + 14
  508. break;
  509. }
  510. return sortId
  511. }
  512. export const fixInstrumentNameCode = (trackId: string | number) => {
  513. let code: any;
  514. const trackName = instruments[trackId] || ''
  515. if (trackName.includes('长笛')) {
  516. code = 2
  517. } else if (trackName.includes('单簧管')) {
  518. code = 4
  519. } else if (trackName.includes('萨克斯')) {
  520. code = 5
  521. } else if (trackName.includes('小号')) {
  522. code = 12
  523. } else if (trackName.includes('圆号')) {
  524. code = 13
  525. } else if (trackName.includes('长号')) {
  526. code = 14
  527. } else if (trackName.includes('上低音号')) {
  528. code = 15
  529. } else if (trackName.includes('大号')) {
  530. code = 17
  531. } else if (trackName.includes('德式竖笛')) {
  532. code = 'piccolo'
  533. } else if (trackName.includes('英式竖笛')) {
  534. code = 'baroque-recorder'
  535. } else if (trackName.includes('葫芦丝')) {
  536. code = 'hulusi-flute'
  537. } else if (trackName.includes('排箫')) {
  538. code = 'pan-flute'
  539. } else if (trackName.includes('高音陶笛')) {
  540. code = 'whistling'
  541. } else if (trackName.includes('陶笛')) {
  542. code = 'ocarina'
  543. } else if (trackName.includes('口风琴')) {
  544. code = 'melodica'
  545. }
  546. return code;
  547. }