Home

Awesome

<p align='center'> <img src="src/website/spessasynth_logo_rounded.png" width='300' alt='SpessaSynth logo'> </p>

SoundFont2 based realtime synthetizer and MIDI player written in JavaScript using Web Audio API. Can also be used as a synthesis library.

SpessaSynth Promotional Image

Exporting modified MIDIs now available!

Live demo

Youtube video

<img width='500' alt="Watch the YouTube video" src="https://github.com/spessasus/SpessaSynth/assets/95608008/0fade923-1ed6-4565-8300-1f57ef70bc89">

This repo is essentially 2 programs in one:

spessasynth_lib

A flexible, powerful, and feature-packed soundfont synthesizer library for the WebAudio API.

[!TIP] Looking for a Node.js version? try spessasynth_core

Documentation

Features

Limitations

Installation

  1. Clone this repository.
  2. copy src/spessasynth_lib to your project.
  3. Use the library

Web app / Local Edition

The complete GUI for spessasynth_lib, allowing remixing experimenting and playing MIDIs in the coolest way possible.

How to use

Features

Still not convinced? Here are some more screenshots:

<img src="https://github.com/user-attachments/assets/b0c9a1f3-3278-4208-8d35-f63b0943ae39" width="45%"></img> <img src="https://github.com/user-attachments/assets/3bfd9de0-ed13-4667-b843-47c956454136" width="45%"></img> <img src="https://github.com/user-attachments/assets/7499503e-9dec-4f7c-8c58-b4960f63bc39" width="45%"></img> <img src="https://github.com/user-attachments/assets/688b4ecc-0ba5-4990-92a5-8b567e08d7d6" width="45%"></img>

Installation

[!IMPORTANT] Firefox is recommended, due to unconstrained memory size. Also a decent computer for large soundfonts.

Recommended high quality soundfont (better than the built-in one)

Requires node.js to be installed

Windows

  1. Download the code as zip and extract or use git clone https://github.com/spessasus/SpessaSynth
  2. Put your soundfonts into the soundfonts folder. (you can select soundfonts in the program)
  3. Double click the start.bat
  4. Enjoy!

Linux

  1. git clone https://github.com/spessasus/SpessaSynth
    cd SpessaSynth
    node src/website/server.js
    
  2. Put your soundfonts into the soundfonts folder. (you can select soundfonts in the program)
  3. Enjoy!

todo

Special thanks

License

Copyright © 2024 Spessasus. Licensed under the MIT License.

[!IMPORTANT] Please note that bundled stbvorbis_sync.js licensed under the Apache-2.0 license.