Skip to content
This repository was archived by the owner on Jul 26, 2025. It is now read-only.

Asmatzaile/Soundpot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Important

This repo is archived on GitHub. It now lives on Codeberg!

Soundpot

Soundpot is a playful and accessible musical framework where users can play and combine distinct sound objects.

Using Soundpot

At the start, you have a limited library of a few few 'primordial' sound objects. You can drag those objects to the pot, which fulfills a double function: it is both a graphic score and a workspace for combining the objects.

While in the pot:

  • To combine two sound objects, just drag one onto the other.
  • Hear the sound of your objects when the waves created by raindrops touch them.

Inspiration

  • The concept of Sound Object, coined by Pierre Schaeffer in 1966.
  • Alchemy by Christian Steinruecken (1997)1
  • Infinite Craft by Neal Agarwal (2024)
  • An explanation about generating music with agents where one of them emits waves and others play a sound when they receive them. I remember reading it in the past but I can't find it now :(

Running locally

Important

If you are using Windows, you'll need Powershell 7 so that the following commands work properly. Alternatively, you could run Linux from within your PC using WSL2.

Installation

Requirements

Step 1: Install dependencies

Run the following:

npm install

Note

If you know what you are doing, and are using different devices for frontend and backend, you can selectively install the parts:

npm run install:frontend
npm run install:backend

Step 2: Get the Stable Audio Open variational autoencoder

Go to the Hugging Face repository of Stable Audio Open and accept the conditions. Sign up if you don't have an account.

Then, generate an Hugging Face access token. Give a descriptive name and copy it (starts with hf_...).

Lastly, run the following command, replacing <HF_TOKEN> with your token:

npm run get_vae -- --token=<HF_TOKEN>

Step 3: Add the Freesound token

Go to Freesound and log in, or sign up if you don't have an account.

Then, generate a Freesound API credential for Soundpot.

Last, navigate to the frontend directory of this repository and create a file named .env.local. There, put your api key under the name VITE_FREESOUND_KEY.

VITE_FREESOUND_KEY=YOUR_API_KEY

Troubleshooting

Libsox

OSError: libsox.so: cannot open shared object file: No such file or directory

Solution:

sudo apt install libsox-dev

Adding sounds

To add 'primordial sounds' to the application, put them inside the backend/library folder.

Running

npm start

Note

If you only installed either the frontend or the backend, that will probably not work. To run only one of them, you can use one of the following:

npm run start:frontend
npm run start:backend

License

This project is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for details.

As such, all files are licensed under the GPLv3, except for the following files, from which the original code is licensed under the MIT License:

The changed code for those files is nevertheless licensed under the GPLv3.

Additionally, this project uses Lucide Icons, which are licensed under the ISC License.

Footnotes

  1. The game I knew before starting this project was a 2010 version named Little Alchemy. Another popular version, released some months before Little Alchemy, is Doodle God by JoyBits.

About

Resources

License

GPL-3.0, MIT licenses found

Licenses found

GPL-3.0
LICENSE
MIT
LICENSE-MIT

Stars

Watchers

Forks