| Points | Task |
| 3 | Registers a major number |
| 3 | Can be written to |
| 6 | Rejects any write that contains any byte outside of A-G (all uppercase) or 1-9 |
| 6 | Makes a sound |
| 6 | Makes different notes when different letters are sent |
| 6 | Can play "Mary Had A Little Lamb" |
| 6 | The digits 1-9 change the duration of following notes |
| 6 | Octave changes |
| 2 | has an 'r' for rest |
| 10 | Has a clear top and bottom half |
| 5 | Uses some locking something to regulate data changes |
| 10 | Can play a sound and receive data at the same time |
| 10 | Uses either a circular buffer or a linked list to hold requests (or something else that's O(n) and approved by me). |
| 5 | Has a status file describing the current amount of notes in the queue,
and the metadata for the data structure.
For a linked list ... number of links and their addresses For a circular buffer ... head and tail pointers |
Here's a list of frequencies
| Note | Frequency |
| A | 220 |
| B | 247 |
| C | 262 |
| D | 294 |
| E | 330 |
| F | 349 |
| G | 392 |
Here's the notes of "Mary Had a Little Lamb"
EDCDEEEDDDEGGEDGDEEEEDDEDG