public Mat onCameraFrame(CvCameraViewFrame inputFrame) { synthLead.setFreq(440); smusic.frame = inputFrame; return inputFrame.rgba(); }
public void onCameraViewStarted(int width, int height) { // WtOsc ugOscA1 = new WtOsc(); // ugOscA1.fillWithHardSin(7.0f); // ugOscA1.setFreq(220); synthLead = new WtOsc(); synthLead.fillWithHardSin(7.0f); // synthLead.fillWith(); bass = new WtOsc(); bass.fillWithSin(); bass.setFreq(100); synthPad = new WtOsc(); synthPad.fillWithSqr(); synthPad.setFreq(100f); delay = new Delay(UGen.SAMPLE_RATE / 8); // env = new ExpEnv(); // synthLead.chuck(delay); // bass.chuck(delay); synthLead.setFreq(220); ugDac = new Dac(); synthLead.chuck(delay).chuck(ugDac); // env.setFactor(ExpEnv.hardFactor); // bass.chuck(ugDac); // synthLead.chuck(ugDac); synthPad.chuck(delay).chuck(ugDac); // ugOscA1.chuck(ugDac); if (smusic == null) { smusic = new SurroundMusic(this, ugDac, synthLead); smusic.start(); } Thread thisThread = new Thread( new Runnable() { public void run() { ugDac.open(); // double curr = 200.0; int del = 0; int maxDel = 15; while (true) { if (smusic.leadNotes != null) { if (del == 0) { float freq = (float) smusic.leadNotes.advance(); synthLead.unchuck(delay); synthLead = new WtOsc(); synthLead.setFreq(freq); synthLead.fillWithHardSin(7.0f); del++; float max = -1; int max_i = -1; for (int i = 0; i < smusic.colors.length; i++) { if (smusic.colors[i] > max) { max = smusic.colors[i]; max_i = i; } } delay.unchuck(ugDac); synthPad.unchuck(delay); delay = new Delay((int) (Delay.SAMPLE_RATE * (max_i + 1))); synthPad.unchuck(ugDac); synthPad = new WtOsc(); synthPad.setFreq((float) (max_i + 1) * 400); synthPad.fillWithSqr(); synthPad.chuck(delay).chuck(ugDac); synthLead.chuck(delay); } else if (del == maxDel) { del = 0; if (smusic.locality.canGetWeather()) { // maxDel = smusic.locality.getWeather().windspeed*2; } } else { del++; } } if (smusic.locality.canGetWeather()) { // bass.setFreq((float)smusic.locality.getWeather().hightemp); } // synthLead.setFreq((float)curr); // curr += 5; ugDac.tick(); } } }); thisThread.setPriority(Thread.MAX_PRIORITY); thisThread.start(); // ugDac.close(); }