Skip to content

seyric/Aether-LO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

🎵 Aether-LO Audio Engine

JavaScript Tone.js Platform License

A generative, dark-ambient audio engine for the web. Built with Tone.js to provide dynamic soundscapes and reactive UI sound effects.

Aether-LO is a class-based audio controller designed to bring web interfaces to life. It combines atmospheric pads, procedural percussion, and random arpeggiation to create a mood that shifts between "Dark", "Tension", and "Melodic" states automatically. Fully Modular


✨ Features

  • 🎹 Generative Scales - Automatically weaves between Minor, Phrygian, Aeolian, and custom "Dread" scales.
  • 🎛️ Dynamic Atmosphere - Real-time manipulation of Reverb, Stereo Width, and Lowpass filtering.
  • 🥁 Procedural Rhythm - A 16-step sequencer handling Kick and Hi-hat patterns with swing logic.
  • 🖱️ Reactive UI SFX - Built-in methods for hover and click interactions.
  • 🌊 Sidechain Logic - The background pads automatically "duck" (lower volume) when the kick drum hits.
  • 🚀 Autostart Handling - Handles browser autoplay policies by binding to initial user interaction.

🚀 Quick Start

Prerequisites

  • A modern web browser.
  • Tone.js library (Internet connection required for CDN).

Installation

  1. Include Tone.js Add the Tone.js CDN to the <head> of your HTML file.

    <script src="[https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js](https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js)"></script>
  2. Add the Engine Download sound.js and link it after Tone.js.

    <script src="sound.js"></script>
  3. Initialize The engine automatically initializes and attaches itself to window.Seyric. It will wait for a click or keypress to start the audio context.

💻 Usage

Basic Implementation

The engine attaches to the window object automatically. You can interact with it using the globally accessible Seyric object.

// The engine starts automatically on the first user interaction
// via the bind() method included at the bottom of sound.js.

// Check if running
if (window.Seyric.running) {
    console.log("Audio Engine Active");
}


<button onmouseenter="window.Seyric.hover()">
    Hover Me
</button>

<button onclick="window.Seyric.click()">
    Click Me
</button>

🎚️ Configuration

The engine manages its own state, but you can modify the starting parameters in the constructor within sound.js:

this.state = {
    intensity: 0.3,   // General volume modifier
    tension: 0.2,     // Likelihood of dissonant scales
    emotion: "dark",  // Starting mood
    tempo: 80         // Starting BPM
};

Created by Seyric

About

Generative soundscapes in the browser. Using the Web Audio API to create non-repetitive dark ambient music for immersive reading experiences.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors