package jmsltestsuite; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import com.softsynth.jmsl.JMSLRandom; import com.softsynth.jmsl.MusicShape; import com.softsynth.jmsl.util.EventDistributions; import com.softsynth.jmsl.util.Oof; import com.softsynth.jmsl.view.MusicShapeEditor; public class ShapeEditorTest { /** Build a 4 dimensional shape and add it to a Shape Editor */ public static void main(String args[]) { JMSLRandom.randomize(); MusicShape s1 = new MusicShape(4); int numEls = 50; for (int i = 0; i < numEls; i++) { s1.add( i, numEls - i, 100 + JMSLRandom.choosePlusMinus(4), EventDistributions.genEntryDelayMyhill(4.0, 2.5) * 100); } s1.setDimensionName(0, "Time"); s1.setDimensionName(1, "Pitchbend"); s1.setDimensionName(2, "Jitter"); s1.setDimensionName(3, "Entry Delay"); MusicShape s2 = new MusicShape(4); numEls = 650; Oof oof = new Oof(8); for (int i = 0; i < numEls; i++) { s2.add( JMSLRandom.choose(), 100 + JMSLRandom.choosePlusMinus(i), EventDistributions.genEntryDelayMyhill(4.0, 1.01), oof.next()); } s2.setDimensionName(0, "Random 0..1"); s2.setDimensionName(1, "100 +- "); s2.setDimensionName(2, "Myhill Dist."); s2.setDimensionName(3, "1/F noise (8 bit)"); MusicShape s3 = new MusicShape(1); for (int i = 0; i < 10; i++) { s3.add(JMSLRandom.choose()); } MusicShapeEditor se = new MusicShapeEditor(); se.addMusicShape(s1); se.addMusicShape(s2); se.addMusicShape(s3); Frame f = new Frame("Close to Exit"); f.add(se.getComponent()); f.pack(); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.setVisible(true); } }