package jmsltestsuite; import java.util.Vector; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.MusicShape; import com.softsynth.jmsl.score.Score; import com.softsynth.jmsl.score.ScoreFrame; 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.Transcriber; import com.softsynth.jmsl.util.TimeSignature; //import com.softsynth.jmsl.util.*; /** 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 TestTranscribe2 { public static void main(String args[]) { JMSL.clock.setAdvance(0.1); BeatDivisionSchemeList.defaultSetup(); MusicShape MusicShape_4 = new MusicShape(4); MusicShape_4.setDimensionName(0, "duration"); MusicShape_4.setDimensionName(1, "pitch"); MusicShape_4.setDimensionName(2, "amplitude"); MusicShape_4.setDimensionName(3, "hold"); double time = 0; double dur; for (int i = 0; i < 9; i++) { dur = 1.0 / 9; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 9; i++) { dur = 2.0 / 9; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 11; i++) { dur = 1.0 / 11; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 11; i++) { dur = 2.0 / 11; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 13; i++) { dur = 2.0 / 13; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 26; i++) { dur = 1.0 / 13; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 14; i++) { dur = 1.0 / 7; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 9; i++) { dur = 4.0 / 9; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 11; i++) { dur = 4.0 / 11; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 13; i++) { dur = 4.0 / 13; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 7; i++) { dur = 4.0 / 7; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 5; i++) { dur = 4.0 / 5; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } for (int i = 0; i < 6; i++) { dur = 4.0 / 6; MusicShape_4.add(time, 60 + i, 0.5, dur * 0.9); time += dur; } //MusicShape_4.add( 0.0, 60.0, 0.5, 0.6 ); //MusicShape_4.add( 0.66666, 75.0, 0.5, 0.3 ); //MusicShape_4.add( 0.66666, 65.0, 0.5, 0.3 ); /* MusicShape_4.add( 0.0, 75.0, 0.0546875, 0.45650088975022296 ); MusicShape_4.add( 0.5706261121877787, 82.0, 0.0546875, 0.2240926191557514 ); MusicShape_4.add( 0.8507418861324679, 63.0, 0.046875, 0.7251799479373859 ); MusicShape_4.add( 1.7572168210542003, 80.0, 0.046875, 0.09698754199954432 ); MusicShape_4.add( 1.8784512485536307, 68.0, 0.0546875, 0.13368181711752633 ); MusicShape_4.add( 2.0455535199505386, 60.0, 0.0390625, 0.17853558473657627 ); MusicShape_4.add( 2.268723000871259, 75.0, 0.015625, 0.7433517885498775 ); MusicShape_4.add( 3.1979127365586058, 81.0, 0.0234375, 0.12629853893809193 ); MusicShape_4.add( 3.3557859102312206, 74.0, 0.0625, 0.1023081446107536 ); MusicShape_4.add( 3.4836710909946627, 65.0, 0.0703125, 0.1146639353426945 ); MusicShape_4.add( 3.627001010173031, 63.0, 0.0703125, 0.37484475144225265 ); MusicShape_4.add( 4.095556949475847, 61.0, 0.078125, 0.598508341274439 ); MusicShape_4.add( 4.843692376068895, 68.0, 0.015625, 0.5941270800834006 ); MusicShape_4.add( 5.586351226173146, 73.0, 0.0234375, 0.1814934622876177 ); MusicShape_4.add( 5.813218054032668, 73.0, 0.0234375, 0.20270420632322056 ); MusicShape_4.add( 6.066598311936694, 64.0, 0.046875, 0.3365125829173213 ); MusicShape_4.add( 6.487239040583345, 70.0, 0.03125, 0.5800337353805409 ); MusicShape_4.add( 7.212281209809022, 78.0, 0.0390625, 0.12019123574387856 ); MusicShape_4.add( 7.36252025448887, 78.0, 0.1015625, 0.26175634273982495 ); MusicShape_4.add( 7.6897156829136515, 65.0, 0.1015625, 0.4005958771216162 ); */ // 1 staff, width, height Score score = new Score(1, 1024, 800); score.addMeasure(); Transcriber transcriber = new Transcriber(); transcriber.setScore(score); transcriber.setSourceMusicShape(MusicShape_4); TimeSignature ts = new TimeSignature(4, 4); Vector tsVector = new Vector(); tsVector.addElement(ts); transcriber.setTimeSignatures(tsVector); score.setCurrentStaffNumber(0); try { 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); } }