Bläddra i källkod

beeps in an if

Jack Humbert 10 år sedan
förälder
incheckning
44625de59a
3 ändrade filer med 45 tillägg och 57 borttagningar
  1. 23 39
      keyboard/planck/beeps.c
  2. 20 18
      keyboard/planck/keymap_midi.c
  3. 2 0
      protocol/lufa/lufa.c

+ 23 - 39
keyboard/planck/beeps.c

@@ -183,22 +183,6 @@ ISR(TIMER3_COMPA_vect) {
 //     // PORTC |= (1<<6);
 }
 
-void loop() {
-}
-// ISR(TIMER1_COMPA_vect)
-// {
-//     // if (i<(sizeof(wave)/sizeof(int))) //don't exceed ends of vector... sizeof(wave)
-//     if (i<pow(2, 10)) //don't exceed ends of vector... sizeof(wave)
-//     {
-//         OCR3A = (int)((float)wave[i]*ICR3/RANGE); //go to next array element
-//         // int x = 1;
-//         // int y = 5;
-//         // OCR3A = (int) (round(sin(i*440*pow(2, x/12.0))*.5+.5 + sin(i*440*pow(2, y/12.0))*.5+.5) / 2 * ICR3); 
-//         i++; //increment
-//     }
-//     else i=0; //reset
-// }
-
 void play_note(double freq, int vol) {
 
     if (freq > 0) {
@@ -236,27 +220,27 @@ void play_note(double freq, int vol) {
     // TCCR3B = 0;
 }
 
-void note(int x, float length) {
-    DDRC |= (1<<6);
-	int t = (int)(440*pow(2,-x/12.0)); // starting note
-    for (int y = 0; y < length*1000/t; y++) { // note length
-        PORTC |= (1<<6);
-        delay_us(t);
-        PORTC &= ~(1<<6);
-        delay_us(t);
-    }
-	PORTC &= ~(1<<6);
-}
+// void note(int x, float length) {
+//     DDRC |= (1<<6);
+// 	int t = (int)(440*pow(2,-x/12.0)); // starting note
+//     for (int y = 0; y < length*1000/t; y++) { // note length
+//         PORTC |= (1<<6);
+//         delay_us(t);
+//         PORTC &= ~(1<<6);
+//         delay_us(t);
+//     }
+// 	PORTC &= ~(1<<6);
+// }
 
-void true_note(float x, float y, float length) {
-	for (uint32_t i = 0; i < length * 50; i++) {
-		uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8)); 
-		for (int u = 0; u < 8; u++) {
-			if (v & (1 << u) && !(PORTC&(1<<6)))
-		        PORTC |= (1<<6);
-		    else if (PORTC&(1<<6))
-	        	PORTC &= ~(1<<6);
-		}
-	}
-	PORTC &= ~(1<<6);
-}
+// void true_note(float x, float y, float length) {
+// 	for (uint32_t i = 0; i < length * 50; i++) {
+// 		uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8)); 
+// 		for (int u = 0; u < 8; u++) {
+// 			if (v & (1 << u) && !(PORTC&(1<<6)))
+// 		        PORTC |= (1<<6);
+// 		    else if (PORTC&(1<<6))
+// 	        	PORTC &= ~(1<<6);
+// 		}
+// 	}
+// 	PORTC &= ~(1<<6);
+// }

+ 20 - 18
keyboard/planck/keymap_midi.c

@@ -35,7 +35,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
     if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) {
         if (record->event.pressed) {
             starting_note++;
-            play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
+            // play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
             midi_send_cc(&midi_device, 0, 0x7B, 0);
             midi_send_cc(&midi_device, 1, 0x7B, 0);
             midi_send_cc(&midi_device, 2, 0x7B, 0);
@@ -43,7 +43,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
             midi_send_cc(&midi_device, 4, 0x7B, 0);
             return;
         } else {
-            stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
+            // stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
             // stop_all_notes();
             return;
         }
@@ -51,7 +51,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
     if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) {
         if (record->event.pressed) {
             starting_note--;
-            play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
+            // play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
             midi_send_cc(&midi_device, 0, 0x7B, 0);
             midi_send_cc(&midi_device, 1, 0x7B, 0);
             midi_send_cc(&midi_device, 2, 0x7B, 0);
@@ -59,7 +59,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
             midi_send_cc(&midi_device, 4, 0x7B, 0);
             return;
         } else {
-            stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
+            // stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)));
             // stop_all_notes();
             return;
         }
@@ -73,12 +73,12 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
         midi_send_cc(&midi_device, 3, 0x7B, 0);
         midi_send_cc(&midi_device, 4, 0x7B, 0);
         // stop_all_notes();
-        for (int i = 0; i <= 7; i++) {
-            play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
-            _delay_us(80000);
-            stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
-            _delay_us(8000);
-        }
+        // for (int i = 0; i <= 7; i++) {
+        //     play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
+        //     _delay_us(80000);
+        //     stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
+        //     _delay_us(8000);
+        // }
         return;
     }
     if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
@@ -89,20 +89,22 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
         midi_send_cc(&midi_device, 3, 0x7B, 0);
         midi_send_cc(&midi_device, 4, 0x7B, 0);
         // stop_all_notes();
-        for (int i = 0; i <= 7; i++) {
-            play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
-            _delay_us(80000);
-            stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
-            _delay_us(8000);
-        }
+        // for (int i = 0; i <= 7; i++) {
+        //     play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC);
+        //     _delay_us(80000);
+        //     stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)));
+        //     _delay_us(8000);
+        // }
         return;
     }
 
     if (record->event.pressed) {
     	// midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127);
-        play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
+        midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127);
+        // play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
     } else {
         // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127);
-        stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
+        midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127);
+        // stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
     }
 }

+ 2 - 0
protocol/lufa/lufa.c

@@ -51,7 +51,9 @@
 
 #include "descriptor.h"
 #include "lufa.h"
+#ifdef MIDI_ENABLE
 #include <beeps.h>
+#endif
 
 // #include <LUFA/Version.h>
 // #include <LUFA/Drivers/USB/USB.h>