audio note length fixes

This commit is contained in:
Jack Humbert 2016-04-15 13:44:07 -04:00
parent bb0836c620
commit ee2ee7f4f0
3 changed files with 33 additions and 30 deletions

View file

@ -147,30 +147,30 @@ const uint16_t PROGMEM fn_actions[] = {
#ifdef AUDIO_ENABLE
float tone_qw[][2] = {
{440.0*pow(2.0,(67)/12.0), 400},
{440.0*pow(2.0,(60)/12.0), 400},
{0, 800},
{440.0*pow(2.0,(67)/12.0), 1600}
{440.0*pow(2.0,(59)/12.0), 8},
{440.0*pow(2.0,(60)/12.0), 8},
{0, 4},
{440.0*pow(2.0,(67)/12.0), 16}
};
float tone_cm[][2] = {
{440.0*pow(2.0,(67)/12.0), 400},
{440.0*pow(2.0,(60)/12.0), 400},
{0, 800},
{440.0*pow(2.0,(67)/12.0), 1000},
{0, 200},
{440.0*pow(2.0,(67)/12.0), 1000}
{440.0*pow(2.0,(59)/12.0), 8},
{440.0*pow(2.0,(60)/12.0), 8},
{0, 4},
{440.0*pow(2.0,(67)/12.0), 16},
{0, 4},
{440.0*pow(2.0,(71)/12.0), 16}
};
float tone_dv[][2] = {
{440.0*pow(2.0,(67)/12.0), 400},
{440.0*pow(2.0,(60)/12.0), 400},
{0, 800},
{440.0*pow(2.0,(67)/12.0), 800},
{0, 200},
{440.0*pow(2.0,(67)/12.0), 800},
{0, 200},
{440.0*pow(2.0,(67)/12.0), 800}
{440.0*pow(2.0,(59)/12.0), 8},
{440.0*pow(2.0,(60)/12.0), 8},
{0, 4},
{440.0*pow(2.0,(67)/12.0), 16},
{0, 4},
{440.0*pow(2.0,(69)/12.0), 16},
{0, 4},
{440.0*pow(2.0,(67)/12.0), 16}
};
#endif
@ -246,11 +246,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
#ifdef AUDIO_ENABLE
float start_up[][2] = {
{440.0*pow(2.0,(67)/12.0), 650},
{440.0*pow(2.0,(64)/12.0), 450},
{440.0*pow(2.0,(55)/12.0), 450},
{440.0*pow(2.0,(60)/12.0), 450},
{440.0*pow(2.0,(64)/12.0), 1000}
{440.0*pow(2.0,(67)/12.0), 12},
{440.0*pow(2.0,(64)/12.0), 8},
{440.0*pow(2.0,(55)/12.0), 8},
{440.0*pow(2.0,(60)/12.0), 8},
{440.0*pow(2.0,(64)/12.0), 20}
};
#endif

View file

@ -255,7 +255,12 @@ ISR(TIMER3_COMPA_vect) {
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++;
if (current_note >= notes_length) {
if (notes_repeat) {

View file

@ -33,11 +33,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "audio.h"
float goodbye[][2] = {
{440.0*pow(2.0,(67)/12.0), 400},
{0, 50},
{440.0*pow(2.0,(60)/12.0), 400},
{0, 50},
{440.0*pow(2.0,(55)/12.0), 600},
{440.0*pow(2.0,(67)/12.0), 8},
{440.0*pow(2.0,(60)/12.0), 8},
{440.0*pow(2.0,(55)/12.0), 12},
};
#endif
@ -90,7 +88,7 @@ action_t action_for_key(uint8_t layer, keypos_t key)
action_t action;
clear_keyboard();
#ifdef AUDIO_ENABLE
play_notes(&goodbye, 5, false);
play_notes(&goodbye, 3, false);
#endif
_delay_ms(250);
#ifdef ATREUS_ASTAR