Buffer works, but noteoff sometimes stops the wrong note, and triggers high pitched sound, need to investigate
This commit is contained in:
		
							
								
								
									
										12
									
								
								FM/FM.ino
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								FM/FM.ino
									
									
									
									
									
								
							@ -81,13 +81,13 @@ void updateBuffer(byte bNote, bool bGate) {
 | 
			
		||||
        // Removing the note from the array and shifting everything to close the gap 
 | 
			
		||||
        for (int n = i; n <= bufferIndex; n++) {
 | 
			
		||||
          noteBuffer[n] = noteBuffer[n + 1]; // what happens if it's the last note in buffer?
 | 
			
		||||
        }      
 | 
			
		||||
        if (i == bufferIndex) { //this does not fire
 | 
			
		||||
          bufferIndex--;
 | 
			
		||||
        }
 | 
			
		||||
        bufferIndex--;
 | 
			
		||||
        if (i == bufferIndex) {
 | 
			
		||||
          bufferIndex--; //we need to play the notefrom previous cell of buffer write index, that's where -- and ++ come from
 | 
			
		||||
          gate = 1;
 | 
			
		||||
          playNote();          
 | 
			
		||||
        } else { //this does fire
 | 
			
		||||
          bufferIndex--;
 | 
			
		||||
          playNote();
 | 
			
		||||
          bufferIndex++;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user