types.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { AbcElem } from "abcjs";
  2. export interface INote {
  3. /** 临时升降记号 */
  4. accidental: string | "^^" | "^" | "_" | "__" | "=";
  5. /** 音符 */
  6. content: string;
  7. /** 音符类型 */
  8. noteType: string;
  9. /** 拍号 */
  10. meter: string;
  11. /** 谱号 */
  12. clef: string;
  13. /** 调号 */
  14. key: string;
  15. /** 演奏技法 */
  16. play: string[];
  17. /** 速度 */
  18. speed: string;
  19. /** 力度符号 */
  20. dynamics: string;
  21. /** 渐强渐弱关联 */
  22. dCode: string;
  23. /** 延音 */
  24. tie: string;
  25. /** 连音关联 */
  26. tCode: string;
  27. /** 附点 */
  28. dot: string;
  29. /** 3连音 */
  30. slus: string
  31. /** 延音 */
  32. tieline: string
  33. /** 分割 */
  34. segno: string
  35. }
  36. export interface IMeasure {
  37. /** 小节号 */
  38. measureNumber?: number;
  39. /** 小节内的音符 */
  40. notes: INote[];
  41. /** 小节线 */
  42. barline: string;
  43. /** 谱号 */
  44. celf: string;
  45. /** 调号 */
  46. key: string;
  47. /** 反复跳跃 */
  48. repeat: string;
  49. }
  50. export interface IAbc {
  51. /** 谱号 */
  52. celf?: string;
  53. /** 调号 */
  54. key?: string;
  55. /** 拍号 */
  56. meter?: string;
  57. minUnit?: string;
  58. /** 曲谱名 */
  59. title?: string;
  60. /** 速度 */
  61. speed: string;
  62. measures: IMeasure[];
  63. /** 移调 */
  64. visualTranspose?: number;
  65. transposeKey?: string;
  66. /** 声部 */
  67. subjectCode?: string;
  68. }
  69. export interface INoteActive extends AbcElem {
  70. /** 小节 index */
  71. measureIndex: number;
  72. /** 音符 index */
  73. noteIndex: number;
  74. /** 是否第一次选中小节 */
  75. isFirstChecked: boolean;
  76. averagepitch?: number;
  77. }