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. * * * Test hold time of final note extending into added measure * * @author Nick Didkovsky, (c) 2002 Nick Didkovsky, All Rights reserved. */ public class TranscribeScore14 { public static void main(String args[]) { JMSL.clock.setAdvance(0.1); BeatDivisionSchemeList.defaultSetup(); // 2 staves, width, height Score score = new Score(2, 1024, 800); score.addMeasure(); // score.getMeasure(0).getStaff(1).setClef(Clef.BASS_CLEF); Transcriber transcriber = new Transcriber(); transcriber.setExtendLastHoldTime(true); transcriber.setScore(score); MusicShape source = new MusicShape(4); source.add(0.0, 63.98, 0.5, 4.66); source.add(4.6667, 61, 0.5, 5.0); // MusicShape source2 = new MusicShape(4); // source2.add(0., 74.84, 77., 1.4); // source2.add(1.4, 75.45, 60., 0.05); // source2.add(1.45, 75.78, 65., 0.05); // source2.add(1.5, 76.15, 53., 2.45); MusicShape source2 = new MusicShape(4); source2.add(0., 74.84, 77., 1.4); source2.add(1.399999976158142, 75.45, 60., 0.05); double pitch1 = 75.78; double pitch2 = 76.15; boolean seeExtendedChordWorkOK = true; // seeExtendedChordWorkOK = false; if (seeExtendedChordWorkOK) { double temp = pitch1; pitch1 = pitch2; pitch2 = temp; } source2.add(1.4500000476837158, pitch1, 65., 0.05000000074505806); source2.add(1.5, pitch2, 53., 2.450000047683716); Vector tsVector = new Vector(); tsVector.addElement(new TempoTimeSignatureHolder(new Tempo(150), new TimeSignature(9, 8))); transcriber.setTempoTimeSignatures(tsVector); try { score.setCurrentStaffNumber(0); transcriber.setSourceMusicShape(source2); transcriber.transcribe(); // score.rewind(); // score.setCurrentStaffNumber(1); // transcriber.setSourceMusicShape(source2); // 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.setVisible(true); } }