From f876311c62a4d948f1339251ba06f044b4d219c6 Mon Sep 17 00:00:00 2001 From: AaronDavidNewman Date: Sat, 20 May 2023 11:37:10 -0500 Subject: [PATCH 1/3] re-introduce scale to chord symbol metrics --- src/chordsymbol.ts | 1 + src/fonts/common_metrics.ts | 14 ++++++ src/fonts/load_petaluma.ts | 95 ++++++++++++++++++++++++++++++++++++- 3 files changed, 109 insertions(+), 1 deletion(-) diff --git a/src/chordsymbol.ts b/src/chordsymbol.ts index 4fc03dce92..fe1a6b6068 100644 --- a/src/chordsymbol.ts +++ b/src/chordsymbol.ts @@ -38,6 +38,7 @@ export interface ChordSymbolBlock { } export interface ChordSymbolGlyphMetrics { + scale: number; leftSideBearing: number; advanceWidth: number; yOffset: number; diff --git a/src/fonts/common_metrics.ts b/src/fonts/common_metrics.ts index cb56995cce..4007020817 100644 --- a/src/fonts/common_metrics.ts +++ b/src/fonts/common_metrics.ts @@ -26,71 +26,85 @@ export const CommonMetrics = { }, glyphs: { csymDiminished: { + scale: 0.8, leftSideBearing: -32, advanceWidth: 506, yOffset: 0, }, csymHalfDiminished: { + scale: 0.8, leftSideBearing: -32, advanceWidth: 506, yOffset: 0, }, csymAugmented: { + scale: 0.8, leftSideBearing: 0, advanceWidth: 530, yOffset: 0, }, csymParensLeftTall: { + scale: 0.8, leftSideBearing: -20, advanceWidth: 184, yOffset: 250, }, csymParensRightTall: { + scale: 0.8, leftSideBearing: 0, advanceWidth: 189, yOffset: 250, }, csymBracketLeftTall: { + scale: 0.8, leftSideBearing: 0, advanceWidth: 328, yOffset: 0, }, csymBracketRightTall: { + scale: 0.8, leftSideBearing: 1, advanceWidth: 600, yOffset: 0, }, csymParensLeftVeryTall: { + scale: 0.8, leftSideBearing: 50, advanceWidth: 121, yOffset: 350, }, csymParensRightVeryTall: { + scale: 0.8, leftSideBearing: 0, advanceWidth: 111, yOffset: 350, }, csymDiagonalArrangementSlash: { + scale: 0.8, leftSideBearing: 250, advanceWidth: 990, yOffset: 300, }, csymMinor: { + scale: 0.8, leftSideBearing: 0, advanceWidth: 482, yOffset: 0, }, csymMajorSeventh: { + scale: 0.8, leftSideBearing: 200, yOffset: 0, advanceWidth: 600, }, accidentalSharp: { + scale: 0.8, leftSideBearing: 20, advanceWidth: 250, yOffset: -302, }, accidentalFlat: { + scale: 0.8, leftSideBearing: -20, advanceWidth: 226, yOffset: -184, diff --git a/src/fonts/load_petaluma.ts b/src/fonts/load_petaluma.ts index 28ffa173ba..0fa7b404b4 100644 --- a/src/fonts/load_petaluma.ts +++ b/src/fonts/load_petaluma.ts @@ -4,7 +4,100 @@ import { Font } from '../font'; import { CommonMetrics } from './common_metrics'; import { PetalumaFont } from './petaluma_glyphs'; +import { ChordSymbolGlyphMetrics } from '../chordsymbol'; +import { FontMetrics } from '../font'; +const petalumaChordMetrics: Record = { + csymDiminished: { + scale: 0.8, + leftSideBearing: -95, + advanceWidth: 506, + yOffset: 0, + }, + csymHalfDiminished: { + scale: 0.8, + leftSideBearing: -32, + advanceWidth: 506, + yOffset: 0, + }, + csymAugmented: { + scale: 1, + leftSideBearing: -25, + advanceWidth: 530, + yOffset: 0, + }, + csymParensLeftTall: { + scale: 0.8, + leftSideBearing: 0, + advanceWidth: 155, + yOffset: 150, + }, + csymParensRightTall: { + scale: 0.8, + leftSideBearing: 40, + advanceWidth: 189, + yOffset: 150, + }, + csymBracketLeftTall: { + scale: 0.8, + leftSideBearing: 0, + advanceWidth: 328, + yOffset: 0, + }, + csymBracketRightTall: { + scale: 0.8, + leftSideBearing: 1, + advanceWidth: 600, + yOffset: 0, + }, + csymParensLeftVeryTall: { + scale: 0.95, + leftSideBearing: 0, + advanceWidth: 210, + yOffset: 250, + }, + csymParensRightVeryTall: { + scale: 0.9, + leftSideBearing: -100, + advanceWidth: 111, + yOffset: 250, + }, + csymDiagonalArrangementSlash: { + scale: 0.6, + leftSideBearing: -1, + advanceWidth: 990, + yOffset: 0, + }, + csymMinor: { + scale: 0.7, + leftSideBearing: 0, + advanceWidth: 482, + yOffset: 0, + }, + csymMajorSeventh: { + scale: 0.8, + leftSideBearing: 100, + yOffset: 0, + advanceWidth: 600, + }, + accidentalSharp: { + scale: 0.7, + leftSideBearing: 0, + advanceWidth: 425, + yOffset: -422, + }, + accidentalFlat: { + scale: 0.8, + leftSideBearing: -10, + advanceWidth: 228, + yOffset: -284, + } +} export function loadPetaluma() { - Font.load('Petaluma', PetalumaFont, CommonMetrics); + const metrics: FontMetrics = JSON.parse(JSON.stringify(CommonMetrics)); + const chordMetrics = metrics.chordSymbol; + if (chordMetrics) { + chordMetrics.glyphs = petalumaChordMetrics; + } + Font.load('Petaluma', PetalumaFont, metrics); } From b2d2ec01a8df146047a6380e27c20c775a00f9ae Mon Sep 17 00:00:00 2001 From: AaronDavidNewman Date: Wed, 24 May 2023 19:25:09 -0500 Subject: [PATCH 2/3] remove scale parameter, but keep the others for chordsymbol --- src/chordsymbol.ts | 5 ----- src/fonts/load_petaluma.ts | 14 -------------- 2 files changed, 19 deletions(-) diff --git a/src/chordsymbol.ts b/src/chordsymbol.ts index fe1a6b6068..cd24f542c4 100644 --- a/src/chordsymbol.ts +++ b/src/chordsymbol.ts @@ -38,7 +38,6 @@ export interface ChordSymbolBlock { } export interface ChordSymbolGlyphMetrics { - scale: number; leftSideBearing: number; advanceWidth: number; yOffset: number; @@ -563,10 +562,6 @@ export class ChordSymbol extends Modifier { const glyphArgs = ChordSymbol.glyphs[params.glyph]; const glyphPoints = 20; symbolBlock.glyph = new Glyph(glyphArgs.code, glyphPoints, { category: 'chordSymbol' }); - // Beware: glyph.metrics is not the same as glyph.getMetrics() ! - // rv.glyph.point = rv.glyph.point * rv.glyph.metrics.scale; - // rv.width = rv.glyph.getMetrics().width; - // don't set yShift here, b/c we need to do it at formatting time after the font is set. } else if (symbolType === SymbolTypes.TEXT) { symbolBlock.width = this.textFormatter.getWidthForTextInEm(symbolBlock.text); } else if (symbolType === SymbolTypes.LINE) { diff --git a/src/fonts/load_petaluma.ts b/src/fonts/load_petaluma.ts index 0fa7b404b4..1a375bdfb0 100644 --- a/src/fonts/load_petaluma.ts +++ b/src/fonts/load_petaluma.ts @@ -9,85 +9,71 @@ import { FontMetrics } from '../font'; const petalumaChordMetrics: Record = { csymDiminished: { - scale: 0.8, leftSideBearing: -95, advanceWidth: 506, yOffset: 0, }, csymHalfDiminished: { - scale: 0.8, leftSideBearing: -32, advanceWidth: 506, yOffset: 0, }, csymAugmented: { - scale: 1, leftSideBearing: -25, advanceWidth: 530, yOffset: 0, }, csymParensLeftTall: { - scale: 0.8, leftSideBearing: 0, advanceWidth: 155, yOffset: 150, }, csymParensRightTall: { - scale: 0.8, leftSideBearing: 40, advanceWidth: 189, yOffset: 150, }, csymBracketLeftTall: { - scale: 0.8, leftSideBearing: 0, advanceWidth: 328, yOffset: 0, }, csymBracketRightTall: { - scale: 0.8, leftSideBearing: 1, advanceWidth: 600, yOffset: 0, }, csymParensLeftVeryTall: { - scale: 0.95, leftSideBearing: 0, advanceWidth: 210, yOffset: 250, }, csymParensRightVeryTall: { - scale: 0.9, leftSideBearing: -100, advanceWidth: 111, yOffset: 250, }, csymDiagonalArrangementSlash: { - scale: 0.6, leftSideBearing: -1, advanceWidth: 990, yOffset: 0, }, csymMinor: { - scale: 0.7, leftSideBearing: 0, advanceWidth: 482, yOffset: 0, }, csymMajorSeventh: { - scale: 0.8, leftSideBearing: 100, yOffset: 0, advanceWidth: 600, }, accidentalSharp: { - scale: 0.7, leftSideBearing: 0, advanceWidth: 425, yOffset: -422, }, accidentalFlat: { - scale: 0.8, leftSideBearing: -10, advanceWidth: 228, yOffset: -284, From 83e400854052da9b27974736ddd6314b344bf7a5 Mon Sep 17 00:00:00 2001 From: AaronDavidNewman Date: Sat, 27 May 2023 16:11:11 -0500 Subject: [PATCH 3/3] remove scale from common metrics also --- src/fonts/common_metrics.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/fonts/common_metrics.ts b/src/fonts/common_metrics.ts index 4007020817..cb56995cce 100644 --- a/src/fonts/common_metrics.ts +++ b/src/fonts/common_metrics.ts @@ -26,85 +26,71 @@ export const CommonMetrics = { }, glyphs: { csymDiminished: { - scale: 0.8, leftSideBearing: -32, advanceWidth: 506, yOffset: 0, }, csymHalfDiminished: { - scale: 0.8, leftSideBearing: -32, advanceWidth: 506, yOffset: 0, }, csymAugmented: { - scale: 0.8, leftSideBearing: 0, advanceWidth: 530, yOffset: 0, }, csymParensLeftTall: { - scale: 0.8, leftSideBearing: -20, advanceWidth: 184, yOffset: 250, }, csymParensRightTall: { - scale: 0.8, leftSideBearing: 0, advanceWidth: 189, yOffset: 250, }, csymBracketLeftTall: { - scale: 0.8, leftSideBearing: 0, advanceWidth: 328, yOffset: 0, }, csymBracketRightTall: { - scale: 0.8, leftSideBearing: 1, advanceWidth: 600, yOffset: 0, }, csymParensLeftVeryTall: { - scale: 0.8, leftSideBearing: 50, advanceWidth: 121, yOffset: 350, }, csymParensRightVeryTall: { - scale: 0.8, leftSideBearing: 0, advanceWidth: 111, yOffset: 350, }, csymDiagonalArrangementSlash: { - scale: 0.8, leftSideBearing: 250, advanceWidth: 990, yOffset: 300, }, csymMinor: { - scale: 0.8, leftSideBearing: 0, advanceWidth: 482, yOffset: 0, }, csymMajorSeventh: { - scale: 0.8, leftSideBearing: 200, yOffset: 0, advanceWidth: 600, }, accidentalSharp: { - scale: 0.8, leftSideBearing: 20, advanceWidth: 250, yOffset: -302, }, accidentalFlat: { - scale: 0.8, leftSideBearing: -20, advanceWidth: 226, yOffset: -184,