package jmsltutorial; import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import com.softsynth.jmsl.EventScheduler; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.score.*; import com.softsynth.jsyn.AppletFrame; import com.softsynth.jsyn.Synth; /** * @author Nick Didkovsky, copyright 2000 Nick Didkovsky */ public class JMSLScoreAppletToot extends java.applet.Applet { Score score; ScoreFrame scoreFrame; public void init() { } public void start() { synchronized (JMSL.class) { JMSL.setIsApplet(true); JMSL.setCodeBase(getCodeBase()); JMSL.clock.setAdvance(0.1); JMSL.scheduler = new EventScheduler(); JMSL.scheduler.start(); int w = 800; int h = 600; int numStaves = 1; score = new Score(numStaves, w, h, "JMSL Score JSyn Tutorial by Nick Didkovsky, copyright 2000 Nick Didkovsky"); scoreFrame = new ScoreFrame("JMSL Score JSyn Tutorial by Nick Didkovsky, copyright 2000 Nick Didkovsky"); scoreFrame.addScore(score); score.getScoreLayoutManager().setZoom(0.5); score.getControlPanel().setZoom(0.5); score.addMeasure(); scoreFrame.setVisible(true); scoreFrame.setSize(900, 600); } } public ScoreFrame getScoreFrame() { return scoreFrame; } public void stop() { synchronized (JMSL.class) { removeAll(); scoreFrame.setVisible(false); scoreFrame.dispose(); Score.deleteCanvas(); SelectionBuffer.disposeEditFrame(); JMSL.scheduler.stop(); JMSL.closeMusicDevices(); } } public void paint(Graphics g) { g.drawString("Your score has been opened in a Frame outside this browser", 20, 20); } /* Can be run as either an application or as an applet. */ public static void main(String args[]) { JMSLScoreAppletToot applet = new JMSLScoreAppletToot(); AppletFrame frame = new AppletFrame("JScoreApplet", applet); frame.setSize(440, 200); frame.show(); /* * Begin test after frame opened so that DirectSound will use Java * window. */ frame.test(); JMSL.setIsApplet(false); applet.getScoreFrame().addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { Synth.stopEngine(); System.exit(0); } }); } }