Source code for rv.modules.base.analoggenerator

# -- DO NOT EDIT THIS FILE DIRECTLY --
"""
Base class for AnalogGenerator
This file was auto-generated by genrv.
"""
from enum import IntEnum

from rv.controller import Controller
from rv.option import Option


class BaseAnalogGenerator:
    name = "AnalogGenerator"
    mtype = "Analog generator"
    mgroup = "Synth"
    flags = 73

    class Mode(IntEnum):
        hq = 0
        hq_mono = 1
        lq = 2
        lq_mono = 3

    class Waveform(IntEnum):
        triangle = 0
        saw = 1
        square = 2
        noise = 3
        drawn = 4
        sin = 5
        hsin = 6
        asin = 7
        drawn_spline = 8
        noise_spline = 9
        white_noise = 10
        pink_noise = 11
        red_noise = 12
        blue_noise = 13
        violet_noise = 14
        grey_noise = 15
        harmonics = 16

    class Filter(IntEnum):
        off = 0
        lp_12db = 1
        hp_12db = 2
        bp_12db = 3
        br_12db = 4
        lp_24db = 5
        hp_24db = 6
        bp_24db = 7
        br_24db = 8

    class FilterEnvelope(IntEnum):
        off = 0
        sustain_off = 1
        sustain_on = 2

    volume = Controller((0, 256), 80)
    waveform = Controller(Waveform, Waveform.triangle)
    panning = Controller((-128, 128), 0)
    attack = Controller((0, 256), 0)
    release = Controller((0, 256), 0)
    sustain = Controller(bool, True)
    exponential_envelope = Controller(bool, True)
    duty_cycle = Controller((0, 1024), 512)
    freq2 = Controller((0, 2000), 1000)
    filter = Controller(Filter, Filter.off)
    f_freq_hz = Controller((0, 14000), 14000)
    f_resonance = Controller((0, 1530), 0)
    f_exponential_freq = Controller(bool, True)
    f_attack = Controller((0, 256), 0)
    f_release = Controller((0, 256), 0)
    f_envelope = Controller(FilterEnvelope, FilterEnvelope.off)
    polyphony_ch = Controller((1, 32), 16)
    mode = Controller(Mode, Mode.hq)
    noise = Controller((0, 256), 0)
    volume_envelope_scaling_per_key = Option(
        name="volume_envelope_scaling_per_key",
        number=127,
        byte=0,
        bit=0,
        size=1,
        default=False,
    )
    filter_envelope_scaling_per_key = Option(
        name="filter_envelope_scaling_per_key",
        number=126,
        byte=1,
        bit=0,
        size=1,
        default=False,
    )
    volume_scaling_per_key = Option(
        name="volume_scaling_per_key", number=125, byte=2, bit=0, size=1, default=False
    )
    filter_freq_scaling_per_key = Option(
        name="filter_freq_scaling_per_key",
        number=124,
        byte=3,
        bit=0,
        size=1,
        default=False,
    )
    velocity_dependent_filter_frequency = Option(
        name="velocity_dependent_filter_frequency",
        number=123,
        byte=4,
        bit=0,
        size=1,
        default=False,
    )
    frequency_div_2 = Option(
        name="frequency_div_2", number=122, byte=5, bit=0, size=1, default=False
    )
    smooth_frequency_change = Option(
        name="smooth_frequency_change",
        number=121,
        byte=6,
        bit=0,
        size=1,
        inverted=True,
        default=True,
    )
    filter_freq_scaling_per_key_reverse = Option(
        name="filter_freq_scaling_per_key_reverse",
        number=120,
        byte=7,
        bit=0,
        size=1,
        default=False,
    )
    retain_phase = Option(
        name="retain_phase", number=119, byte=8, bit=0, size=1, default=False
    )
    random_phase = Option(
        name="random_phase", number=118, byte=9, bit=0, size=1, default=False
    )
    filter_freq_eq_note_freq = Option(
        name="filter_freq_eq_note_freq",
        number=117,
        byte=10,
        bit=0,
        size=1,
        default=False,
    )
    velocity_dependent_filter_resonance = Option(
        name="velocity_dependent_filter_resonance",
        number=116,
        byte=11,
        bit=0,
        size=1,
        default=False,
    )
    true_zero_attack_release = Option(
        name="true_zero_attack_release",
        number=115,
        byte=12,
        bit=0,
        size=1,
        default=False,
    )