Click-Free Piano Release After-Sound & Smooth Repeated-Note Crossfading
Eliminates clicks during the release (after-sound) phase of piano samples and replaces the harsh 3.5ms repeated-note cutoff with a smooth register- and sustain-scaled acoustic re-strike crossfade.
Explicit W3C AudioParam Anchoring & Sub-Quantum Gain Resolution
Always follows cancelAndHoldAtTime with an explicit setValueAtTime anchor and resolves live envelope/output gains from stored note-on state, preventing single-sample 0.0 drops when releasing non-looping piano voices or rapid staccato taps.
Shapes piano release solely on envelope.gain with a 22ms damper-felt contact cushion, RT60 exponential string decay, and linear zero-crossing tail while keeping conditioned sample loops active until stopAt so playheads never cross un-crossfaded post-loop guard boundaries.
Register-Scaled Same-Key Re-Strike Crossfade
Replaces the 3.5ms brickwall cutoff on repeated notes with a smooth 65ms–220ms 2-stage equal-power crossfade scaled by register, sustain pedal state, and trill speed.
Version 1.12.26SYSTEM UPDATE
AudioContext Authority Reconciliation for Node Connections
Reconciles live AudioContext ownership across sampler playback, per-octave FX chains, hammer transients, and compression buses to prevent cross-context connect errors during engine reboots.
Zero Context MismatchSafe FX RoutingReboot Resilient
Unified AudioContext Ownership Guards
Ensures all voice destinations, compression buses, and per-voice FX chains validate AudioNode.context equality before connecting.
Version 1.12.25SYSTEM UPDATE
Touch & MIDI Overlap Isolation and Stuck-Key Release Architecture
Eliminates stuck audio voices and stuck visual key presses after touch gestures end, while introducing zero-allocation source-isolated holder tokens so overlapping Touch, live MIDI, computer keyboard, and playback notes operate independently on both shared and separate keys.
Unifies activeSamplerNotesRef FIFO array-queue drainage across safeguard teardown, panic, and keyboard playback so all overlapping voice callbacks execute cleanly without TypeError aborts.
Zero-Allocation Source-Isolated Key Holder Tokens
Separates Touch (0), MIDI channels 0–15 (100–115), computer keyboard (200), and remote peers (300+) in activePianoNotesRef so releasing Touch never silences or unpresses a key still held by MIDI (and vice versa).
Touch-Scoped Global Safeguard & Glissando Re-Entry Guard
Scopes global touchend/mouseup recovery to release only orphaned touch holds without interrupting active MIDI notes or CC64 sustain, and prevents glissando re-entry from stranding intermediate crossed keys.
Version 1.12.24SYSTEM UPDATE
Touch Velocity Curve Smoothing Scaling Across Soft, Normal & Punchy Modes
Refines touch velocity curve smoothing across dynamics modes: applies full smoothing (1.0x) in Soft mode, tenfold less smoothing impact (0.10x) in Normal (Natural) mode for natural piano expression, and zero smoothing (0.0x) in Punchy mode.
Soft: 1.0x SmoothNormal: 0.10x ImpactPunchy: 0.0x Raw
Full Velocity Curve Smoothing in Soft Mode (1.0x)
Applies full EMA contour tracking, per-note slew-rate limiting (maxStep 0.04), and mid-note retrospective jump suppression in Soft mode.
Tenfold Less Smoothing Impact in Normal Mode (0.10x)
Scales both kinetic touch smoothing and per-keyboard clause smoothing impact to 1/10th (0.10x) in Normal (Natural) mode, preserving lively piano dynamics with gentle edge conditioning.
Zero Smoothing in Punchy Mode (0.0x)
Completely bypasses velocity curve and clause smoothing in Punchy mode so raw accent dynamics pass through untouched.
Adds zero-dependency Standard MIDI File (.mid / .midi) drag-and-drop playback directly in Piano Studio, exposes the window.MaqAmirStudio imperative automation API, routes demo note events through MIDIDirectBus for sample-accurate audio/visual sync, and auto-closes the ScaleBar root-note popover on selection.
0B Hot-Path GCNative .mid DropMaqAmirStudio API
Zero-Allocation Standard MIDI File Parser & Player
Parses Format 0 & 1 .mid files with piecewise tempo mapping, deterministic same-tick NoteOff-before-NoteOn ordering, multi-track overlap reference counting, and v1.11.2 sustain polarity protection.
Invisible .mid Drag-and-Drop & Multi-Octave World Instrument Routing
Dropping any .mid file onto /piano automatically centers the keyboard viewport, enables Real Pitch Mode for multi-octave pieces on world instruments, and provides one-tap toast + Esc stop control.
Exposes deterministic studio automation helpers (setScale, setInstrument, playMidiBuffer, preWarmSamples) and auto-closes the Radix root-note popover upon selection.
Version 1.12.22SYSTEM UPDATE
Smooth Touch Velocity Contour in Soft & Normal Dynamics Modes
Eliminates sudden note-to-note velocity jumps when playing on touchscreens in Soft and Normal (Natural) dynamics modes via continuous EMA contour tracking, per-note slew-rate limiting, boot-time touch profile synchronization, and mid-note retrospective gain jump suppression.
Maps Soft and Normal touchscreen strikes into calibrated dynamic bands with zero-allocation EMA contour tracking and tight per-note slew-rate clamping (maxStep 0.04 in Soft, 0.07 in Normal).
Extends per-keyboard clause velocity smoothing so pauses longer than 450ms smoothly relax toward the mode center instead of hard-resetting and passing unsmoothed spikes.
Applies the saved or default Touch Profile immediately on studio mount before the Settings drawer opens and suppresses mid-note retrospective IMU gain jumps in Soft and Normal modes.
Version 1.12.21SYSTEM UPDATE
Piano Studio 120fps Frame-Budget & Audio Responsiveness Round
Eliminates 120Hz CSS string parsing on aftertouch ripples, registers non-inheriting @property rules for outer ripple transforms, introduces dirty-rect partial clearing on the full-screen glissando trail canvas, removes per-frame closure allocations in MiniGesturePad, and isolates StudioFXPanel and GestureOverlay from unnecessary React context re-renders.
120fps LockedDirty-Rect Canvas Clear0 Redundant FX Renders
Caches per-element CSS custom property values in JS memory to eliminate 600+/sec getPropertyValue() string parses and registers @property { inherits: false } on outer-only ripple variables so ::before and ::after pseudo-elements skip style invalidation.
Glissando Trail Dirty-Rect Clearing & Zero-Closure Gesture Pad Loop
Replaces full-viewport 8M-pixel canvas clears with padded dirty-bounding-box clearRect passes in GlissandoTrailCanvas and removes per-frame rAF and Map.forEach closure allocations in MiniGesturePad.
Extracts ConnectedEffectsModeToggle in StudioFXPanel and decouples GestureOverlay from PianoStudioStateContext so scale/instrument/mode updates never re-render the 14-card FX deck, while immediately nulling completed AudioBufferSourceNode.buffer references.
Version 1.12.14SYSTEM UPDATE
Piano Studio CSS & 120Hz Style Recalculation Optimization
Isolates 120Hz aftertouch/MPE CSS custom properties with non-inheriting @property rules, deduplicates per-frame ripple style mutations, removes dead note-on variable writes, and restores full layout/paint containment on dual-keyboard studio containers with 100% visual parity.
Registers non-inheriting @property declarations for aftertouch and MPE key transform variables and deduplicates unchanged per-frame ripple CSS variable writes.
Studio Containment & Selector Hygiene
Consolidates duplicate .studio-keyboard-area rules to preserve layout/paint containment across primary and secondary keyboards and replaces inline-style substring selectors with direct class matching.
Restores the 220ms aftertouch onset delay on Samsung Galaxy S25, prevents immediate 0ms aftertouch triggers on key press, ensures complete per-key voice and FX reset when touch ends or slides off-key, and unblocks smooth glissando transitions.
Prevents PointerEvent CSS pixel geometry and binary finger pressure from prematurely triggering the capacitive fast-track at 0ms on S25, preserving the 220ms hold delay and allowing horizontal glissandos to initiate cleanly.
Complete Release & Glissando Origin Teardown
Captures active movement tracking before visual reset and fully sanitizes global touch slots, contact trackers, and physical key-up states when lifting or sliding across keys.
Version 1.11.12SYSTEM UPDATE
Live Finger Mass Funnel for iPad Aftertouch
Held notes on iPad now extract live touch radius and contact mass directly from active events and the global touch tracker, dynamically swelling and softening without getting stuck on initial strike mass.
Live Event FunnelGlissando ParityFull Dynamic Swell
Direct Live Event Extraction
Aftertouch on iPad reads live finger contact directly from active events and global touch tracker frames, paired with the settled baseline to continuously modulate volume and ripple visuals.
Version 1.11.11SYSTEM UPDATE
iPad Held-Note Volume Follows Your Settled Touch
Held notes on iPad now measure finger pressure from where your finger settles, not the first instant of contact, so pressing harder swells and easing off softens throughout the hold.
Settled-Touch BaselineTwo-Way Volume Response
No More Locked Volume
The volume no longer freezes at the start of a held note on iPad. Lean in to swell, lighten up to soften, just like during glissando.
Version 1.11.10SYSTEM UPDATE
iPad Held-Note Volume Rebuilt on the Glissando Touch Signal
Held notes on iPad now read your finger size from the exact same touch signal that already drives glissando volume and ripple size.
Glissando-Matched Touch SignalLive Ripple Sync
Responsive Held-Note Volume
Pressing harder or easing off while holding a note on iPad changes the volume the same way it does while sliding across keys.
Version 1.11.9SYSTEM UPDATE
iPad Aftertouch Volume Now Follows Finger Mass Like Glissando
Pressing harder or easing off while holding a note on iPad now changes the volume with the same response you already get while sliding across keys.
Live Finger MassGlissando-Matched Response
Responsive Held-Note Volume
Held notes on iPad swell and soften with your finger pressure using the same sensitivity as glissando.
Version 1.11.8PERFORMANCE & OFFLINE
Instant World Instrument Switching & Complete Offline Play
All 24 world instrument visualizers and soundscapes now load smoothly in the background when opening Piano Studio, enabling instantaneous switching between instruments even with no internet connection.
24 World InstrumentsInstant Switching100% Offline PlaySeamless Preload
Instant Instrument Switching
Switch between any world instrument or visualizer realm with zero delay or loading pauses.
Full Offline Playability
All instrument soundscapes and visual realms remain fully playable even when offline without a network connection.
Version 1.11.3EXPRESSION UPDATE
Natural Repeated Note Strikes & Expressive Touch
Playing repeated notes and fast chords now feels completely natural, with volume swelling smoothly when pressing into the keys and releasing cleanly the moment you lift your fingers.
Piano Creator reaches milestone v1.10.0, introducing smooth, battery-friendly synth instruments, smart audio glitch prevention, and expressive pressure-sensitive touch across modern phones and tablets.
All synth sounds now play with rich, natural sustain and zero performance stutter, keeping your device running cool and fast.
Smart Audio Glitch Prevention
Automatic audio stabilization monitors sound quality and prevents dropouts or buzzing during intense, multi-finger performances.
Expressive Touch Across Devices
Enjoy nuanced volume and tone swelling when pressing deeper into piano keys on iPad and modern mobile devices.
Version 1.9.78STUDIO UPDATE
Instant Synth Response & Crystal-Clear Sound
Synthesizer instruments now respond instantly across the entire keyboard with zero distortion, dropouts, or clicks, providing effortless sustained chords and authentic tone.
All synth keys and octave shifts sound immediately with rich, natural tone and zero audio dropouts.
Seamless Chords & Sustain
Play large, sustained chords without voice-cutting clicks or audio strain.
Instant Instrument Audition
Preview sounds instantly and cleanly in the instrument drawer before assigning them to your keyboard.
Version 1.9.77EXPRESSION UPDATE
Expressive iPad Volume Swells & Touch Parity
Pressing harder into held piano keys on iPad now delivers deep, musical volume swells and rich expressive dynamics, matching the tactile feel of flagship touch instruments.
Leaning your finger weight into keys on iPad produces rich, expressive crescendo swells.
Expanded Dynamic Range
Enjoy wider expressive volume shaping from gentle murmurs to powerful, soaring climaxes.
Full Chord Expressiveness
Every finger in a held chord swells harmoniously when applying hand weight across the keys.
Version 1.9.75AUDIO UPDATE
Smooth Effect Transitions & Seamless Performance
Sound effects, reverbs, and echoes now fade in and out with musical smoothness during intense performances, eliminating abrupt cuts or sudden volume changes.
The audio engine is primed on launch, producing sound from your very first key strike with zero delay.
Crisp Instrument Previews
Browse and listen to instruments in the drawer with crisp, immediate previews.
Version 1.9.70STABILITY UPDATE
Intelligent Audio Glitch Protection for Tablets
Automatic sound stabilization keeps audio clear and glitch-free on portable tablets and mobile devices even during heavy multi-note playing.
Glitch-Free AudioSmooth Tablet PlayClean High Polyphony
Automatic Audio Stabilization
Detects and prevents audio distortion or buzzing during dense, rapid playing.
Smooth Visual Balance
Background visual effects balance smoothly during heavy playing to ensure audio stays completely clear.
Crisp Attack Timing
Every note sounds with crisp attack punch without dropping strikes.
Version 1.9.68STABILITY UPDATE
Self-Healing Audio Engine for Continuous Performance
The audio engine automatically detects and heals audio buffer hiccups in the background, keeping your practice and performance smooth and uninterrupted.