From cb752fbfcb5462ba68db2da0cf9f02d5486b68cf Mon Sep 17 00:00:00 2001 From: Danielku15 Date: Sun, 15 Jun 2025 03:51:23 +0200 Subject: [PATCH 1/4] fix(playground): Use new API to generate fresh sync points --- .../AlphaTabPlayground/sync-point-info.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/components/AlphaTabPlayground/sync-point-info.ts b/src/components/AlphaTabPlayground/sync-point-info.ts index e4484e9..131f483 100644 --- a/src/components/AlphaTabPlayground/sync-point-info.ts +++ b/src/components/AlphaTabPlayground/sync-point-info.ts @@ -70,7 +70,7 @@ export function buildSyncPointInfoFromYoutube( return autoSync(state, api, false); } - state.syncPointMarkers = buildSyncPointMarkers(api); + state.syncPointMarkers = buildSyncPointMarkers(api, false); return state; } @@ -157,17 +157,17 @@ export async function buildSyncPointInfoFromAudio( return autoSync(state, api); } - state.syncPointMarkers = buildSyncPointMarkers(api); + state.syncPointMarkers = buildSyncPointMarkers(api, false); return state; } -function buildSyncPointMarkers(api: alphaTab.AlphaTabApi): SyncPointMarker[] { +function buildSyncPointMarkers(api: alphaTab.AlphaTabApi, createNewSyncPoints: boolean): SyncPointMarker[] { const markers: SyncPointMarker[] = []; const occurences = new Map(); // phase 1: generate actual sync points all details set like tempos and times - const syncPointsWithTime = alphaTab.midi.MidiFileGenerator.generateSyncPoints(api.score!); + const syncPointsWithTime = alphaTab.midi.MidiFileGenerator.generateSyncPoints(api.score!, createNewSyncPoints); // phase 2: create markers and placeholder markers for the sync points let nextSyncPointIndex = 0; @@ -413,8 +413,8 @@ export function autoSync(oldState: SyncPointInfo, api: alphaTab.AlphaTabApi, pad // create initial sync points for all tempo changes to ensure the song and the // backing track roughly align - - state.syncPointMarkers = buildSyncPointMarkers(api); + + state.syncPointMarkers = buildSyncPointMarkers(api, true); // with the final durations known, we can "squeeze" together the song // from start and end (keeping the relative positions) @@ -425,7 +425,7 @@ export function autoSync(oldState: SyncPointInfo, api: alphaTab.AlphaTabApi, pad const synthDuration = state.syncPointMarkers.at(-1)!.synthTime; const realDuration = songEnd - songStart; const scaleFactor = realDuration / synthDuration; - + state.syncPointMarkers.at(0)!.syncBpm = state.syncPointMarkers.at(0)!.synthBpm; state.syncPointMarkers.at(-1)!.syncBpm = state.syncPointMarkers.at(-1)!.synthBpm; @@ -652,7 +652,7 @@ export function resetSyncPoints(api: alphaTab.AlphaTabApi, state: SyncPointInfo) return { ...state, - syncPointMarkers: buildSyncPointMarkers(api) + syncPointMarkers: buildSyncPointMarkers(api, false) }; } From a770d592cde0efc7e4811ba1c8e7297137723d3c Mon Sep 17 00:00:00 2001 From: Danielku15 Date: Sun, 15 Jun 2025 03:51:36 +0200 Subject: [PATCH 2/4] docs: Add playground link to landing page --- src/pages/index.module.scss | 1 + src/pages/index.tsx | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/pages/index.module.scss b/src/pages/index.module.scss index 139316c..97b9eff 100644 --- a/src/pages/index.module.scss +++ b/src/pages/index.module.scss @@ -14,6 +14,7 @@ display: flex; align-items: center; justify-content: center; + gap: 0.5rem; } :global(.navbar__title) { diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 0ecaa29..5910960 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -20,6 +20,12 @@ function HomepageHeader() { > Get Started + + Explore Playground + From 6a3dd7d8b20d1c02413c2f61201061b7a29b56fe Mon Sep 17 00:00:00 2001 From: Danielku15 Date: Sun, 15 Jun 2025 03:51:52 +0200 Subject: [PATCH 3/4] feat: Allow hiding of code from media sample for release notes --- src/components/ExternalMediaSample/index.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/ExternalMediaSample/index.tsx b/src/components/ExternalMediaSample/index.tsx index 7814ce5..fb11c28 100644 --- a/src/components/ExternalMediaSample/index.tsx +++ b/src/components/ExternalMediaSample/index.tsx @@ -4,7 +4,10 @@ import environment from "../../environment"; import './styles.module.scss' import CodeBlock from '@theme/CodeBlock'; -export const ExternalMediaSample: React.FC = () => { +export type ExternalMediaSampleProps = { + showCode?: boolean +} +export const ExternalMediaSample: React.FC = ({showCode}) => { const alphaTabWithExternalMedia = useRef(null); const audio = useRef(null); @@ -117,7 +120,7 @@ export const ExternalMediaSample: React.FC = () => { return <>