Important
This repo is archived on GitHub. It now lives on Codeberg!
Soundpot is a playful and accessible musical framework where users can play and combine distinct sound objects.
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.
- 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 :(
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.
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
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>
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
OSError: libsox.so: cannot open shared object file: No such file or directory
Solution:
sudo apt install libsox-dev
To add 'primordial sounds' to the application, put them inside the backend/library
folder.
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
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:
- backend/model_controller.py, backend/utils/tensor_transforms.py The original project claims to use the MIT license but the text is not included. Copyright (c) 2024 Aaron Abebe.
- backend/vae_config.json. From stable-audio-tools. Copyright (c) 2023 Stability AI.
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
-
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. ↩