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…
	
	Add table
		Add a link
		
	
		Reference in a new issue