Skip to content
skjelten edited this page Apr 12, 2024 · 2 revisions

Welcome to the emusc wiki!

About the EmuSC project

EmuSC is a software synthesizer that aims to emulate the Roland Sound Canvas SC-55 lineup to recreate the original sounds of these '90s era synthesizers. Emulation is done by extracting relevant information from the original control and PCM ROMs and reimplement the synth's behavior in modern C++.

The EmuSC project is split into two parts:

  • libEmuSC: A library that implements all the Sound Canvas emulation. It has a C++ API and covers all parts of the audio generation based on supplied ROM files and MIDI input. The library only depends on a C++11 compliant compiler with thread support and libstdc++ and should therefore be portable to most systems.
  • EmuSC: A desktop application that serves as a frontend to libEmuSC. It is written in C++ and depends on Qt5/6 in addition to platform specific frameworks / libraries for audio output and MIDI input. It currently supports Linux, macOS and Windows operating systems.

About this wiki

The intention of this wiki is to cover:

  • Findings on overall synth design and audio generation
  • Internal structures used in the control and PCM ROM files
  • Overview of current implementation status and roadmap
  • Tips and recommendations for new developers wanting to participate
  • A trouble shooting guide

Note that very little technical information about these synthesizers are publicly available, so much of the information on this wiki are based on assumptions derived from findings / test results. If you see any factual mistakes or bad writing in this wiki, please create a ticket with the feedback, or even better: clone the repo, make the changes and send a PR.