Skip to content

ricoloic/audio-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

playback-audio-controller

playback-audio-controller is a JavaScript library that provides a simple interface for controlling audio playback and analyzing audio frequencies in the browser. It utilizes the Web Audio API to manage audio playback and perform frequency analysis.

Installation

You can install the library via npm:

npm install playback-audio-controller

Usage

Importing the Library

You can import the AudioController class as follows:

const { AudioController } = require("playback-audio-controller");

Loading an Audio File

To load an audio file for playback, create an instance of AudioController and use the load method:

const audioController = new AudioController();
const audioFileUrl = "your_audio_file.mp3";

audioController.load(audioFileUrl).then(() => {
    // The audio file is loaded and ready to be played or analyzed.
});

Initializing the Audio Context

Before playing or analyzing audio, you need to initialize the audio context. You can use the initialize method:

audioController.initialize().then(() => {
    // The audio context is now initialized and ready to use.
});

Playing Audio

To start playing the loaded audio file, use the start method:

audioController.start();

You can also toggle between play and stop states using the toggle method:

audioController.toggle(); // Toggles between play and stop.

Stopping Audio

To stop the audio playback, use the stop method:

audioController.stop();

Analyzing Audio Frequency

You can analyze the frequency data of the audio using the analyzeFrequency method. Here's an example of how to use it:

const options = {
    fftSize: 2048, // FFT size for frequency analysis (default: 2048)
    minFrequency: 20, // Minimum frequency to analyze in Hz (default: 0)
    maxFrequency: 20000, // Maximum frequency to analyze in Hz (default: half the sample rate)
};

const frequencyData = audioController.analyzeFrequency(options);

// `frequencyData` is a Uint8Array containing frequency data within the specified range.

Example

Here's a complete example of how to use playback-audio-controller:

<button id="toggle-play" type="button">Toggle</button>

<script>
    const { AudioController } = require("playback-audio-controller");

    const audioController = new AudioController();
    const audioFileUrl = "your_audio_file.mp3";

    audioController.load(audioFileUrl).then(() => {
        audioController.initialize().then(() => {
            // Audio is loaded and context is initialized.

            document
                .getElementById("toggle-play")
                .addEventListener("click", () => {
                    audioController.toggle();
                });

            const logFrequencies = () => {
                setTimeout(() => {
                    // Analyze audio frequency in the range of 20Hz to 20000Hz.
                    const frequencyData = audioController.analyzeFrequency({
                        minFrequency: 20,
                        maxFrequency: 20000,
                    });

                    console.log("Frequency Data:", frequencyData);

                    logFrequencies();
                }, 100);
            };

            logFrequencies();
        });
    });
</script>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published