Gizmix.org Open Lab Player – Overview
The Gizmix Player is the engine behind every playlist page on gizmix.org.
It handles preview audio, full-track playback, UI interaction, waveform display,
and a handful of dynamic effects that make the experience smooth and expressive.
This page explains the main features of the player and the technical tools used to build it.
From here, you can explore each feature in detail through dedicated sections.
These documents are part of the Gizmix Open Lab initiative — a space meant for curious
developers who want to understand how the player works, reuse pieces of it,
or learn by seeing a real-world implementation.
Player Features
The current version of the Gizmix Player includes:
- Preview → Full Track Loading
A lightweight preview file is loaded first. Once ready, it is swapped automatically
for the full audio file using asynchronous loading logic.
- WaveSurfer.js Integration (v7)
Waveform rendering, playback timeline, zoom support, duration tracking,
and event-driven UI updates rely on this library.
- Typed Text Description Box
A typewriter effect prints the current description of the track,
including custom attributes fetched through PHP/MySQL.
- Dynamic Modal & Overlay Behavior
Custom modal with fade animation, blur effects, and scroll locking.
- Pointer Events Locking
Prevents user interaction during loading, switching audio files,
or when the preview is still active.
- Playback State Restoration
If the user reloads the page, the last playback position can be restored.
- Manual Zoom Slider
A custom slider reconfigures the WaveSurfer zoom level with smooth animation.
- MediaSession API Integration
Allows display of metadata on mobile lock screens and supports play/pause controls.
- Automatic Preview File Cleanup
Once a full-length track is loaded, the preview file is removed from the server
using a secure PHP endpoint.
- Custom Gradient Backgrounds
A dynamic canvas draws color gradients based on track art or internal presets.
Technologies Used
The player relies on a combination of frontend and backend tools:
- HTML5 / CSS3 – Base structure, responsive layout, transitions.
- JavaScript (ES6+) – Core logic, UI behavior, API calls.
- PHP – Serves metadata, handles secure file deletion, DB access.
- MySQL – Stores playlist, track info, and metadata fields.
- WaveSurfer.js – Waveform visualizer and audio engine.
- MediaSession API – Mobile UX enhancement.
- Custom Canvas Drawing – Background gradients and effects.
Documentation Sections
Use these links to explore each part of the player in detail:
These documents will expand over time.
The goal is to expose real-world code, invite experimentation,
and give inquisitive developers a chance to explore how a
modern audio player is built from scratch.