|  |  | @@ -164,6 +164,7 @@ void QuadMIDIToCVInterface::processMidi(std::vector<unsigned char> msg) { | 
		
	
		
			
			|  |  |  | if (data1 == 0x40) { // pedal | 
		
	
		
			
			|  |  |  | pedal = (data2 >= 64); | 
		
	
		
			
			|  |  |  | if (!pedal) { | 
		
	
		
			
			|  |  |  | open.clear(); | 
		
	
		
			
			|  |  |  | for (int i = 0; i < 4; i++) { | 
		
	
		
			
			|  |  |  | activeKeys[i].gate = false; | 
		
	
		
			
			|  |  |  | open.push_back(i); | 
		
	
	
		
			
				|  |  | @@ -175,7 +176,11 @@ void QuadMIDIToCVInterface::processMidi(std::vector<unsigned char> msg) { | 
		
	
		
			
			|  |  |  | return; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (!pedal && !gate) { | 
		
	
		
			
			|  |  |  | if (pedal && !gate) { | 
		
	
		
			
			|  |  |  | return; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (!gate) { | 
		
	
		
			
			|  |  |  | for (int i = 0; i < 4; i++) { | 
		
	
		
			
			|  |  |  | if (activeKeys[i].pitch == data1) { | 
		
	
		
			
			|  |  |  | activeKeys[i].gate = false; | 
		
	
	
		
			
				|  |  | @@ -189,13 +194,21 @@ void QuadMIDIToCVInterface::processMidi(std::vector<unsigned char> msg) { | 
		
	
		
			
			|  |  |  | return; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (pedal) { | 
		
	
		
			
			|  |  |  | for (int i = 0; i < 4 ; i++) { | 
		
	
		
			
			|  |  |  | if (activeKeys[i].pitch == data1 && activeKeys[i].gate) { | 
		
	
		
			
			|  |  |  | activeKeys[i].vel = data2; | 
		
	
		
			
			|  |  |  | return; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (open.empty()) { | 
		
	
		
			
			|  |  |  | for (int i = 0; i < 4; i++) { | 
		
	
		
			
			|  |  |  | open.push_back(i); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (!activeKeys[0].gate && !activeKeys[1].gate && | 
		
	
		
			
			|  |  |  | !activeKeys[2].gate && !activeKeys[3].gate) { | 
		
	
		
			
			|  |  |  | open.sort(); | 
		
	
	
		
			
				|  |  | @@ -215,8 +228,6 @@ void QuadMIDIToCVInterface::processMidi(std::vector<unsigned char> msg) { | 
		
	
		
			
			|  |  |  | break; | 
		
	
		
			
			|  |  |  | case ROTATE: | 
		
	
		
			
			|  |  |  | break; | 
		
	
		
			
			|  |  |  | default: | 
		
	
		
			
			|  |  |  | fprintf(stderr, "No mode selected?!\n"); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | activeKeys[open.front()].gate = true; | 
		
	
	
		
			
				|  |  | 
 |