/StageZero

Primary LanguagePython

StageZeroDocumentation:

02-12-24 version = 1.0.0 (MAJOR.MINOR.PATCH)

Modules

Models
    - MainModel: The main model that holds the project name, song, and stack instances. Essentially the parent class for all of the model subclasses
        - song is an instance of the SongModel class
        - stack is an instance of the StackModel class

    - SongModel: Manages song item instances.
        - SongItem: Represents a song with attributes like name, path, song data, sample rate, length, and frame quantity.
   
    - StackModel: Manages the stack of layers.
        - LayerModel: Manages layer item instances and event item instances.
            - LayerItem: Represents a layer with a name and an event. Holds an instance of EventModel.
                - EventModel: Manages Event Item objects, and handles prep/storage of the plot data item.
                    - EventItem: Represents a single event with a name and color.

    - PluginModel: Manages plugins ()
        - Load Plugins

    - PoolModel: Manages Pool objects
        - Pools:
            - Onset: (These pool objects contain an array of onset events)

Views
    - MainView: The main view that holds the launch window and main window. Parent to all windows.      

        - LaunchWindow: The initial window that allows users to create or load a project.        
        - MainWindow: The main window that displays the song selection menu, song overview, audio playback command, layer control, stack, and playback mode.
            - SongSelectWidget: The widget that allows users to select a song.
            - SongOverviewWidget: The widget that displays an overview of the song.
            - PlaybackModeWidget: The widget that allows users to select the playback mode.
            - AudioPlaybackCommandWidget: The widget that allows users to control audio playback.
            - LayerControlWidget: The widget that allows users to control layers.
            - StackWidget: The widget that displays the stack of layers.
                - Hold the Scroll area for the LayerWidget
                    - LayerWidget: The widget that displays the layer_plot
        
        Auxillary:
        - EventEditorWidget: The popup widget that allows users to edit events.
        - CustomAxis: The custom axis for the layerWidget plot, eventually expand this to SongOverviewPlot as well

Controllers
    - MainController: The main controller that initializes all other controllers. This is the central point for data flow in the program. 
        - ProjectController: The controller that manages the project.
        - AudioPlaybackController: The controller that manages audio playback & Stopping/Starting of the clock.
        - SongController: The controller that manages the SongModel instance.
        - StackController: The controller that manages the StackModel instance.
        - LayerController: The controller that manages the LayerModel instance.
        - EventController: The controller that manages the EventItem instances.

        Widget Controllers:
        - SongSelectController: The controller that manages the data/logic behind the SongSelectWidget.
        - SongOverviewController: The controller that manages the data/logic behind the SongOverviewWidget.
        - PlaybackModeController: The controller that manages the data/logic behind the PlaybackModeWidget.

    Misc:
        - TimeUpdateThread: The thread that updates the time and emits signals. 
Utility
    DialogWindow
        This class encapsulates any dialog/popup window for prompting user interaction. It includes methods for opening a file, saving a file, inputting text, and displaying an error message.