Skip to content

AxelArielSaravia/insets

Repository files navigation

inSets

Current Version: dev-2025-04

Web Version: insetmusic.web.app

Unleash your creativity with inSets! Upload audio files, let the app blend them using generative algorithms, and tweak effects like reverb, delay, or pitch to craft dynamic compositions. With customizable probabilities, you control the chaos, making every session a new sonic adventure. Perfect for musicians, sound designers, or anyone exploring generative music.

Important: Ensure your browser supports the Web Audio API, as it’s essential for inSets’ audio processing features.

Key Features

  • Randomized Audio Mixing: Generate unexpected combinations of your audio files for fresh inspiration.
  • Effect Customization: Fine-tune parameters like reverb, delay, pitch, and more to sculpt your sound.
  • Generative Probabilities: Adjust the likelihood of audio or effect combinations for evolving compositions.
  • Web-Based & Cross-Platform: Runs in any modern browser on desktop or mobile—no installation needed.

How It Works (The Rules)

The Start Button

Press Start to launch the creative process. inSets decides how many audio files to play, based on a probability distribution, and which files to select, using another probability settings. Each chosen file gets effects like Delay, Filter, Panner, Playback Rate, Random Start Point cut, and Random End Point cut. Filters and Panner have a 50% chance of being applied, and all effects settings are randomized. The app then picks a random time interval to repeat this process, crafting an envolving soundscape until you hit the Stop button.

Audio Panel

Click an audio item to open the Audio Panel. Here, you can:

  • Adjust the audio volume.
  • Choose which effects apply (by default, all are enabled).
  • Set the audio probability, influencing how often this file is picked.
  • Manually cut the audio to trim its start or end.

Configuration Section

The Configuration section lets you set minimum and maximum values for effect randomization. Configuration are saved in your browser's LocalStorage for persistence across sessions.

  • Export/Import: Export or Import your confirutarion values as a JSON file.

  • Sets: Define velues for how many audio files are selected in the arbitrary selection probability algorithm. Set max elements to limit the maximum number of files selected, and define probabilities for each possible quantity.

  • Time: Set limit values for the time interval usef by the application.

  • Delay: Define limits for time and feedback gain. The delay effect is created combining two Nodes from Web Audio API, the DelayNode that is set with time and GainNode that is set with feedback gain.

  • Filters: Choose ranges for frequency and q factor, and select types ( highpass, lowpass, bandpass, notch). highpass and lowpass ignore q factor. Uses a BiquadFilterNode.

  • Panner: Adjust X, Y, and Z ranges for 3D audio positioning with an HRTF-based PannerNode.

  • Pb Rate: Playback Rate speeds up (>1) or slows down (< 1) audio without preserving pitch.

  • RSP/REP: Random Start Point (RSP) and Random End Point (REP) cuts ensure files stay at least 500 milliseconds long and skip files shorter than 1 second.

For effects with custom ranges, a reset button restores default settings.

Installation

Get started with inSets in one of two easy ways: 1. Copy the index.html file:

  • Github:
    • in github, go to index.html
    • press the download button
  • With wget:
    wget https://raw.githubusercontent.com/AxelArielSaravia/insets/refs/heads/main/index.html -O index.html
  • With curl:
    curl -O -L https://raw.githubusercontent.com/AxelArielSaravia/insets/refs/heads/main/index.html
  • Open index.html in a Web Audio API-compatible browser

2. Download as PWA:

  • Visit insetmusic.web.app in a compatible browser.
  • Click the browser’s "Add to Home Screen" or "Install" prompt (usually found in the menu or address bar).
  • Launch inSets from your device’s home screen for offline access and a seamless app experience.

How To Build:

To build inSets from source:

The src/index.html file is a Go template/html that needs to be parsed.

  • Dependencies:

  • Steps:

    1. Clone the Repository:
    git clone https://github.com/AxelArielSaravia/insets.git
    cd insets
    1. Build index.html (Production):
    go run tools/builder/build.go prod minify

    Generates a minified index.html for deployment.

    1. Build public/ (Hosting Environment):
    go run tools/builder/build.go hosting

    Prepares all files for hosting.

    1. Build dev.html (Debugging):
    go run tools/builder/build.go dev

    Creates a developer-friendly file for testing.

  • Test Locally:

    • Open the generated index.html or dev.html in a Web Audio API-compatible browser.
    • Or use a local server (e.g., go run tools/server/server.go 8000 or go run tools/server/server.go public for listen public/ dir).

ToDo:

  • Light Theme palette
  • Adds the change AudioEvent
  • Adds the audio visualization
  • Review killing zombies
  • Animation cancel
  • Use the localstorage to save the configuration
  • Implement "import"/"export" functionalities
  • Implement the FadeIn and Fadeout on the Play and Pause actions
  • Thinking about audios less than 1 second
  • Thinking about the relation of Playback Rate and the fadeout aplication
  • Favicons
  • ogg
  • Implement a notification sistem
  • Add a minify to the Prodcution Builder

License

This project is licensed under the MIT License (LICENSE)—free to use, modify, and share.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published