X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/8a7351c760b30077f562795500d88908e4da1932..77a9df36a77d2523dd2bc24fa17f9f04c6c175c5:/Projects/MIDIToneGenerator/MIDIToneGenerator.c diff --git a/Projects/MIDIToneGenerator/MIDIToneGenerator.c b/Projects/MIDIToneGenerator/MIDIToneGenerator.c index d55838494..e1008a7d3 100644 --- a/Projects/MIDIToneGenerator/MIDIToneGenerator.c +++ b/Projects/MIDIToneGenerator/MIDIToneGenerator.c @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2010. + Copyright (C) Dean Camera, 2011. dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ /* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted @@ -57,7 +57,7 @@ USB_ClassInfo_MIDI_Device_t Keyboard_MIDI_Interface = }; /** 8-bit 256 entry Sine Wave lookup table */ -const uint8_t SineTable[256] = +static const uint8_t SineTable[256] = { 128, 131, 134, 137, 140, 143, 146, 149, 152, 156, 159, 162, 165, 168, 171, 174, 176, 179, 182, 185, 188, 191, 193, 196, 199, 201, 204, 206, 209, 211, 213, 216, @@ -78,7 +78,8 @@ const uint8_t SineTable[256] = }; /** Array of structures describing each note being generated */ -DDSNoteData NoteData[MAX_SIMULTANEOUS_NOTES]; +static DDSNoteData NoteData[MAX_SIMULTANEOUS_NOTES]; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. @@ -165,7 +166,7 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK) if (NoteData[i].Pitch) { /* Use the top 8 bits of the table position as the sample table index */ - uint8_t TableIndex = ((uint8_t*)&NoteData[i].TablePosition)[3]; + uint8_t TableIndex = (NoteData[i].TablePosition >> 24); /* Add the new tone sample to the accumulator and increment the table position */ MixedSample += SineTable[TableIndex];