package jmsltestsuite; import java.util.Vector; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.MusicShape; import com.softsynth.jmsl.score.*; import com.softsynth.jmsl.score.transcribe.*; import com.softsynth.jmsl.util.TimeSignature; /** JMSL's com.softsynth.jmsl.score.transcribe package enables the transcription of arbitrary MusicShape data into common music notation. @author Nick Didkovsky, (c) 2002 Nick Didkovsky, All Rights reserved. */ public class TranscribeScore5 { public static void main(String args[]) { JMSL.clock.setAdvance(0.1); Transcriber.setFillBeatWithNote(false); BeatDivisionSchemeList.defaultSetup(); MusicShape source = new MusicShape(7); source.setLimits(6, 0, 2000); // for (int i=0; i<16; i++) { source.add(0, 60, 0.5, 3.5, 10, 100, 1000); source.add(0, 72, 0.5, 1, 11, 101, 1001); source.add(4.0, 72, 0.5, 1, 12, 102, 1002); source.add(4.666, 73, 0.5, 1, 13, 103, 1003); source.add(5.3333, 74, 0.5, 1, 14, 104, 1004); // } // 2 staves, let score dimensions auto adjust to number of staves and your screen Score score = new Score(2); // TODO does not autoadjust score.addMeasure(); score.getMeasure(0).getStaff(1).setClef(Clef.BASS_CLEF); Transcriber transcriber = new Transcriber(); transcriber.setScore(score); transcriber.setSourceMusicShape(source); Vector tsVector = new Vector(); tsVector.addElement(new TempoTimeSignatureHolder(new Tempo(60), new TimeSignature(4, 4))); transcriber.setTempoTimeSignatures(tsVector); try { score.setCurrentStaffNumber(0); transcriber.transcribe(); } catch (ElementMissedException e) { e.printStackTrace(); System.out.println("ERROR: " + e); System.exit(0); } catch (SearchPathListExpansionException e) { e.printStackTrace(); System.out.println("ERROR: " + e); System.exit(0); } final ScoreFrame f = new ScoreFrame(); f.addScore(score); //f.loadPrefs(); f.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { f.quit(); } }); //f.pack(); f.setVisible(true); } }