Conversation
…-in skins Detect combo milestones, the gauge crossing the clear line, and a full combo as pure state transitions, and stage them in both skins: - Phantom: READY?/GO!! count-in slash, 100-combo banner cut-ins, a CLEAR! pop, a full-combo burst with confetti, and a RESULT ink wipe - Synesthesia: a light count-in and start ring, combo shockwaves, a gauge sweep, and a full-combo 3D spark sphere with prism rings Synesthesia also escalates with the combo (denser, faster stars, hotter grid, aurora, beat rings, hyperspace streaks, bigger bursts) and dims overlapping hit flashes so colour survives dense chords.
…fects level to the built-in skins
Judgements and combo punch in on hits, lanes react to key presses, misses shake the screen and break combos shatter the counter, select plays a launch outro before gameplay, HUD text is no smaller than 9px, moments make room for a BGA, and a new beMusicEffects option ('full' / 'reduced' / 'off') tones effects down.
…a roaming camera Rebuild the skin as a cosmic particle world: a black void with an ember horizon, fine ember / gold particles with blue and magenta accents, a point floor, particle rivers, point-cloud pyramids and a floating point-cloud figure, voxel sparks and lock-on reticles, and hairline frames. The 3D backdrop now flies between camera shots periodically, and the idle BGA monitor orbits the figure.
Three 3D boid schools swim through the backdrop, tightening on the beat and scattering on key presses, and the camera now roams between seeded random shots with occasional hard cuts and a handheld drift instead of a fixed shot loop.
A typographic paper skin with a needle field, text scramble, odometer counters, spring-set letters, Verlet pendulums, bounce drops, and tile-flip transitions. Text helpers accept the 200 weight for thin display type, and the demo loads Inter.
… ransom-note lettering Count-in, combo milestones, and the full combo rip in on torn strips with ransom-note text; the launch outro becomes a torn split screen between a red bokeh half and a starburst half; the result wipe tears along a ripped edge. Judgement type is held back while the full combo covers the page.
Pixi measures a line box from the ink of '|ÉqÅM', so top-heavy faces such as Anton and Michroma rendered noticeably below their anchor. Measure each face's cap-centre offset once and cancel it through the text pivot, which also survives per-letter repositioning, rotation, and scaling.
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
View logs |
be-music-player-demo | 82063b1 | Sep 29 2026, 07:56 AM |
Exports Benchmark
Summary
Top Regressions
Top Improvements
Excluded (sub-timer-resolution)Per-call latency at or below 0.001ms on at least one side — the reported time is measurement noise, not the case's real cost, so no percent change is shown.
|
Tap the gameplay bus output and the select BGM / chart preview with an AnalyserNode and hand skins a per-frame BeMusicAudioFrame: loudness, bass / mid / high energy, a 16-band log spectrum, and spectral-flux onsets. audioDrive scales it by the effects level for built-in skins.
Phantom pumps its halftone and bursts on the bass and adds spectrum strips; Synesthesia drives dust, haze, floor, rivers, and fish schools from the mix and rays a spectrum halo round the figure; Lattice turns its needle field and idle monitor into equalizers, ripples and strikes pendulums on onsets, and shows a live spectrum with a dB readout.
…lizer-style audio orb A hollow shell of violet / blue / pink sparks, brightest at its silhouette and bristling with fibres, swells and bursts with the spectrum and onsets while it wanders the space close to the camera; a black moon revolves round it and reflects its light. Dense backdrop shapes are now batched into a handful of draw instructions per frame.
… skip] Replace references to specific people, games, and visualizers in skin comments and the changeset with generic descriptions.
nulltask
force-pushed
the
feature/skin-showpieces
branch
from
September 29, 2026 07:56
033ed5f to
82063b1
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #221 (merged): showpiece moments for every built-in skin, an effects level, a cosmic particle-world rework of Synesthesia, a third built-in skin (Lattice), a Phantom cut-in pass, and a text alignment fix.
Shared (all built-in skins)
scene/default/moments.ts.judgeAtMs,impulseAtMs,impulseKind).BeMusicSelectRenderer.outroMs, pluslaunchAtin the frame). Input is ignored while it plays.beMusicEffectsoption ('full'/'reduced'/'off'): on the default gameplay, select, and result views, it tones down or disables shake, flashes, particles, and ambient motion. The demo's Debug Menu gains a Skin effects picker.|ÉqÅM, so top-heavy faces (Anton ≈ 0.12 em, Michroma ≈ 0.10 em) rendered below their anchor.text-metrics.tsmeasures each face's cap-centre offset once and cancels it through the text pivot. The pivot keeps the correction through per-letter repositioning, rotation, and scaling.Audio-reactive skins
runtime/audio-analysis.ts): gameplay taps the audio bus output, and select taps the BGM and chart preview (not the one-shot system cues). Each frame produces aBeMusicAudioFramewith:renderChrome(runtime.audio),renderLanes/renderBombs(audio), and the select renderer'stick(fourth argument).audioDrivescales the frame by the effects level (off = silent, reduced = half).Phantom
Synesthesia (reworked as a cosmic particle world)
Lattice (new,
latticeSkin)Notes for reviewers
ShapeBatch, which quantizes colour and alpha so thousands of dots and lines become a handful offill/strokecalls. It is used only for additive light, where overlap order does not matter.latticeSkin, inBUILT_IN_BE_MUSIC_SKINS. Everything else added is internal toscene/default.reduced/offvisuals, and low-end device performance.Testing
vp check: 0 errors (22 existing warnings, unchanged)vp test run: 2124 tests passvp packfor@be-music/player-webbuilds