Lagoons is an interactive web-based audio playground that lets you create and manipulate audio loops, and play synthesized notes in real-time. Whether you're a musician, a developer, or just someone who loves to experiment with sound, Lagoons provides an intuitive interface for exploring your creativity.
Check out a live demo here.
- Audio Looping: Load and play audio loops with zero latency.
- Real-time Synthesis: Play notes in real-time using your keyboard.
- Effects Control: Adjust volume, reverb, delay, attack, decay, sustain, and release.
- Interactive UI: Intuitive interface for manipulating sound and controlling playback.
- Customizable Key Mapping: Easily map keys to specific notes.
To run Lagoons locally, you will need:
- A modern web browser (Chrome, Firefox, Safari, etc.).
- A text editor or IDE (VS Code, Sublime Text, etc.) if you plan to modify the code.
-
Clone the repository:
git clone https://github.com/alanmaizon/lagoons.git cd lagoons
-
Open
index.html
in your web browser:You can either double-click the
index.html
file or serve it using a local server likehttp-server
orLive Server
in VS Code.# If you have npm installed npx http-server .
-
Load audio samples:
Place your audio files (e.g.,
groove.mp3
) in theassets/audio
directory. Modify the JavaScript to load these files as needed.
-
Load an audio loop:
- Ensure your audio file is located in the correct directory.
- Modify the JavaScript code to load your file (e.g.,
groove.mp3
).
-
Control the loop:
- Use the
Play Loop
andStop Loop
buttons to start and stop the loop.
- Use the
-
Keyboard Interaction:
- Use your keyboard to play notes. The keys are mapped to specific notes (e.g.,
A
playsC4
,W
playsC#4
).
- Use your keyboard to play notes. The keys are mapped to specific notes (e.g.,
-
Mouse Interaction:
- Click on the on-screen piano keys to play notes.
- Volume, Reverb, Delay: Use the sliders and checkboxes to adjust these parameters in real-time.
Contributions are welcome! Here's how you can help:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/YourFeature
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions, suggestions, or just want to say hi, feel free to reach out!
- Alan Maizon - alanmaizon@hotmail.com
- GitHub Profile
- Project Repository