types.ts 1.5 KB

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