Skip to content
Voro
  1. Audio
  2. Other

Modal

Modal synthesizes the resonances of a struck object. Material selects the resonator, while Size, Position and Hardness change how it rings. Held gates can scrape the object for a continuous sound.

Place Modal from the Audio view of the Voro menu, under Other. Connect a MIDI, note-lane or control source to triggers and route out to your audio output chain. Choose a Material, then change Size and Decay while triggering notes. Raise Scrape and hold a gate to hear sustained contact.

  • triggers, required. MIDI events, note lanes or a control stream.
  • out. Stereo audio.
  • Material selects wood, metal, glass, stone, ceramic or plastic.
  • Size scales the object. Higher notes also make the modeled object smaller.
  • Hardness changes the impact brightness. Position changes the point of contact.
  • Decay scales the ringing time. Inharm changes the spacing of resonances.
  • Variation adds differences in size and contact position between strikes.
  • Scrape sets sustained contact under held gates. Roughness shapes that contact.
  • Gain sets output level. Spread places voices across the stereo field.
  • Strike triggers a manual hit using Strikenote and Strikevel.

At MIDI note 60, Size of 1 uses the material’s reference size. An octave up halves the object size before the Size control applies. Velocity affects both the force and brightness of a strike.

Inputs

  • triggers row required
    midi_event_v1note_lanes_f32_v1control_f32_v1

Outputs

  • out row
    audio_pcm_f32_stereo_v1
Material (Material) Menu op('phys_modal').par.Material
Default:
wood
Options:
wood, metal, glass, stone, ceramic, plastic
Size (Size) Float op('phys_modal').par.Size
Default:
1
Range:
0.05 to 8
Hardness (Hardness) Float op('phys_modal').par.Hardness
Default:
0.5
Range:
0 to 1
Position (Position) Float op('phys_modal').par.Position
Default:
0.3
Range:
0 to 1
Decay (Decay) Float op('phys_modal').par.Decay
Default:
1
Range:
0.1 to 4
Inharm (Inharm) Float op('phys_modal').par.Inharm
Default:
0.06
Range:
0 to 0.5
Variation (Variation) Float op('phys_modal').par.Variation
Default:
0.5
Range:
0 to 1
Scrape (Scrape) Float op('phys_modal').par.Scrape
Default:
0
Range:
0 to 1
Roughness (Roughness) Float op('phys_modal').par.Roughness
Default:
0.5
Range:
0 to 1
Gain (Gain) Float op('phys_modal').par.Gain
Default:
0.7
Range:
0 to 2
Spread (Spread) Float op('phys_modal').par.Spread
Default:
0.7
Range:
0 to 1
Strike (Strike) Pulse op('phys_modal').par.Strike
Default:
None
Strikenote (Strikenote) Float op('phys_modal').par.Strikenote
Default:
60
Range:
0 to 127
Strikevel (Strikevel) Float op('phys_modal').par.Strikevel
Default:
0.8
Range:
0 to 1