I need to use a PIC board to develop a small tool to aid musicians.
The system when completed will consist of a menu system that will allow you to select the mode of operation. Based on this selection different buttons & controls will be used to modify both the OLED display and perform the required task. Note that the menu must work forwards & backwards (i.e. you can return to the previous option from any sub menu).
It is possible to create the menu system independently of the functions that are performed once the choice of operation mode has been made (indeed this is recommended to speed development).
An example is for the metronome – the ‘tick’ sound can be developed as a function in a separate ‘mini’ programme – the ‘real’ application can make use of this later by including the code if the function prototype is agreed at the start (as during the development of the menu a ‘dummy’ function can be used in place of the real ‘tick’ code).
1. The board as a Metronome
The user first selects one of the following pulse patterns to be generated via the DAC
? Time signature (2/2, 3/4, 4/4 etc.).
? The base beats per minute (andante, allegro, presto etc.)
Once the selection has been made (by a suitable interaction from the user) the display is updated to reflect the settings and the metronome starts. The primary beat should be distinct from the others in the bar
While the metronome is in operation the beats per minute can be modified using either the buttons (one for increase, one for decrease) or via the potentiometer. The display must be updated accordingly.
2. Tuning utility
From the menu there will additionally be the option to perform a basic ‘tuning’ where the note to be tuned against is selected from a menu. This note is played to the user (you can test this by showing the output on an oscilloscope) for them to tune their instrument against (in effect it is a simple sine-wave signal generator with a selection of pre-defined frequencies).
[url removed, login to view] of tuning
This utility will sample the note being played and give an indication of the frequency compared to the note being tuned against. It can be done for a fixed note (of your choice); the method used to determine how ‘in tune’ the instrument is and the method for displaying this is left as an exercise to the user.