12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // @ts-ignore
- import { OpenSheetMusicDisplay } from '/osmd-extended/src'
- import detailState from '/src/pages/detail/state'
- import event from '/src/components/music-score/event'
- /**
- * 音符点击事件
- */
- export const noteClickEvent = (evt: Event): void => {
- event.emit('container-click', evt)
- const path = (evt as any).path || (evt.composedPath && evt.composedPath())
- for (const el of path) {
- if (el.classList && el.classList.contains('vf-stavenote')) {
- event.emit('click', evt, el)
- }
- }
- }
- export const setEngravingRules = (osmd: OpenSheetMusicDisplay) => {
- // osmd.EngravingRules.UseJustifiedBuilder = false
- osmd.EngravingRules.CompactMode = true // 页面顶部底部间距
- // osmd.EngravingRules.DYSlursStartingAtSameStaffEntryYOffset = 2
- osmd.EngravingRules.DYMinNoteWidth = 3
- // osmd.EngravingRules.WedgePlacementBelowY = 4
- // osmd.EngravingRules.LyricUnderscoreLineWidth = 0.12 // 1------ 线粗细
- osmd.EngravingRules.VoiceSpacingMultiplierVexflow = 0.65
- osmd.EngravingRules.VoiceSpacingAddendVexflow = 2.0
- // tight rendering mode, lower margins and safety distances between systems, staffs etc. may cause overlap.
- // these options can afterwards be finetuned by setting osmd.rules.BetweenStaffDistance for example
- osmd.EngravingRules.MinSkyBottomDistBetweenStaves = 2.0 // default 1.0. this can cause collisions with slurs and dynamics sometimes
- osmd.EngravingRules.MinSkyBottomDistBetweenSystems = 2.0 // default 5.0
- // note that osmd.EngravingRules === osmd.rules, since it's passed as a reference
- osmd.EngravingRules.MinimumStaffLineDistance = 4.0
- osmd.EngravingRules.BetweenStaffDistance = 2.5
- osmd.EngravingRules.StaffDistance = 3.5
- osmd.EngravingRules.MinimumDistanceBetweenSystems = 1
- // osmd.EngravingRules.PageTopMargin = 0.0; // see osmd.EngravingRules.PageTopMarginNarrow used in compact mode
- osmd.EngravingRules.PageBottomMargin = 0.0
- osmd.EngravingRules.PageLeftMargin = 2.0
- osmd.EngravingRules.PageRightMargin = 2.0
- osmd.EngravingRules.PageTopMarginNarrow = 3.0
- osmd.EngravingRules.WedgeEndDistanceBetweenTimestampsFactor = 1
- osmd.EngravingRules.RehearsalMarkXOffset = -18
- osmd.EngravingRules.RehearsalMarkYOffset = 10
- osmd.EngravingRules.DYWorkId = detailState.activeDetail?.parentCategoriesId || 0
- }
|