/* * Created on May 18, 2006 * */ package jmsltestsuite; import java.awt.Color; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import com.didkovsky.portview.swing.ViewFactorySwing; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.score.*; public class MultiTrackLegacyOrientationTest { public static void main(String[] args) { JMSL.setViewFactory(new ViewFactorySwing()); // one staff, 800x600 pixel canvas Score score = new Score(1, 1200, 600); // IMPORTANT!!! Call setNumTracksPerStaff() right after the constructor and before adding // measures. Else you will need to manage heterogeneous numbers of tracks in the staves of // various measures yourself score.setNumTracksPerStaff(4); score.setUseLegacyMultiTrackOrientation(true); boolean onlyTwo = false; double zoom = 0.5; score.getScoreLayoutManager().setZoom(zoom); score.addMeasure(4, 4); score.setInstrumentNamesVisible(false); double basePitch = 60; int iterationLimit = onlyTwo ? 2 : score.getNumTracksPerStaff(); String title = score.isUseLegacyMultiTrackOrientation() ? "Legacy multi track orientation" : "New multitrack orientation"; title += ", number of tracks = " + score.getNumTracksPerStaff() + ", showing notes on first " + iterationLimit + " tracks"; score.setName(title); for (int m = 0; m < 4; m++) { for (int t = 0; t < iterationLimit; t++) { score.setCurrentTrackNumber(t); // score.rewind(); Note rest = score.addNote(0.5, 0, 0, 0.2); rest = score.addNote(0.5, 0, 0, 0.2); rest = score.addNote(1, 0, 0, 0.2); for (int i = 0; i < 4; i++) { score.addNote(0.5, 60 + t * 12, 0.5, 0.2); } double restOffset = m*10 + t*-10; // rest.getTrack().setMultiTrackRestAdjustmentY(restOffset); } } final ScoreFrame scoreFrame = new ScoreFrame(); scoreFrame.addScore(score); scoreFrame.pack(); scoreFrame.setVisible(true); score.getControlPanel().setZoom(1); scoreFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { scoreFrame.quit(); } }); } }