Jump to content

Cobosoda Synth

From NYC Resistor Wiki

Back to Cobosoda

Introduction[edit | edit source]

The cobosoda synth engine is built with the Csound API.

Classes[edit | edit source]

The following classes are currently synth specific:

  • SynthModelObserver
  • ModelEnergyMap

Getting Sound to Play[edit | edit source]

If sound isn't working, look for the public static variable PLAY_SYNTH in Config.java, and make sure the value is set to true.

Open Design Issues[edit | edit source]

Prototype[edit | edit source]

SynthModelObserver is only a prototype at this stage. The sounds currently being generated, though already somewhat pleasing, have been designed to test communication between Java and Csound. Making something as elegant as the Java language work with the Frankenstein that is Csound will require much work and refinement. One possible approach would be to design a static synth engine with Csound, and create a specific Java interface to this engine.

Reinitialize Engine[edit | edit source]

When a new model is created, Csound should reinitialize to conform to the specifics of the new model. As of right now, channels are hardwired to approximately 20 instances. Csound should only have as many as needed. ModelEnergyMap should be calculated at this stage, as recalculating the map everytime a collision occurs is highly inefficient because of the recursive nature of ModelEnergyMap.computeMap().

Observing Limb Length[edit | edit source]

As of now, SynthModelObserver is observing changes in limb length. This is pointless since between each update, the springs are bound to change. This class should probably be split into two classes, one for observing, one as the synth engine.