Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
8a7351c7
Commit
8a7351c7
authored
Dec 03, 2010
by
Dean Camera
Browse files
Added new completed MIDIToneGenerator project.
parent
b20d2585
Changes
10
Expand all
Show whitespace changes
Inline
Side-by-side
LUFA.pnproj
View file @
8a7351c7
This diff is collapsed.
Click to expand it.
LUFA/ManPages/ChangeLog.txt
View file @
8a7351c7
...
...
@@ -9,7 +9,7 @@
* \section Sec_ChangeLogXXXXXX Version XXXXXX
* <b>New:</b>
* - Core:
* -
None
* -
Added new MIDIToneGenerator project
* - Library Applications:
* - Added new incomplete MIDIToneGenerator project
* - Added ability to write protect Mass Storage disk write operations from the host OS
...
...
@@ -25,7 +25,7 @@
* <b>Fixed:</b>
* - Core:
* - Fixed broken USBFOO board drivers due to missing BOARD_USBFOO define
* - Fixed HID h
p
st class driver incorrectly binding to HID devices that do not have an OUT endpoint
* - Fixed HID h
o
st class driver incorrectly binding to HID devices that do not have an OUT endpoint
* - Library Applications:
* - Fixed Benito project discarding incoming data from the USB virtual serial port when the USART is busy
* - Fixed broken DFU bootloader, added XPLAIN support for bootloader start when XCK jumpered to ground
...
...
LUFA/ManPages/LibraryApps.txt
View file @
8a7351c7
...
...
@@ -102,6 +102,7 @@
* - <b>Benito</b> - Benito Board Arduino Programmer project
* - <b>LEDNotifier</b> - USB LED Notification project
* - <b>Magstripe</b> - Magnetic Stripe Card Reader project
* - <b>MIDIToneGenerator</b> - MIDI Note Tone Generator project
* - <b>MissileLaucher</b> - Toy Missile Launcher Host project
* - <b>RelayBoard</b> - Relay board controller, controllable via the "sismpctl" Linux application
* - <b>TempDataLogger</b> - Temperature Datalogging project, using the FatFS library
...
...
Projects/
Incomplete/
MIDIToneGenerator/Descriptors.c
→
Projects/MIDIToneGenerator/Descriptors.c
View file @
8a7351c7
File moved
Projects/
Incomplete/
MIDIToneGenerator/Descriptors.h
→
Projects/MIDIToneGenerator/Descriptors.h
View file @
8a7351c7
File moved
Projects/
Incomplete/
MIDIToneGenerator/MIDIToneGenerator.c
→
Projects/MIDIToneGenerator/MIDIToneGenerator.c
View file @
8a7351c7
...
...
@@ -109,7 +109,7 @@ int main(void)
LRUNoteStruct
=
&
NoteData
[
i
];
break
;
}
else
if
(
NoteData
[
i
].
LRUAge
>
LRUNoteStruct
->
LRUAge
)
else
if
(
NoteData
[
i
].
LRUAge
>
=
LRUNoteStruct
->
LRUAge
)
{
/* If an older entry that the current entry has been found, prefer overwriting that one */
LRUNoteStruct
=
&
NoteData
[
i
];
...
...
@@ -161,9 +161,14 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK)
/* Sum together all the active notes to form a single sample */
for
(
uint8_t
i
=
0
;
i
<
MAX_SIMULTANEOUS_NOTES
;
i
++
)
{
/* A non-zero pitch indicates the note is active */
if
(
NoteData
[
i
].
Pitch
)
{
MixedSample
+=
SineTable
[
NoteData
[
i
].
TablePosition
>>
24
];
/* Use the top 8 bits of the table position as the sample table index */
uint8_t
TableIndex
=
((
uint8_t
*
)
&
NoteData
[
i
].
TablePosition
)[
3
];
/* Add the new tone sample to the accumulator and increment the table position */
MixedSample
+=
SineTable
[
TableIndex
];
NoteData
[
i
].
TablePosition
+=
NoteData
[
i
].
TableIncrement
;
}
}
...
...
Projects/
Incomplete/
MIDIToneGenerator/MIDIToneGenerator.h
→
Projects/MIDIToneGenerator/MIDIToneGenerator.h
View file @
8a7351c7
Projects/MIDIToneGenerator/MIDIToneGenerator.txt
0 → 100644
View file @
8a7351c7
/** \file
*
* This file contains special DoxyGen information for the generation of the main page and other special
* documentation pages. It is not a project source file.
*/
/** \mainpage MIDI Tone Generator Project
*
* \section SSec_Compat Project Compatibility:
*
* The following list indicates what microcontrollers are compatible with this project.
*
* - Series 7 USB AVRs (AT90USBxxx7)
* - Series 6 USB AVRs (AT90USBxxx6)
* - Series 4 USB AVRs (ATMEGAxxU4)
*
* \section SSec_Info USB Information:
*
* The following table gives a rundown of the USB utilization of this project.
*
* <table>
* <tr>
* <td><b>USB Mode:</b></td>
* <td>Device</td>
* </tr>
* <tr>
* <td><b>USB Class:</b></td>
* <td>Audio Class</td>
* </tr>
* <tr>
* <td><b>USB Subclass:</b></td>
* <td>Standard Audio Device</td>
* </tr>
* <tr>
* <td><b>Relevant Standards:</b></td>
* <td>USBIF Audio Class Specification \n
* USB-MIDI Audio Class Extension Specification \n
* General MIDI Specification</td>
* </tr>
* <tr>
* <td><b>Usable Speeds:</b></td>
* <td>Full Speed Mode</td>
* </tr>
* </table>
*
* \section SSec_Description Project Description:
*
* MIDI note synthesiser project. This project implements a basic DDS frequency synthesiser, capable of producing 8-bit PWM sine
* waves of variable frequency. When attached to a USB host, this project will allow for multiple MIDI notes to be synthesised into
* audiable sound via PWM, using the notes sent to MIDI channel 1.
*
* Outgoing audio will output in 8-bit PWM onto the timer 3 output compare channel A. Decouple the audio output with a capacitor
* and attach to a speaker to hear the audio.
*
* \section SSec_Options Project Options
*
* The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.
*
* <table>
* <tr>
* <td><b>Define Name:</b></td>
* <td><b>Location:</b></td>
* <td><b>Description:</b></td>
* </tr>
* <tr>
* <td>MAX_SIMULTANEOUS_NOTES</td>
* <td>MIDIToneGenerator.h</td>
* <td>Sets the maximum number of MIDI notes that can be generated simultaneously. More notes require more processing time,
* and thus a value that is too high will cause audiable sound distortion due to insufficient CPU time.</td>
* </tr>
* </table>
*/
Projects/
Incomplete/
MIDIToneGenerator/makefile
→
Projects/MIDIToneGenerator/makefile
View file @
8a7351c7
...
...
@@ -112,7 +112,7 @@ OBJDIR = .
# Path to the LUFA library
LUFA_PATH
=
../../
../
LUFA_PATH
=
../../
# LUFA library compile-time options and predefined tokens
...
...
@@ -122,10 +122,6 @@ LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
LUFA_OPTS
+=
-D
USE_FLASH_DESCRIPTORS
LUFA_OPTS
+=
-D
USE_STATIC_OPTIONS
=
"(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
LUFA_OPTS
+=
-D
AUDIO_OUT_STEREO
#LUFA_OPTS += -D AUDIO_OUT_MONO
#LUFA_OPTS += -D AUDIO_OUT_PORTC
# Create the LUFA source path variables by including the LUFA root makefile
include
$(LUFA_PATH)/LUFA/makefile
...
...
Projects/makefile
View file @
8a7351c7
...
...
@@ -26,6 +26,9 @@ all:
$(MAKE)
-C
Magstripe
clean
$(MAKE)
-C
Magstripe
all
$(MAKE)
-C
MIDIToneGenerator
clean
$(MAKE)
-C
MIDIToneGenerator
all
$(MAKE)
-C
MissileLauncher
clean
$(MAKE)
-C
MissileLauncher
all
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment