Skip to content
/ wobl Public

A software synthesizer engine.

Notifications You must be signed in to change notification settings

acureau/wobl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Todo

  • Output: Audio Sink

  • Input: Sequence File

  • We're actually just hiding the base ID string in drivers right now, not desirable. We want to override. Apparently we'll need to make it into a getter function.

  • Put a prefix before all error messages from drivers, like we're doing in the WASAPI one.

  • Convert WAV to an output driver.

Ideas

I've decided that sequencing will involve instruments, patterns, and a timeline. I wanted to integrate programming, and I think a scripting language at the input level would work perfectly. An API for arranging and manipulating patterns. Input could be heavily customized via scripting. Any kind of peripheral or "macro" I wanted could be implemented.

The audio engine would need some kind of communication protocol, allowing us to set up instruments on the C side where all the DSP stuff is going to be implemented. Then allowing us to invoke their playback externally. This way I can use a modern GUI toolkit and still have a real-time synth. The C++ engine will do all the hard work.

Design Weirdness

  • I am applying time scaling on the oscillators but not the envelopes, maybe I should consolidate the two implementations.
  • I've implemented envelope trigger smoothing, which is only really useful for the amplitude parameter. Maybe this setting should be more out of the way.
  • The output handler needs some way to activate and deactivate devices, it's not ideal to write to all possible playback devices. The input handler should do the same.

About

A software synthesizer engine.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published