https://github.com/florianpfleiderer/simplesynth
The motivation for this project was to develop a modular synthesizer to produce different sounds and create short loops to use in music production. It utilises the ImNodes and ImGui libraries for generation and the Synthesis Toolkit (STK) for creating and processing sounds.
https://github.com/florianpfleiderer/simplesynth
catch2 cmake cpp imgui imnodes object-oriented-programming stk
Last synced: about 14 hours ago
JSON representation
The motivation for this project was to develop a modular synthesizer to produce different sounds and create short loops to use in music production. It utilises the ImNodes and ImGui libraries for generation and the Synthesis Toolkit (STK) for creating and processing sounds.
- Host: GitHub
- URL: https://github.com/florianpfleiderer/simplesynth
- Owner: florianpfleiderer
- License: mit
- Created: 2023-06-16T13:19:21.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-15T22:41:53.000Z (over 2 years ago)
- Last Synced: 2025-10-30T17:44:13.564Z (8 months ago)
- Topics: catch2, cmake, cpp, imgui, imnodes, object-oriented-programming, stk
- Language: C++
- Homepage:
- Size: 259 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# SimpleSynth [](https://github.com/florianpfleiderer/SimpleSynth/actions/workflows/main.yml)
### General Description
*Simple digital synthesizer with different modules which is easy customizable for different needs. The synthesizer will also have a simple GUI where the nodes are programmed using imnodes. The concept is based on node to node connection where each node represents either a sound producer node or a sound manipulator node. This approach helps with understanding the production of music/sounds. The nodes can have different kind of user inputs for example the cut of frequency. Also the programm should easily be expandable with selfmade plugins. This project should then be used for music production/sound generation.*
### Current Status
*There are a lot of professional music/synthesizer programmms out there but not a realy simple one that can be used by beginners without a lot of learning and also can be easily expanded with selfmade plugins. The **imnodes** library already provides a good starting point for the GUI and node to node connections. The **stk** library provides a open source audio signal processing.*
### Project Goals
*We want to offer a simple to use, easy to learn synthesizer, that can be easily extended with self-written filters or other kind of pluggins. Therefore, we want to provide an interface*
## Instructions
Clone:
```
git clone https://stea.iue.tuwien.ac.at/CppProjects2023/GroupKProject
```
### Build
#### macos
```
mkdir build
cd build
cmake ..
```
#### windows
Import in VS or VSCode with CMake Tools and C/C++ Plugin.
#### linux
TODO
### Test
For this project, the catch2 test framework is used.
#### macos
in build directory:
```
cd tests
make
./
```
build and run all tetsts:
```
make
ctest
```
### windows
TODO
### linux
TODO
## Team
- *Dennis Waniek*
- *Robert Ristic*
- *Theresa Freibauer*
- *Florian Pfleiderer*
- *Felix Widauer*
- *Moritz Mairhofer*
- *Thomas Schwabe*
## References
[1] https://github.com/Nelarius/imnodes
[2] https://github.com/thestk/stk
[3] https://github.com/catchorg/Catch2
Link for an extended stk tutorial:
https://ccrma.stanford.edu/software/stk/