Ejemplo n.º 1
0
void CMoogVCF::Init(const int Index,void* MainWindow)
{
    m_Name=devicename;
    Maxcutoff=m_Presets.SampleRate * 0.1;
    IDevice::Init(Index,MainWindow);
    AddJack("Out",IJack::Wave,IJack::Out,0);
    AddJack("In",IJack::Wave,IJack::In,0);
    AddJack("Modulation",(IJack::AttachModes)(IJack::Amplitude | IJack::Pitch),IJack::In,0);
    AddParameter(ParameterType::dB,"In Volume","dB",0,200,0,"",100);
    AddParameter(ParameterType::Numeric,"Cutoff Modulation","%",0,100,0,"",0);
    AddParameter(ParameterType::Numeric,"Cutoff Frequency","Hz",20,Maxcutoff,0,"",Maxcutoff);
    AddParameter(ParameterType::Numeric,"Response Time","%",0,100,0,"",50);
    AddParameter(ParameterType::Numeric,"Resonance","%",0,100,0,"",0);
    AddParameter(ParameterType::dB,"Out Volume","dB",0,200,0,"",100);
    FreqGlider.SetSpeed(5);
    ModulationFactor=0;
    InVolumeFactor=0;
    LastResonance=0;
    LastCO=0;
    In1=0;
    In2=0;
    In3=0;
    In4=4;
    Out1=0;
    Out2=0;
    Out3=0;
    Out4=0;
    CalcExpResonance(0,0);
    CalcParams();
}
Ejemplo n.º 2
0
void CMixer::Init(const int Index, void* MainWindow)
{
    m_Name=devicename;
    IDevice::Init(Index,MainWindow);

    AddJack("Return",IJack::Stereo,IJack::In,jnReturn);
    AddJack("Out",IJack::Stereo,IJack::Out,jnOut);
    AddJack("Send",IJack::Stereo,IJack::Out,jnSend);

    for (int i=0; i<Mixer::mixerchannels; i++)
    {
        AddJack("In " + QString::number(i+1),IJack::Wave,IJack::In,jnIn+i);
        Level[i]=1;
        Effect[i]=0;
        PanL[i]=1;
        PanR[i]=1;
        Mute[i]=false;
        EffectMute[i]=false;
    }
    PeakL=0;
    PeakR=0;
    ZeroMemory(Peak,Mixer::mixerchannels*sizeof(float));
    SoloChannel=-1;
    MasterLeft=1;
    MasterRight=1;
    MixFactor=1.0/sqrt(Mixer::mixerchannels);
    CalcParams();
    m_Form=new CMixerForm(this,(QWidget*)MainWindow);

}
Ejemplo n.º 3
0
void CDrumMachine::Init(const int Index,void* MainWindow)
{
    m_Name=devicename;
    IDevice::Init(Index,MainWindow);
    AddJack("Out",IJack::Wave,IJack::Out,0);
    AddParameter(ParameterType::Numeric,"Tempo","BPM",20,300,0,"",100);
    AddParameter(ParameterType::dB,"Volume","dB",0,200,0,"",100);
    BeatInterval=0;
    PatternLength=0;
    SamplesPerTick=0;
    Playing=false;
    PatternType* DefaultPattern=new PatternType("Default",16,DrumMachine::SoundCount,100,0,0);
    Patterns.append(DefaultPattern);
    PatternListType* DefaultList=new PatternListType();
    DefaultList->Pattern=DefaultPattern;
    DefaultList->Repeats=4;
    PatternsInList.append(DefaultList);
    AddSound("kick02.wav","Kick",&WG[0],&ST[0]);
    AddSound("snr01.wav","Snare",&WG[1],&ST[1]);
    AddSound("hat01.wav","Hi-Hat",&WG[2],&ST[2]);
    AddSound("hat19.wav","Open Hi-Hat",&WG[3],&ST[3]);
    AddSound("cym01.wav","Cymbal",&WG[4],&ST[4]);
    AddSound("tom01.wav","Tom 1",&WG[5],&ST[5]);
    AddSound("tom02.wav","Tom 2",&WG[6],&ST[6]);
    Reset();
    CalcParams();
    m_Form=new CDrumMachineForm(this,(QWidget*)MainWindow);
}
Ejemplo n.º 4
0
void inline CADSR::Start()
{
    //if (!State==esPlaying)
    //{
    State=esPlaying;
    CalcParams();
    TimeCount = 0;
    //}
}
Ejemplo n.º 5
0
Archivo: main.cpp Proyecto: apqw/epi
void set_param(const cmdline::parser& cp,void* space){
    //static void* aptr = malloc(sizeof(const CalcParams));
    try {
         pm= std::unique_ptr<const CalcParams>(new(space) const CalcParams(cp.get<std::string>("cparam")));
     }
     catch (std::exception& e) {
         std::cerr << e.what() << std::endl;
         std::exit(1);
     }
}
Ejemplo n.º 6
0
void CLFO::Init(const int Index, void *MainWindow) {
    m_Name=devicename;
    IDevice::Init(Index,MainWindow);
    AddJack("Out",IJack::Pitch,IJack::Out,jnOutPitch);
    AddJack("Out Amplitude",IJack::Amplitude,IJack::Out,jnOutAmplitude);
    AddParameter(ParameterType::Numeric,"Frequency","Hz",1,10000,100,"",400);
    AddParameter(ParameterType::SelectBox,"WaveForm","",0,5,0,"Sine§Square§Triangle§Sawtooth§Noise§Sample and Hold",0);
    AddParameter(ParameterType::dB,"Volume","dB",0,200,0,"",100);
    CalcParams();
}
Ejemplo n.º 7
0
void CDrumMachine::Reset()
{
    PatternIndex = 0;
    PatternRepeatCount = 0;
    BeatCount = 0;
    NextBeat = 0;
    NextStop = 0;
    Counter = 0;
    SampleCount = 0;//m_Presets.ModulationRate-1;
    CalcParams();
}
Ejemplo n.º 8
0
void CPhaser::Init(const int Index, void *MainWindow) {
    m_Name=devicename;
    IDevice::Init(Index,MainWindow);
    AddJack("Out",IJack::Wave,IJack::Out,0);
    AddJack("In",IJack::Wave,IJack::In,0);
    AddParameter(ParameterType::Numeric,"Range Min","Hz",20,m_Presets.SampleRate / 2.f,0,"",440);
    AddParameter(ParameterType::Numeric,"Range Max","Hz",20,m_Presets.SampleRate / 2.f,0,"",1600);
    AddParameter(ParameterType::Numeric,"Rate","Sweeps/sec",5,200,100,"",50);
    AddParameter(ParameterType::Numeric,"Feedback","%",0,100,0,"",70);
    AddParameter(ParameterType::Numeric,"Depth","%",0,100,0,"",100);
    CalcParams();
}
Ejemplo n.º 9
0
void CExciter::Init(const int Index, void *MainWindow)
{
    int Maxcutoff=m_Presets.SampleRate * 0.425;
    m_Name="Exciter";
    IDevice::Init(Index,MainWindow);
    AddJack("Out",IJack::Wave,IJack::Out,0);
    AddJack("Effect Out",IJack::Wave,IJack::Out,0);
    AddJack("In",IJack::Wave,IJack::In,0);
    AddParameter(ParameterType::SelectBox,"Type","",0,1,0,"Soft§Clipping",0);
    AddParameter(ParameterType::dB,"In Volume","dB",0,200,0,"",100);
    AddParameter(ParameterType::Numeric,"Amount","%",0,100,0,"",100);
    AddParameter(ParameterType::Numeric,"Cutoff Frequency","Hz",20,Maxcutoff,0,"",Maxcutoff/2);
    AddParameter(ParameterType::Numeric,"Effect","%",0,100,0,"",50);
    CalcParams();
}
Ejemplo n.º 10
0
CADSR::CADSR()
{
    HoldTrigger=0;
    m_Presets=CPresets::Presets;
    LastTrigger=0;
    LastGet=0;
    State=esSilent;
    TimeCount=0;
    CurrentVolume=0;
    AP.Attack=0;
    AP.Decay=0;
    AP.Sustain=100;
    AP.Release=0;
    Mode=0;
    CalcParams();
}
Ejemplo n.º 11
0
void CPanner::Init(const int Index, void *MainWindow)
{
    m_Name=devicename;
    IDevice::Init(Index,MainWindow);
    AddJack("In",IJack::Wave,IJack::In,jnIn);
    AddJack("Out",IJack::Stereo,IJack::Out,jnOut);
    AddJack("Out Left",IJack::Wave,IJack::Out,jnOutLeft);
    AddJack("Out Right",IJack::Wave,IJack::Out,jnOutRight);
    AddJack("Modulation In",(IJack::AttachModes)(IJack::Pitch | IJack::Amplitude),IJack::In,jnModulation);
    AddParameter(ParameterType::Numeric,"Pan","%",-100,100,0,"",0);
    AddParameter(ParameterType::Numeric,"Modulation","%",0,100,0,"",0);
    LastMod=0;
    CurrentMod=0;
    LeftModFactor=1;
    RightModFactor=1;
    InSignal=NULL;
    CalcParams();
}
Ejemplo n.º 12
0
void CLimiter::Init(const int Index, void *MainWindow) {
    m_Name=devicename;
    IDevice::Init(Index,MainWindow);
    AddJack("Out",IJack::Wave,IJack::Out,0);
    AddJack("In",IJack::Wave,IJack::In,0);
    AddParameter(ParameterType::dB,"Limit Vol","dB",0,200,0,"",100);
    AddParameter(ParameterType::dB,"Out Vol","dB",0,200,0,"",100);
    /* 80 Hz is the lowest frequency with which zero-crosses were
                 * observed to occur (this corresponds to 40 Hz signal frequency).
                 */
    // so lets make the buffer double size anyhoo :)
    buflen = m_Presets.SampleRate / 40;

    pos = 0;
    ready_num = 0;
    ringbuffer=new float[buflen];
    ZeroMemory(ringbuffer,buflen*sizeof(float));
    CalcParams();
}
Ejemplo n.º 13
0
void CScope::Init(const int Index,void* MainWindow)
{
    m_Name=devicename;
    IDevice::Init(Index,MainWindow);
    for (int i=0; i<MaxBuffers; i++)
    {
        m_Buffer[i]=new float[m_BufferSize];
    }
    CurrentBuffer=0;
    NullBuffers=0;
    m_Form=new CScopeForm(this,(QWidget*)MainWindow);
    //m_Form=new TfrmScope(CallingApp,this,AnsiString(m_Name) + " " + AnsiString(Index));
    AddJack("In",IJack::Wave,IJack::In,0);
    AddParameter(ParameterType::dB,"Input Volume","dB",0,200,0,"",100);
    AddParameter(ParameterType::Numeric,"Scope Frequency","Hz",100,100000,100,"",44000);
    AddParameter(ParameterType::SelectBox,"Spectrum Mode","",0,2,0,"Circular§Continuous§Diagram",0);
    Reset();
    CalcParams();
}
Ejemplo n.º 14
0
Archivo: main.cpp Proyecto: apqw/epi
int main(int argc,char** argv){
    cmdline::parser cp;
    const std::string udelim = "\n\t\t";
    cp.add<std::string>("mode", 'm',
        "Specify a mode shown below."_s+udelim+
        "c:Calculate with CPU. Need --cparam,--input" + udelim +
        "g:Calculate with GPU. Need --cparam,--input" + udelim +
        "v:Visualize the result.Need --cparam,--vparam" + udelim +
        "d:Diff calc parameter file. Need --cparam,--cparam2" + udelim +
        "gp:Generate default parameter files. Use --cparam,--vparam for output."+udelim+
        "i:Generate initial cell data file.Need --cparam,--output");
    cp.add<std::string>("input", 'i', "Cell data file.", false);
    cp.add<std::string>("output",'o', "Cell data output file(for init)",false);
    cp.add<std::string>("cparam", '\0', "Specify an parameter file path for calculation.",false);
    cp.add<std::string>("cparam2", '\0', "Additional parameter file (for diff)",false);
    cp.add<std::string>("vparam", '\0', "Specify an parameter file path for visualization.",false);
    cp.add<std::string>("initial", '\0', "Start calculation with initial state (without specifying initial data file)",false);
    cp.parse_check(argc, argv);
    auto mode = cp.get<std::string>("mode");
    bool is_gpu = mode == "g";
    bool is_vis = mode == "v";
    bool is_cpu = mode == "c";
    bool is_diff = mode == "d";
    bool is_gen = mode == "gp";
    bool is_init = mode == "i";

    static void* aptr = malloc(sizeof(const CalcParams));
    auto EH = ErrorHandling(cp);

    if(is_init){
    	EH.check("cparam","output");
    	set_param(cp,aptr);
    	try{
    	init_gen_output(cp.get<std::string>("output"),16,8);
    	}catch(std::exception& e){
    		  std::cerr << e.what() << std::endl;
    		            std::exit(1);
    	}

    }
    if (is_gen) {
        if (cp.exist("cparam")) {
            std::cout << "Generate cparam as " << cp.get<std::string>("cparam")  << std::endl;
            CalcParams().generate_paramfile(cp.get<std::string>("cparam"));
        }

        if (cp.exist("vparam")) {
            std::cout << "Generate vparam as " << cp.get<std::string>("vparam") << std::endl;
            VisParams().generate_paramfile(cp.get<std::string>("vparam"));
        }

    }
    if (is_diff) {
    	EH.check("cparam","cparam2");
        try {
            const CalcParams cp1 = CalcParams(cp.get<std::string>("cparam"));
            const CalcParams cp2 = CalcParams(cp.get<std::string>("cparam2"));
            std::cout << "Compare " << cp.get<std::string>("cparam") << " and " << cp.get<std::string>("cparam2") <<std::endl;
            CalcParams::diff(cp1, cp2);
        }
        catch (std::exception& e) {
            std::cerr << e.what() << std::endl;
            std::exit(1);
        }
    }
    if (is_cpu || is_gpu) {
    	const bool init_exist=cp.exist("initial");
    	if(init_exist){
    		EH.check("cparam");
    	}else{
    		EH.check("cparam","input");
    	}
    	set_param(cp,aptr);
        CellManager cman;

        try {
            if(init_exist){
            	auto inum=parse_init_setting(cp.get<std::string>("initial"));
            	cman=init_gen(std::get<0>(inum),std::get<1>(inum));
            }else{
            cman.load(cp.get<std::string>("input"));
            }
        }
        catch (std::exception& e) {
            std::cerr << e.what() << std::endl;
            std::exit(1);
        }
        //connect_cell(cman);
        calc_with_cpu(cman);
    }

    if (is_vis) {
       EH.check("cparam","vparam");
       set_param(cp,aptr);
        try {
            VisParams vp(cp.get<std::string>("vparam"));
            init_visualizer(&argc, argv,vp);
            visualize();
        }
        catch (std::exception& e) {
            std::cerr << e.what() << std::endl;
            std::exit(1);
        }
    }




	std::cout<<"Done."<<std::endl;
}