IMP
Examples
Compiling
- Download FMOD Programmers API (you'll need a license, but it's free) and put in the
deps
folder - Make sure you have CMake >= 3.8
- From inside the
build
folder, runcmake .. && make
to populate the rootbin
folder.
Now you can run it at ../bin/imp
Design Goals
Note: this is still in very early development and most design goals are not yet upheld.
- no heap allocations, or a single one up front
- performant enough but not crazy optimized
- stand alone - only dependency should be on the operating system
- tight design - tight abstractions on top of well-informed decisions
- make proper use of latest C++ language and STL features
- tests to help uphold invariants and avoid regressions
- configurable during runtime
- easily consumable as a library from multiple languages, with good documentation
Milestones
- Proof of concept
- project setup and cross compilation
- make some sound
- Find the right abstractions
- synth
- composition
- external use
- runtime-configurable
- Bindings
- C++
- C#
- JavaScript
- Rust
- Python
- Composition
- event format
- idea pool
- dynamics curves
- chord sequences
- analysis and embellishments
- Synth
- DSP, FFTs etc
- various generators
- audio graph
- Runtime configuration
- CLI tool
- HTTP server + web gui
- No dependencies
- Windows
- OSX
- various Unix
License
You are bound to whatever the FMOD license says. In addition, all responsibility is on you, the library user, to obey said licenses. The author can in no way be held responsible for license violation by others than himself. You can do whatever you want with my code except taking credit for it.