User Tools

Site Tools


gamedev:deigde:editors:synthesizer

This is an old revision of the document!


IGDE Synthesizer Editor

The synthesizer editor allows to edit Synthesizer resources (*.desynth) for your game. Synthesizers produce sound using sources. The production process is controlled using controllers linked to source properties. Since sound produces many samples per second the controllers are defined by curves.

Synthesizer editor preview

The editor window composes of the property panels.

Controllers

Controller panel

Controllers are used by game programmers to adjust the sound production. In general the artist defines the controller ranges but game programmers can overrule them to make their life easier. This does not interfere with the sound production process. The output of the controller is a Bezier Curve with the curve Output Value linearly mapped from the range Minimum Value → Maximum Value to the range 0 → 1. See Bezier Curve Editor for usage. The elapsed synthesizer time is the curve Input Value.

Controllers are typically accessed by the game developer using the unique Controller Name (case sensitive). This allows to mix and match different animators with differing controller setups (count, ordering and ranges) as long as the required names are present.

The controller list is an ordered list. For this reason controllers are shown with their index number too. Game developers can use this index number as an alternative to controller names.

The Clamp value to range check box determines if the input value (elapsed play time) is clamped to the controller range or wraps around if going past the range.

Below the curve editor some buttons are located to quickly set the curve using typical shapes to while playing back the synthesizer. It is possible to change the curve while the synthesizer is producing sound but you have to set the curve ahead of time otherwise artefacts can happen. The Synthesizer Module decides what ahead-time is used.

The Const button sets the curve to a constant curve using the value from the input field.

The Linear button sets the curve to a linear curve ranging from (0, Minimum Value) to (Play time, Maximum Value).

The Inverse button next to it set the same linear curve but with the Minimum and Maximum value flipped.

The Bezier button sets the curve to a bezier curve ranging from (0, Minimum Value) to (Play time, Maximum Value).

The Inverse button next to it set the same bezier curve but with the Minimum and Maximum value flipped.

Links

Link panel

Links map controller values to source target input values using bezier curves. The artist is in full control of links. This decouples controller ranges allowing game programmers to freely manipulate them as they need.

The curve input range is 0 → 1. The curve output range is also 0 → 1. Hence using a default linear curve forwards controller output values unmodified to rule target input values. See Bezier Curve Editor for usage.

Links have a unique Name used to identify them in source targets. The link list is sorted alphabetically.

The Controller value indicates which controller is used as input for the link. If no controller is assigned the link uses 0 as input value.

The Repeat value allows to repeat the curve multiple times. This is useful for jig-saw type curves which can not be done with a bezier or linear type curve. This is also useful for overlaid detail sources. There you can easily adjust their play speed relative to the main source.

You could leave a comment if you were logged in.
gamedev/deigde/editors/synthesizer.1586104049.txt.gz · Last modified: 2020/04/05 16:27 by dragonlord