Architecture

Architecture

ArchitectureVersionThree

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.

Front End

GUI

Controller

FluidSynth

Core

Application

SongControl

Parser

Conductor

Conductor (edit)

Model

Ensemble

Musician

Musician (edit)

Instrument

Instrument (edit)

SongInfo

Score

Staff Measure

StaffSubMeasure

SubMeasure

Note

Static Data

MusicianDirectory

InstrumentTree

SoundFileMap




List of widgets

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.