Mercurial > hg > soniczoomios
changeset 20:e44dc6f7f12e
fixed frequencer. snap doesn't mess up lock x/y.
author | Robert Tubb <rt300@eecs.qmul.ac.uk> |
---|---|
date | Thu, 17 Jan 2013 21:41:55 +0000 |
parents | 6d72049a480c |
children | 650589cac373 |
files | frequencer.mm grid.h grid.mm testApp.mm |
diffstat | 4 files changed, 18 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/frequencer.mm Thu Jan 17 21:02:22 2013 +0000 +++ b/frequencer.mm Thu Jan 17 21:41:55 2013 +0000 @@ -64,7 +64,7 @@ // put into local store, for(int i=0;i<indexes.size();i++){ freqMag[indexes[i]] = values[i]; - freqMag[N-indexes[i]-1] = freqMag[indexes[i]]; + if(i!=0)freqMag[N-indexes[i]] = freqMag[indexes[i]]; } // calculate transform @@ -83,9 +83,7 @@ freqPhase[k] = phase; // making sure to conjugate - - freqPhase[N-k-1] = - freqPhase[k]; - + if(k!=0)freqPhase[N-k] = - freqPhase[k]; // calculate transform idft(); // TODO output time domain
--- a/grid.h Thu Jan 17 21:02:22 2013 +0000 +++ b/grid.h Thu Jan 17 21:41:55 2013 +0000 @@ -83,6 +83,7 @@ bool snapped; void snapCheck(); + void shiftCentreToSnapped(); void draw(); // draw lines void update(); // change according to zoom
--- a/grid.mm Thu Jan 17 21:02:22 2013 +0000 +++ b/grid.mm Thu Jan 17 21:41:55 2013 +0000 @@ -471,6 +471,13 @@ } //-------------------------------------------------------------- +void Grid::shiftCentreToSnapped(){ + // TODO just in case we're freezing something + // snapping actually change centre + centre = snapCentre; + +} +//-------------------------------------------------------------- void Grid::snapCheck(){ // check environs for presets. @@ -641,6 +648,7 @@ TwoVector coord = calculateCoordFromParams(params); setCoord(coord); + // snapping? viewWasChanged(); }
--- a/testApp.mm Thu Jan 17 21:02:22 2013 +0000 +++ b/testApp.mm Thu Jan 17 21:41:55 2013 +0000 @@ -235,17 +235,18 @@ if(e.widget->getName() == "LOCK SEQUENCE (X)") { - - cout << "LOCK SEQUENCE (X)\n"; - // lock - xLocked = !xLocked; - //presetManager.clearAll(); - + + cout << "LOCK SEQUENCE (X)\n"; + // lock + theGridView.shiftCentreToSnapped(); + xLocked = !xLocked; + }else if(e.widget->getName() == "LOCK SYNTH (Y)") { cout << "LOCK SYNTH (Y)\n"; // lock + theGridView.shiftCentreToSnapped(); if(((ofxUIButton *)e.widget)->getValue()){ yLocked = true; }else{