types.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. /** 声部 */
  66. subjectCode?: string;
  67. }
  68. export interface INoteActive extends AbcElem {
  69. /** 小节 index */
  70. measureIndex: number;
  71. /** 音符 index */
  72. noteIndex: number;
  73. /** 是否第一次选中小节 */
  74. isFirstChecked: boolean;
  75. averagepitch?: number;
  76. }