General information
To achieve practical experience of the construction of a real-time system, a compulsory laboratory assignment is included in the course. The purpose of the assignment is to develop a distributed synthetic chorus, with several individual tone generators (Part 1) that execute under strict timing constraints while at the same time being mutually synchronized other over a communication network (Part 2). The software is programmed using the C programming language extended with the TinyTimber kernel. As a preparation for Part 1 and Part 2 of the laboratory assignment, you work on Part 0 of the laboratory assignment during study week 2.
During the course of the laboratory assignment you will see a simple tone generator develop into a small synthesizer/sequencer combo capable of performing the song "Brother John" ("Broder Jakob" in Swedish). And not only that – the whole exercise will emanate into a network-aware music application that may participate in coordinated "Brother John" performances together with all other like-minded boards it finds on the local network. So let the music play!
The expected time to do the entire assignment, including Part 0, 1 and 2, is 5 weeks (study weeks 2 through 6). Part 0 should take one session, Part 1 should take 1-2 sessions, and Part 2 should take 2-3 sessions. Obviously you can finish sooner whenever you are done with all parts. On the other hand, if you need more time you can use the remaining weeks of the study period.
Since the laboratory assignment involves significant interaction with laboratory assistants (demonstrating designs and solutions) as well as other groups (designing a communication protocol) each student is expected to attend at least 3 laboratory sessions.
In the final part of the laboratory assignment the students present should their project at a seminar and document it in a written report that should electronically submitted via PingPong (see below).