The UNION Synthesizer is a web-based FM synthesizer that allows users to experiment with sound design and learn about frequency modulation (FM) synthesis. Built with p5.js, this tool includes adjustable FM controls, reverb and delay effects, and a logarithmic FFT visualization for analyzing the sound spectrum.
FM synthesis is a powerful technique used in electronic music to create a wide range of sounds, from bell-like tones to complex textures. However, it can be difficult to understand and master. UNION Synthesizer aims to make FM synthesis more accessible and approachable by providing a user-friendly interface and easy-to-use controls.
The synthesizer can be accessed via a web server on a smartphone, making it easy to use and experiment with wherever you are. Simply connect to the web server using the given IP address and port number, and start creating sounds!
- FM synthesis: Adjust the frequency and amplitude modulation of the generated sounds using sliders. This allows you to create a wide range of tones and textures, from simple sine waves to complex, evolving sounds.
- Reverb and delay effects: Add depth and space to your sounds with adjustable reverb and delay effects. This can help create immersive soundscapes and give your sounds a professional, polished feel.
- FFT visualization: The logarithmic FFT visualization allows you to see the frequency spectrum of the generated sounds in real-time. This can help you better understand the relationship between the different frequency components and how they contribute to the overall sound.
If you want to run the UNION Synthesizer app locally. Multiple solution are possible :
-
Run the app directly using node
Clone the repository
git clone https://github.com/chloelavrat/UNION-Synthesizer.git cd ./UNION-Synthesizer/src
Install the necessary dependencies
npm install
Start the web server
npm run dev
Go to another device on the same network and connect it to the network address and port. Then enjoy FM.
┌──────────────────────────────────────────────────┐ │ │ │ Serving! │ │ │ │ - Local: http://localhost:3000 │ │ - Network: http://192.168.1.16:3000 │ │ │ │ Copied local address to clipboard! │ │ │ └──────────────────────────────────────────────────┘
-
Run the app using docker
Clone the repository
git clone https://github.com/chloelavrat/UNION-Synthesizer.git cd ./UNION-Synthesizer/
Build the
union-synth
docker container:docker build -t union-synth .
Run the container at a specified port (here 8501)
docker run -p 3000:3000 union-synth
Go to your web browser and access localhost:3000
The UNION Synthesizer project is an open-source project, and contributions are always welcome. If you would like to contribute to the project, you can do so by submitting a pull request or by creating an issue on the project's GitHub page.
The UNION Synthesizer project is licensed under the MIT License. See the LICENSE file for details.