Class ScoreFrame

java.lang.Object
com.softsynth.jmsl.view.PVFrameAdapter
com.softsynth.jmsl.score.ScoreFrame
All Implemented Interfaces:
PVComponent, PVFrame, Alertable, EditListener, FileLoaderListener, DirtyListener, ScoreMIDIFileWriterListener, NewScoreListener, ScoreLoaderListener, TempoResultProcessor, TimeSigResultProcessor, UndoRedoStackListener, HierarchicalMenuListener, PatchEditorListener, java.awt.event.ActionListener, java.awt.event.ItemListener, java.util.EventListener
Direct Known Subclasses:
ScoreFrameJavaSound

public class ScoreFrame
extends PVFrameAdapter
implements DirtyListener, java.awt.event.ActionListener, java.awt.event.ItemListener, TimeSigResultProcessor, TempoResultProcessor, NewScoreListener, EditListener, PatchEditorListener, HierarchicalMenuListener, FileLoaderListener, ScoreLoaderListener, Alertable, ScoreMIDIFileWriterListener, UndoRedoStackListener
A PVFrame (ie dual purpose Swing or AWT frame), which hosts numerous Scores, and provides Menus for interaction.
Author:
Nick Didkovsky , copyright 2000 Nick Didkovsky
  • Field Details

    • DEBUG

      public boolean DEBUG
  • Constructor Details

    • ScoreFrame

      public ScoreFrame()
    • ScoreFrame

      public ScoreFrame​(java.lang.String title)
  • Method Details

    • getMainMenuBar

      public PVMenuBar getMainMenuBar()
      Returns:
      main MenuBar of this ScoreFrame. This will either be a Swing JMenuBar or AWT MenuBar
    • noSound

      public void noSound()
    • isApplet

      public void isApplet​(boolean flag)
      Deprecated.
      Instead, call JMSL.setIsApplet(flag) before creating a ScoreFrame.
      Set flag to indicate whether or not this is operating in an applet. If so, various menu items are disabled and writing System.err to a StringBuffer is disabled (stuff that that would throw security exceptions in an Applet).
    • addNoteSubMenu

      public PVMenu addNoteSubMenu​(java.lang.String name)
      Add a submenu to to this ScoreFrame's "Note Property Transforms" menu. Hold on to the Menu it returns this for adding your own transforms to it with public void addNotePropertiesTransform(Menu menu, NotePropertiesTransform transform, int shortCutKey)
      Example:
       Menu mySubMenu = addSubMenu("MyTransforms");
       addNotePropertiesTransform(mySubMenu, new MyTransform(), KeyEvent.VK_xxx);
       
      Returns:
      the new Menu, which shall be a submenu in this ScoreFrame's "Note Property Transforms" menu.
    • addScoreOperator

      public void addScoreOperator​(ScoreOperator operator)
    • addNoteOrnament

      public void addNoteOrnament​(NoteOrnament noteOrnament)
    • addScoreOperator

      public void addScoreOperator​(PVMenu menu, ScoreOperator operator)
    • addUnaryTransformsSubMenu

      public PVMenu addUnaryTransformsSubMenu​(java.lang.String name)
      Add a submenu to to this ScoreFrame's "Unary Transforms" menu. Hold on to the Menu it returns this for adding your own transforms to it with public void addUnaryCopyBufferTransform(Menu menu, UnaryCopyBufferTransform transform, int shortCutKey)
      Example:
       
                                                                                                                                          Menu mySubMenu = addUnaryTransformsSubMenu("MyUnaryTransforms");
                                                                                                                                          addUnaryCopyBufferTransform(mySubMenu, mytransform, KeyEvent.VK_xxx) {
       
       
      Returns:
      the new Menu, which shall be a submenu in this ScoreFrame's "Binary Transforms" menu.
    • addBinaryTransformsSubMenu

      public PVMenu addBinaryTransformsSubMenu​(java.lang.String name)
      Add a submenu to to this ScoreFrame's "Binary Transforms" menu. Hold on to the Menu it returns this for adding your own transforms to it with public void addBinaryCopyBufferTransform(Menu menu, BinaryCopyBufferTransform transform, int shortCutKey)
      Example:
       
                                                                                                                                          Menu mySubMenu = addBinaryTransformsSubMenu("MyTransforms");
                                                                                                                                          addBinaryCopyBufferTransform(mySubMenu, mytransform, KeyEvent.VK_xxx) {
       
       
       
      Returns:
      the new Menu, which shall be a submenu in this ScoreFrame's "Binary Transforms" menu.
    • addNotePropertiesTransform

      public void addNotePropertiesTransform​(NotePropertiesTransform transform)
      Add a custom NotePropertiesTransform to this ScoreFrame's "Note Property Transforms" menu. No shortcut key
    • addNotePropertiesTransform

      public void addNotePropertiesTransform​(NotePropertiesTransform transform, int shortCutKey)
      Add a custom NotePropertiesTransform to this ScoreFrame's "Note Property Transforms" menu. With shortcut key. Example: addNotePropertiesTransform(new TranspositionTransform(1), KeyEvent.VK_U);
    • addNotePropertiesTransform

      public void addNotePropertiesTransform​(PVMenu menu, NotePropertiesTransform transform)
    • addNotePropertiesTransform

      public void addNotePropertiesTransform​(PVMenu menu, NotePropertiesTransform transform, int shortCutKey)
    • addNotePropertiesTransform

      public void addNotePropertiesTransform​(PVMenu menu, NotePropertiesTransform transform, int shortCutKey, boolean useShift)
      Add a custom NotePropertiesTransform to this ScoreFrame's "Note Property Transforms" menu. Use shortcut key (See KeyEvent.VK_xxx)
      Example: addNotePropertiesTransform(myGroupOfTransformsSubMenu, new TranspositionTransform(1), KeyEvent.VK_U);
    • addUnaryCopyBufferTransform

      public void addUnaryCopyBufferTransform​(UnaryCopyBufferTransform transform)
      Add a custom UnaryCopyBufferTransform to this ScoreFrame's "Unary Copy Buffer Transforms" menu. with no shortcut key
      Example: addUnaryCopyBufferTransform(new MyZTransform());
    • addUnaryCopyBufferTransform

      public void addUnaryCopyBufferTransform​(UnaryCopyBufferTransform transform, int shortCutKey)
    • addUnaryCopyBufferTransform

      public void addUnaryCopyBufferTransform​(PVMenu menu, UnaryCopyBufferTransform transform, int shortCutKey)
      Add a custom UnaryCopyBufferTransform to this ScoreFrame's "Unary Copy Buffer Transforms" menu. Use shortcut key (See KeyEvent.VK_xxx) , or -1 for no short cut key
      Example: addUnaryCopyBufferTransform(new MyZTransform(), KeyEvent.VK_Z);
    • addBinaryCopyBufferTransform

      public void addBinaryCopyBufferTransform​(BinaryCopyBufferTransform transform)
    • addBinaryCopyBufferTransform

      public void addBinaryCopyBufferTransform​(BinaryCopyBufferTransform transform, int shortCutKey)
    • addBinaryCopyBufferTransform

      public void addBinaryCopyBufferTransform​(PVMenu menu, BinaryCopyBufferTransform transform, int shortCutKey)
      Add a custom BinaryCopyBufferTransform to this ScoreFrame's "Binary Copy Buffer Transforms" menu. Use shortcut key (See KeyEvent.VK_xxx)
      Example: addBinaryCopyBufferTransform(new MyZTransform(), KeyEvent.VK_Z);
    • addInstrumentLibrary

      public void addInstrumentLibrary​(com.jsyn.util.InstrumentLibrary insLib)
    • notifyDirty

      public void notifyDirty​(Score score, boolean flag, java.lang.String msg)
      Specified by:
      notifyDirty in interface DirtyListener
    • addScore

      public void addScore​(Score score)
    • removeScore

      public void removeScore​(Score score)
    • displayCurrentScore

      public void displayCurrentScore()
    • displayScore

      public void displayScore​(Score score)
    • notifyUndoRedoStackChange

      public void notifyUndoRedoStackChange​(java.lang.String undoName, java.lang.String redoName)
      Specified by:
      notifyUndoRedoStackChange in interface UndoRedoStackListener
    • undoStackRestoredScore

      public void undoStackRestoredScore​(Score score)
      Specified by:
      undoStackRestoredScore in interface UndoRedoStackListener
    • getCurrentScore

      public Score getCurrentScore()
    • processTimeSigResult

      public void processTimeSigResult​(int numer, int denom, boolean b)
      Specified by:
      processTimeSigResult in interface TimeSigResultProcessor
    • processTempoResult

      public void processTempoResult​(double bpm, boolean b)
      Specified by:
      processTempoResult in interface TempoResultProcessor
    • notifyNewScore

      public void notifyNewScore​(Score score)
      NewScoreListener interface
      Specified by:
      notifyNewScore in interface NewScoreListener
    • handleLoadSMuFLFile

      public void handleLoadSMuFLFile()
    • handleExportScoreMUS

      public void handleExportScoreMUS()
    • handleExportMusicXML

      public void handleExportMusicXML()
    • handleExportLilyPond

      public void handleExportLilyPond()
    • reportMIDIFileWritten

      public void reportMIDIFileWritten​(boolean flag, java.lang.String message)
      Specified by:
      reportMIDIFileWritten in interface ScoreMIDIFileWriterListener
    • handleExportMIDIFile

      public void handleExportMIDIFile()
    • setTemplateName

      public void setTemplateName​(java.lang.String s)
    • getTemplateName

      public java.lang.String getTemplateName()
    • setMusPrefix

      public void setMusPrefix​(java.lang.String s)
    • getMusPrefix

      public java.lang.String getMusPrefix()
    • handleNewOrchestra

      public void handleNewOrchestra()
    • handleLoadOrch

      public void handleLoadOrch()
    • patchEditorOK

      public void patchEditorOK​(PatchEditorPanel p)
      Specified by:
      patchEditorOK in interface PatchEditorListener
    • handlePatchOrch

      public void handlePatchOrch()
    • handlePatchLurkers

      public void handlePatchLurkers()
    • handleSaveOrch

      public void handleSaveOrch()
    • handleLoadIns

      public void handleLoadIns()
    • addInstrument

      public void addInstrument​(Instrument ins)
      Add an Instrument to the current score in this ScoreFrame. Adds to the Score's orchestra and updates menus and mixer frame
    • addInstrument

      public void addInstrument​(Instrument ins, java.lang.String name)
      Same as addInstrument(ins), calls ins.setName() first
    • handleImportJSynUnitVoice

      public void handleImportJSynUnitVoice()
    • handleImportSignalProcessor

      public void handleImportSignalProcessor()
    • handleSaveIns

      public void handleSaveIns()
    • objectEdited

      public void objectEdited​(java.lang.Object obj)
      This is called when BeanEditor OK or Editable object calls back
      Specified by:
      objectEdited in interface EditListener
    • handleEditInstrument

      public void handleEditInstrument()
      After instrument is edited in BeanEditor, objectEdited is called
    • handleRemoveIns

      public void handleRemoveIns()
    • handleScoreOperator

      public void handleScoreOperator​(ScoreOperator scoreOperator)
    • actionPerformed

      public void actionPerformed​(java.awt.event.ActionEvent e)
      Specified by:
      actionPerformed in interface java.awt.event.ActionListener
    • itemStateChanged

      public void itemStateChanged​(java.awt.event.ItemEvent e)
      Specified by:
      itemStateChanged in interface java.awt.event.ItemListener
    • scanForClasses

      public java.lang.String scanForClasses​(java.util.Vector searchPaths) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.io.IOException
      Scan for plugins in searchpaths
      Returns:
      missing paths
      Throws:
      java.lang.ClassNotFoundException
      java.lang.IllegalAccessException
      java.lang.InstantiationException
      java.io.IOException
    • buildHierachicalMenus

      public void buildHierachicalMenus()
    • hierarchicalMenuItemSelected

      public void hierarchicalMenuItemSelected​(PVMenu menu, java.lang.String className)
      Specified by:
      hierarchicalMenuItemSelected in interface HierarchicalMenuListener
    • alert

      public void alert​(java.lang.String msg)
    • alert

      public void alert​(java.lang.String title, java.lang.String msg)
      Specified by:
      alert in interface Alertable
    • setVisible

      public void setVisible​(boolean f)
      Specified by:
      setVisible in interface PVFrame
      Overrides:
      setVisible in class PVFrameAdapter
    • dispose

      public void dispose()
      Specified by:
      dispose in interface PVFrame
      Overrides:
      dispose in class PVFrameAdapter
    • savePrefs

      public void savePrefs()
    • loadPrefs

      public void loadPrefs()
    • quit

      public void quit()
    • fileLoading

      public void fileLoading​(java.lang.String msg)
      FileLoaderListener interface , for loading Samples
      Specified by:
      fileLoading in interface FileLoaderListener
    • fileDoneLoading

      public void fileDoneLoading​(java.lang.String msg)
      FileLoaderListener interface , for loading Samples
      Specified by:
      fileDoneLoading in interface FileLoaderListener
    • scoreLoaderMessage

      public void scoreLoaderMessage​(java.lang.String msg)
      ScoreLoaderListener interface
      Specified by:
      scoreLoaderMessage in interface ScoreLoaderListener
    • endOfScore

      public void endOfScore()
      ScoreLoaderListener interface
      Specified by:
      endOfScore in interface ScoreLoaderListener
    • getAutoOpenMixerFrame

      public boolean getAutoOpenMixerFrame()
      Returns:
      flag if mixer frame automatically opens when score is displayed or an instrument is added
    • setAutoOpenMixerFrame

      public void setAutoOpenMixerFrame​(boolean b)
      Parameters:
      b - Set flag to signal whether Mixer Frame is automatically made visible when score is displayed or an instrument is added
    • getMixerFrame

      public PVFrame getMixerFrame()
      Returns:
      Frame used to display score.getOrchestra().getPanAmpControlPanel() Contents are removed and reloaded whenever displayScore() is called
    • main

      public static void main​(java.lang.String[] args)