public Form1() { InitializeComponent(); stream = new OutputStream(0); stream.StartPlaying(); clock = new MidiInternalClock(); clock.Tick += new EventHandler(calculateOutputs); clock.Tempo = 1000000; // 60 bpm initializeNetworks(); // start evolutionary algorithm thread UpdateMessage("Starting evolutionary thread."); evoObject = new NeatMusicEvoThread(); evoThread = new Thread(evoObject.doWork); evoThread.Start(); // WARN reenable this two lines to activate the evolution thread while (!evoThread.IsAlive) { ; } // start timer thread to change target phrase for fitness UpdateMessage("Starting timer for changing fitness target; set to " + SECONDS_TO_CHANGE + ""); timerObject = new ChangeFitnessThread(SECONDS_TO_CHANGE, this); timerThread = new Thread(timerObject.doWork); timerThread.Start(); while (!timerThread.IsAlive) { ; } }
private void onTick(object sender, EventArgs args) { MidiInternalClock obj = (MidiInternalClock)sender; float seqPos = (float)sequencer1.Position; PgBar.SetValue(seqPos); }
private void PrepareClock() { //if (_clock != null) _clock.Dispose(); _clock = new MidiInternalClock(); //Pulses per quarter note... 24 sounds reasonable. //Trade off between accuracy and CPU _clock.Ppqn = 24; //clock tempo in microseconds per beat. Song in bpm _clock.Tempo = LengthOfBeatInMicroSeconds(_songCopy.Tempo); // Setup clock tick event handling _clock.Tick += HandleClockTick; }