Skip to content

Releases: students-dev/audify-js

audify-js v1.0.2

23 Dec 05:25
2f6c883

Choose a tag to compare

Release Notes - audify-js v1.0.2

🚀 Overview

Version 1.0.2 is a landmark release for audify-js, transforming it into a fully-typed, stable, and highly extensible audio engine. This release focuses on developer experience, architectural maturity, and cross-environment reliability.

💎 Key Features

1. Full TypeScript Migration

The entire engine has been rewritten in TypeScript.

  • Strict Typing: Catch errors at compile time.
  • Interfaces: Exported ITrack, IProvider, and IPlugin for seamless extension.
  • Dual Builds: Ship with both ESM and CJS support, including full .d.ts declarations.

2. Standardized Provider System

Introduction of the ProviderRegistry and IProvider interface.

  • Unified Resolution: Transparently handle YouTube, Spotify, Lavalink, and Local files.
  • Third-Party Support: Easily inject your own custom providers into the engine.
  • Improved Metadata: Enhanced normalization across all sources.

3. Hardened Plugin Architecture

The plugin system is now safer and more capable.

  • Lifecycle Hooks: beforePlay, afterPlay, trackEnd, and queueUpdate.
  • Error Isolation: One faulty plugin can no longer crash the entire engine.
  • Safe State: Scoped plugin loading and unloading.

4. Robust Node.js Support

  • MockAudioContext: A custom fallback implementation that allows the engine to run in headless environments (like CLIs or servers) without crashing or requiring a physical sound card.

🛠 Internal Improvements

  • Refactored AudioEngine: Better internal state management and event propagation.
  • Queue Synchronization: Fixed edge cases in shuffle and loop modes.
  • Memory Optimization: Improved cleanup on track skips and engine destruction.

📚 Documentation

  • Architecture Guide: Deep dive into the engine's internals.
  • Provider Guide: Instructions on creating and using providers.
  • Plugin Guide: Step-by-step tutorial on extending the engine.

📦 Migration from v1.0.x

This release is designed to be backwards compatible, but it is recommended to update your event listeners to use the engine.eventBus for the most consistent experience.


Created on 2025-12-23

What's Changed

  • fix: updated the package.json file with the new version v1.0.1 by @manjunathh-xyz in #2
  • feat: Release v1.0.2 - TypeScript Migration & Provider Registry by @manjunathh-xyz in #3

Full Changelog: v1.0.1...v1.0.2

Release: audify-js v1.0.1

12 Dec 08:22
2963c59

Choose a tag to compare

Release: audify-js v1.0.1

This release brings significant enhancements to the provider ecosystem in audify-js with the introduction of Spotify and Lavalink client integrations, along with a series of core patches, stability improvements, and updated dependencies. These changes extend the library’s reach across more audio sources and strengthen consistency in both browser and Node environments.

What’s New

  • Added Spotify client integration for searching, resolving, and queueing tracks using user-provided OAuth tokens.
  • Added Lavalink client integration with support for playback commands, queueing, and track control via external Lavalink nodes.
  • Integrated both providers into the existing AudioEngine and queue lifecycle.

Enhancements

  • Updated several dependencies for improved performance and security.
  • Refined internal provider architecture for easier future expansion.
  • Improved event handling and metadata consistency across all providers.
  • Strengthened TypeScript types and documentation.

Bug Fixes

  • Corrected edge cases in track loading and metadata parsing.
  • Fixed queue synchronization issues under certain playback conditions.
  • Resolved minor event emitter inconsistencies.

Developer Updates

  • Added new examples demonstrating usage of Spotify and Lavalink integrations.
  • Expanded test coverage to validate provider behavior and queue operations.
  • Updated README with revised setup instructions.

Here is a clear and professional update you can use to add a new contributor to the project (for README, CONTRIBUTORS.md, or the release notes):

Contributor Added:

  • manjunathh-xyz

    • Role: Core Contributor and Feature Developer
    • Contributions: Spotify integration, Lavalink integration, dependency updates, engine patches, documentation updates, and example improvements.

audify-js v1.0.0 - Complete Audio Engine Library

11 Dec 13:11

Choose a tag to compare

🎉 audify-js v1.0.0 Release

A lightweight, modern, modular audio engine that provides playback, filters, queue management, events, and extensibility through plugins. Works in both Node.js and browser environments.

✨ Key Features

Core Audio Engine

  • Unified AudioEngine class with Web Audio API integration
  • Cross-environment abstraction (Web Audio API + Node audio backends)
  • Support for local audio files, remote URLs, YouTube, SoundCloud

Queue & Playback System

  • Queue management: add, remove, shuffle, clear, jump
  • Playback controls: play, pause, stop, resume, seek
  • Loop modes: off, track, queue
  • Auto-end handling

Audio Effects & Filters

  • Built-in filters: bassboost, nightcore, vaporwave, 8D rotate
  • Pitch & speed adjustment, reverb presets
  • Real-time filter application

Plugin System

  • Extensible plugin architecture
  • Lifecycle hooks: onLoad, onEnable, onDisable
  • Access hooks: beforePlay, afterPlay, trackEnd, queueUpdate
  • Safe sandbox execution

Event-Driven Design

  • Comprehensive event system for all operations
  • Player events: ready, play, pause, stop, error, trackStart, trackEnd
  • Queue events: trackAdd, trackRemove, shuffle, clear

Developer Experience

  • TypeScript declarations (.d.ts files)
  • Dual ESM/CJS builds
  • Tree-shake friendly modules
  • Zero external runtime dependencies

📦 Installation

npm install @students-dev/audify-js

🚀 Quick Start

Browser:

import { AudioEngine } from '@students-dev/audify-js';

const engine = new AudioEngine();
engine.on('ready', () => {
  engine.add('audio.mp3');
  engine.play();
});

Node.js:

import { AudioEngine } from '@students-dev/audify-js';

const engine = new AudioEngine();
engine.on('ready', () => {
  engine.add('/path/to/audio.mp3');
  engine.play();
});

📚 Documentation

🔧 Compatibility

  • Browser: Chrome 14+, Firefox 25+, Safari 6+, Edge 12+
  • Node.js: 14.0+
  • Package: ESM + CJS dual builds with TypeScript support

📝 Changelog

This is the initial v1.0.0 release with all core features implemented.


Package: @students-dev/audify-js
Version: 1.0.0
License: MIT