com.softsynth.jmsl.score
Class ScoreFrame

java.lang.Object
  extended by com.softsynth.jmsl.view.PVFrameAdapter
      extended by 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 Summary
static java.lang.String copyright
           
 boolean DEBUG
           
 
Constructor Summary
ScoreFrame()
           
ScoreFrame(java.lang.String title)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
           
 void addBinaryCopyBufferTransform(BinaryCopyBufferTransform transform)
           
 void addBinaryCopyBufferTransform(BinaryCopyBufferTransform transform, int shortCutKey)
           
 void addBinaryCopyBufferTransform(PVMenu menu, BinaryCopyBufferTransform transform, int shortCutKey)
          Add a custom BinaryCopyBufferTransform to this ScoreFrame's "Binary Copy Buffer Transforms" menu.
 PVMenu addBinaryTransformsSubMenu(java.lang.String name)
          Add a submenu to to this ScoreFrame's "Binary Transforms" menu.
 void addInstrument(Instrument ins)
          Add an Instrument to the current score in this ScoreFrame.
 void addInstrument(Instrument ins, java.lang.String name)
          Same as addInstrument(ins), calls ins.setName() first
 void addNotePropertiesTransform(NotePropertiesTransform transform)
          Add a custom NotePropertiesTransform to this ScoreFrame's "Note Property Transforms" menu.
 void addNotePropertiesTransform(NotePropertiesTransform transform, int shortCutKey)
          Add a custom NotePropertiesTransform to this ScoreFrame's "Note Property Transforms" menu.
 void addNotePropertiesTransform(PVMenu menu, NotePropertiesTransform transform)
           
 void addNotePropertiesTransform(PVMenu menu, NotePropertiesTransform transform, int shortCutKey)
           
 void addNotePropertiesTransform(PVMenu menu, NotePropertiesTransform transform, int shortCutKey, boolean useShift)
          Add a custom NotePropertiesTransform to this ScoreFrame's "Note Property Transforms" menu.
 PVMenu addNoteSubMenu(java.lang.String name)
          Add a submenu to to this ScoreFrame's "Note Property Transforms" menu.
 void addScore(Score score)
           
 void addScoreOperator(ScoreOperator operator)
           
 void addUnaryCopyBufferTransform(PVMenu menu, UnaryCopyBufferTransform transform, int shortCutKey)
          Add a custom UnaryCopyBufferTransform to this ScoreFrame's "Unary Copy Buffer Transforms" menu.
 void addUnaryCopyBufferTransform(UnaryCopyBufferTransform transform)
          Add a custom UnaryCopyBufferTransform to this ScoreFrame's "Unary Copy Buffer Transforms" menu.
 void addUnaryCopyBufferTransform(UnaryCopyBufferTransform transform, int shortCutKey)
           
 PVMenu addUnaryTransformsSubMenu(java.lang.String name)
          Add a submenu to to this ScoreFrame's "Unary Transforms" menu.
 void alert(java.lang.String msg)
           
 void alert(java.lang.String title, java.lang.String msg)
           
 void buildHierachicalMenus()
           
 void displayCurrentScore()
           
 void displayScore(Score score)
           
 void dispose()
           
 void endOfScore()
          ScoreLoaderListener interface
 void fileDoneLoading(java.lang.String msg)
          FileLoaderListener interface , for loading Samples
 void fileLoading(java.lang.String msg)
          FileLoaderListener interface , for loading Samples
 boolean getAutoOpenMixerFrame()
           
 Score getCurrentScore()
           
 PVMenuBar getMainMenuBar()
           
 PVFrame getMixerFrame()
           
 java.lang.String getMusPrefix()
           
 java.lang.String getTemplateName()
           
 void handleEditInstrument()
          After instrument is edited in BeanEditor, objectEdited is called
 void handleExportLilyPond()
           
 void handleExportMIDIFile()
           
 void handleExportMusicXML()
           
 void handleExportScoreMUS()
           
 void handleImportSignalProcessor()
           
 void handleImportSynthNote()
           
 void handleLoadIns()
           
 void handleLoadOrch()
           
 void handleNewOrchestra()
           
 void handlePatchLurkers()
           
 void handlePatchOrch()
           
 void handleRemoveIns()
           
 void handleSaveIns()
           
 void handleSaveOrch()
           
 void handleScoreOperator(ScoreOperator reporter)
           
 void hierarchicalMenuItemSelected(PVMenu menu, java.lang.String className)
           
 void isApplet(boolean flag)
          Deprecated. Instead, call Score.setIsApplet(flag) before creating a ScoreFrame.
 void itemStateChanged(java.awt.event.ItemEvent e)
           
 void loadPrefs()
           
static void main(java.lang.String[] args)
           
 void noSound()
           
 void notifyDirty(Score score, boolean flag)
           
 void notifyNewScore(Score score)
          NewScoreListener interface
 void notifyUndoRedoStackChange(java.lang.String undoName, java.lang.String redoName)
           
 void objectEdited(java.lang.Object obj)
          This is called when BeanEditor OK or Editable object calls back
 void patchEditorOK(PatchEditorPanel p)
           
 void processTempoResult(double bpm, boolean b)
           
 void processTimeSigResult(int numer, int denom, boolean b)
           
 void quit()
           
 void removeScore(Score score)
           
 void reportMIDIFileWritten(boolean flag, java.lang.String message)
           
 void savePrefs()
           
 java.lang.String scanForClasses(java.util.Vector searchPaths)
          Scan for plugins in searchpaths
 void scoreLoaderMessage(java.lang.String msg)
          ScoreLoaderListener interface
 void setAutoOpenMixerFrame(boolean b)
           
 void setMusPrefix(java.lang.String s)
           
 void setTemplateName(java.lang.String s)
           
 void setVisible(boolean f)
           
 
Methods inherited from class com.softsynth.jmsl.view.PVFrameAdapter
add, add, addKeyListener, addWindowListener, equals, getBackground, getBounds, getComponent, getFont, getFontMetrics, getParent, getPVMenuBar, hashCode, isEnabled, isShowing, pack, removeAll, removeKeyListener, setBackground, setEnabled, setFont, setFrameLayout, setLocation, setPVMenuBar, setResizable, setSize, setSize, setTitle, toBack, toFront, toString, validate
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

DEBUG

public boolean DEBUG

copyright

public static final java.lang.String copyright
See Also:
Constant Field Values
Constructor Detail

ScoreFrame

public ScoreFrame()

ScoreFrame

public ScoreFrame(java.lang.String title)
Method Detail

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 Score.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.


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)

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);


notifyDirty

public void notifyDirty(Score score,
                        boolean flag)
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

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

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


handleImportSynthNote

public void handleImportSynthNote()

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 reporter)

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)