1
0
Fork 0

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

@ -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