-
Notifications
You must be signed in to change notification settings - Fork 16
Home
skjelten edited this page Apr 12, 2024
·
2 revisions
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.
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.