Ejemplo n.º 1
0
Device_impl* new_DSP_gc(DSP* dsp)
{
    DSP_gc* gc = memory_alloc_item(DSP_gc);
    if (gc == NULL)
        return NULL;

    if (!Device_impl_init(&gc->parent, del_DSP_gc))
    {
        memory_free(gc);
        return NULL;
    }

    gc->parent.device = (Device*)dsp;

    Device_set_process((Device*)dsp, DSP_gc_process);

    gc->map = NULL;

    if (!Device_impl_register_set_envelope(
                &gc->parent, "p_e_map.json", NULL, DSP_gc_set_map, NULL))
    {
        del_DSP_gc(&gc->parent);
        return NULL;
    }

    Device_register_port(gc->parent.device, DEVICE_PORT_TYPE_RECEIVE, 0);
    Device_register_port(gc->parent.device, DEVICE_PORT_TYPE_SEND, 0);

    return &gc->parent;
}
Ejemplo n.º 2
0
Device_impl* new_Proc_ringmod(void)
{
    Proc_ringmod* ringmod = memory_alloc_item(Proc_ringmod);
    if (ringmod == NULL)
        return NULL;

    if (!Device_impl_init(&ringmod->parent, del_Proc_ringmod))
    {
        del_Device_impl(&ringmod->parent);
        return NULL;
    }

    ringmod->parent.create_pstate = new_Ringmod_pstate;
    ringmod->parent.init_vstate = Ringmod_vstate_init;

    return &ringmod->parent;
}
Ejemplo n.º 3
0
Device_impl* new_Proc_noise(void)
{
    Proc_noise* noise = memory_alloc_item(Proc_noise);
    if (noise == NULL)
        return NULL;

    if (!Device_impl_init(&noise->parent, del_Proc_noise))
    {
        del_Device_impl(&noise->parent);
        return NULL;
    }

    noise->parent.create_pstate = new_Noise_pstate;
    noise->parent.get_vstate_size = Noise_vstate_get_size;
    noise->parent.init_vstate = Noise_vstate_init;

    return &noise->parent;
}
Ejemplo n.º 4
0
Device_impl* new_DSP_freeverb(DSP* dsp)
{
    DSP_freeverb* freeverb = memory_alloc_item(DSP_freeverb);
    if (freeverb == NULL)
        return NULL;

    if (!Device_impl_init(&freeverb->parent, del_DSP_freeverb))
    {
        memory_free(freeverb);
        return NULL;
    }

    freeverb->parent.device = (Device*)dsp;

    Device_set_process((Device*)dsp, DSP_freeverb_process);

    Device_set_state_creator(
            freeverb->parent.device,
            DSP_freeverb_create_state);

    DSP_set_clear_history((DSP*)freeverb->parent.device, DSP_freeverb_clear_history);

    Device_impl_register_reset_device_state(
            &freeverb->parent, DSP_freeverb_reset);

    // Register key set/update handlers
    bool reg_success = true;

    reg_success &= Device_impl_register_set_float(
            &freeverb->parent,
            "p_f_refl.json",
            initial_reflect,
            DSP_freeverb_set_refl,
            NULL);
    reg_success &= Device_impl_register_set_float(
            &freeverb->parent,
            "p_f_damp.json",
            initial_damp,
            DSP_freeverb_set_damp,
            NULL);

    Device_impl_register_set_audio_rate(
            &freeverb->parent, DSP_freeverb_set_audio_rate);

    Device_register_port(freeverb->parent.device, DEVICE_PORT_TYPE_RECEIVE, 0);
    Device_register_port(freeverb->parent.device, DEVICE_PORT_TYPE_SEND, 0);

    freeverb->gain = 0;
    freeverb->reflect = 0;
    freeverb->reflect1 = 0;
    freeverb->damp = 0;
    freeverb->damp1 = 0;
    freeverb->wet = 0;
    freeverb->wet1 = 0;
    freeverb->wet2 = 0;
//    freeverb->dry = 0;
    freeverb->width = 0;

    DSP_freeverb_update_reflectivity(freeverb, initial_reflect);
    DSP_freeverb_update_damp(freeverb, initial_damp);
    const double fixed_gain = 0.015;
    DSP_freeverb_update_gain(freeverb, fixed_gain);
    DSP_freeverb_update_wet(freeverb, initial_wet);

    return &freeverb->parent;
}