forked from mirrors/qmk_firmware
beeps in an if
This commit is contained in:
parent
ed384bd437
commit
44625de59a
3 changed files with 45 additions and 57 deletions
|
@ -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);
|
||||
// }
|
|
@ -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)));
|
||||
}
|
||||
}
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue