Here is a scattered doc of the augmented architecture I showed today. (It's a really rough draft, but the ideas are there.) -- Travis Apr. 21
Here is a diagram of how things fit together.
- Tells Parser to parse the current StaffSubMeasure
- Tells Conductor to fill the next StaffSubMeasure
- Old = Current
- Current = Next
- NextStaffMeasure.SongInfo is set to SongInfo if this is the last StaffSubMeasure (this includes tempo, key, time signature)
- Wait out the duration of Old, then repeat
| id | parent | callback | description | type |
| mainPanel | -- | -- | The parent of all widgets | panel |
| canvas | mainPanel | draw() | Fills the mainPanel | canvas |
| addInstrumentButton | canvas | onClick: revealInstrumentSelector() | '+' image | button |
| menuBar | mainPanel | -- | -- | menuBar |
| fileMenuLabel | menuBar | onClick: revealFileMenu() | label | |
| editMenuLanel | menuBar | onClick: revealEditMenu() | label | |
| fileMenu | menuBar |
'New': 'Are you sure?' && reset() 'Save': Exit: quit() |
contains New/Save/Exit options | menu |
| editMenu | menuBar |
'Undo': undo() 'Redo': redo() |
contains Undo/Redo | menu |
| instrumentSelectionPanel | canvas | -- | contains Instrument Selector | panel |
| instrumenSelectionButtonPanel | instrumentSelectionPanel |
-- | contains filter buttons | panel |
| filterButton | instrumenSelectionButtonPanel | filterList(buttonValue) | changes what is shown in instrument list | button |
| instrumentSelectionList | instrumentSelectionPanel |
onDrag (listItem): draws Instrument widget under user's cursor onRelease(listItem, position): add Instrument to canvas at position, add instrument to ensemble. |
listView | |
| instrumentWidgetPanel | canvas | onDrag: updatePosition(position) | The movable instrument widget container. | panel |
| instrumentIcon | instrumentWidgetPanel | -- | Image representing the instrument. | img |
| instrumentLabel | instrumentWidgetPanel | -- | The name of the instrument. | label |
| menuToggleButton | instrumentWidgetPanel | showInstrumentOptions(id) | Reveals the instrument-specific options in a separate display. | button |
| advancedViewButton | canvas | revealAdvancedOptions() | Turns on hidden key signature and time signature options. | button |
| advancedViewButtonPanel | canvas | -- | Contains key sig. and time sig. buttons | buttonPanel |
| keySignatureButton | advancedViewButtonPanel | revealKeySignatureSelector() | button | |
timeSignatureButton |
advancedViewButtonPanel | revealTimeSignatureSelector() | button | |
| keySignatureSelector | canvas | updateKey(key, maj_min) | Contains choices for keys, sharps, and maj/min, as separate button panels which I am not enumerating at the moment. | buttonPanel |
| timeSignatureSelector | canvas | updateTimeSignature(num, denom) | Contains two horizontal selectors with all supported options. Not enumerated at the moment. |
panel
|
| trashCan | Drag here to delete an instrument. Shows a list of recently deleted. |