package jmsltestsuite; import java.util.Vector; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.JMSLRandom; import com.softsynth.jmsl.MusicShape; import com.softsynth.jmsl.score.Score; import com.softsynth.jmsl.score.ScoreFrame; import com.softsynth.jmsl.score.Tempo; import com.softsynth.jmsl.score.transcribe.BeatDivisionSchemeList; import com.softsynth.jmsl.score.transcribe.ElementMissedException; import com.softsynth.jmsl.score.transcribe.SearchPathListExpansionException; import com.softsynth.jmsl.score.transcribe.TempoTimeSignatureHolder; import com.softsynth.jmsl.score.transcribe.Transcriber; import com.softsynth.jmsl.util.EventDistributions; import com.softsynth.jmsl.util.TimeSignature; import com.softsynth.jmsl.view.MusicShapeEditor; /** * 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 TestTranscribe7 { public static void main(String args[]) { JMSLRandom.randomize(); JMSL.clock.setAdvance(0.1); Transcriber.setFillBeatWithNote(false); BeatDivisionSchemeList.defaultSetup(); MusicShape source = new MusicShape(4); double totalTime = 0; while (totalTime < 8) { double duration = EventDistributions.genEntryDelayLog(3.0 / 2.0); double pitch = JMSLRandom.choose(60, 73); source.add(duration, pitch, 0.5, duration * 0.8); totalTime += duration; System.out.println("total time " + totalTime); } MusicShape klone = (MusicShape)source.clone(); source.integrate(0); Score score = new Score(1); score.addMeasure(); 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.setVisible(true); MusicShapeEditor se = new MusicShapeEditor(); se.addMusicShape(klone); f.add(java.awt.BorderLayout.SOUTH, se.getComponent()); f.pack(); } }