audio note length fixes
This commit is contained in:
parent
bb0836c620
commit
ee2ee7f4f0
3 changed files with 33 additions and 30 deletions
|
@ -147,30 +147,30 @@ const uint16_t PROGMEM fn_actions[] = {
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
float tone_qw[][2] = {
|
float tone_qw[][2] = {
|
||||||
{440.0*pow(2.0,(67)/12.0), 400},
|
{440.0*pow(2.0,(59)/12.0), 8},
|
||||||
{440.0*pow(2.0,(60)/12.0), 400},
|
{440.0*pow(2.0,(60)/12.0), 8},
|
||||||
{0, 800},
|
{0, 4},
|
||||||
{440.0*pow(2.0,(67)/12.0), 1600}
|
{440.0*pow(2.0,(67)/12.0), 16}
|
||||||
};
|
};
|
||||||
|
|
||||||
float tone_cm[][2] = {
|
float tone_cm[][2] = {
|
||||||
{440.0*pow(2.0,(67)/12.0), 400},
|
{440.0*pow(2.0,(59)/12.0), 8},
|
||||||
{440.0*pow(2.0,(60)/12.0), 400},
|
{440.0*pow(2.0,(60)/12.0), 8},
|
||||||
{0, 800},
|
{0, 4},
|
||||||
{440.0*pow(2.0,(67)/12.0), 1000},
|
{440.0*pow(2.0,(67)/12.0), 16},
|
||||||
{0, 200},
|
{0, 4},
|
||||||
{440.0*pow(2.0,(67)/12.0), 1000}
|
{440.0*pow(2.0,(71)/12.0), 16}
|
||||||
};
|
};
|
||||||
|
|
||||||
float tone_dv[][2] = {
|
float tone_dv[][2] = {
|
||||||
{440.0*pow(2.0,(67)/12.0), 400},
|
{440.0*pow(2.0,(59)/12.0), 8},
|
||||||
{440.0*pow(2.0,(60)/12.0), 400},
|
{440.0*pow(2.0,(60)/12.0), 8},
|
||||||
{0, 800},
|
{0, 4},
|
||||||
{440.0*pow(2.0,(67)/12.0), 800},
|
{440.0*pow(2.0,(67)/12.0), 16},
|
||||||
{0, 200},
|
{0, 4},
|
||||||
{440.0*pow(2.0,(67)/12.0), 800},
|
{440.0*pow(2.0,(69)/12.0), 16},
|
||||||
{0, 200},
|
{0, 4},
|
||||||
{440.0*pow(2.0,(67)/12.0), 800}
|
{440.0*pow(2.0,(67)/12.0), 16}
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -246,11 +246,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||||
|
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
float start_up[][2] = {
|
float start_up[][2] = {
|
||||||
{440.0*pow(2.0,(67)/12.0), 650},
|
{440.0*pow(2.0,(67)/12.0), 12},
|
||||||
{440.0*pow(2.0,(64)/12.0), 450},
|
{440.0*pow(2.0,(64)/12.0), 8},
|
||||||
{440.0*pow(2.0,(55)/12.0), 450},
|
{440.0*pow(2.0,(55)/12.0), 8},
|
||||||
{440.0*pow(2.0,(60)/12.0), 450},
|
{440.0*pow(2.0,(60)/12.0), 8},
|
||||||
{440.0*pow(2.0,(64)/12.0), 1000}
|
{440.0*pow(2.0,(64)/12.0), 20}
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -255,7 +255,12 @@ ISR(TIMER3_COMPA_vect) {
|
||||||
|
|
||||||
|
|
||||||
note_position++;
|
note_position++;
|
||||||
if (note_position >= note_length) {
|
bool end_of_note = false;
|
||||||
|
if (ICR3 > 0)
|
||||||
|
end_of_note = (note_position >= (note_length / ICR3 * 0xFFFF));
|
||||||
|
else
|
||||||
|
end_of_note = (note_position >= (note_length * 0x7FF));
|
||||||
|
if (end_of_note) {
|
||||||
current_note++;
|
current_note++;
|
||||||
if (current_note >= notes_length) {
|
if (current_note >= notes_length) {
|
||||||
if (notes_repeat) {
|
if (notes_repeat) {
|
||||||
|
|
|
@ -33,11 +33,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include "audio.h"
|
#include "audio.h"
|
||||||
|
|
||||||
float goodbye[][2] = {
|
float goodbye[][2] = {
|
||||||
{440.0*pow(2.0,(67)/12.0), 400},
|
{440.0*pow(2.0,(67)/12.0), 8},
|
||||||
{0, 50},
|
{440.0*pow(2.0,(60)/12.0), 8},
|
||||||
{440.0*pow(2.0,(60)/12.0), 400},
|
{440.0*pow(2.0,(55)/12.0), 12},
|
||||||
{0, 50},
|
|
||||||
{440.0*pow(2.0,(55)/12.0), 600},
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -90,7 +88,7 @@ action_t action_for_key(uint8_t layer, keypos_t key)
|
||||||
action_t action;
|
action_t action;
|
||||||
clear_keyboard();
|
clear_keyboard();
|
||||||
#ifdef AUDIO_ENABLE
|
#ifdef AUDIO_ENABLE
|
||||||
play_notes(&goodbye, 5, false);
|
play_notes(&goodbye, 3, false);
|
||||||
#endif
|
#endif
|
||||||
_delay_ms(250);
|
_delay_ms(250);
|
||||||
#ifdef ATREUS_ASTAR
|
#ifdef ATREUS_ASTAR
|
||||||
|
|
Loading…
Reference in a new issue