 
package jmslexamples.jsyn2;
import java.io.File;
import com.softsynth.jmsl.*;
import com.softsynth.jmsl.jsyn2.SamplePlayingInstrument;
import com.softsynth.jmsl.view.MusicShapeEditor;
public class SamplePlayingMusicShape {
	public static void main(String[] args) {
		final SamplePlayingInstrument ins = new SamplePlayingInstrument();
		ins.setDirectory(new File("D:/documents/JMSLScoreWork/JMSLScoreSamples")); // CHANGEME
		System.out.println("DIRECTORY: " + ins.getDirectory().getAbsolutePath());
		// ins.getMusicDevice().edit(f);
		ins.getMusicDevice().open();
		ins.addSamplePitch("kawai_k1m/guitar/gtr61.wav", 61);
		ins.addSamplePitch("kawai_k1m/guitar/gtr64.wav", 64);
		ins.addSamplePitch("kawai_k1m/guitar/gtr67.wav", 67);
		ins.addSamplePitch("kawai_k1m/guitar/gtr70.wav", 70);
		ins.buildFromAttributes();
		JMSLMixerContainer mixer = new JMSLMixerContainer();
		mixer.addInstrument(ins);
		mixer.start();
		JMSL.clock.setAdvance(0.25);
		final MusicShape s1 = new MusicShape(4);
		s1.useStandardDimensionNameSpace();
		s1.add(0.25, 59, 0.5, 0.25);
		s1.add(0.25, 59.5, 0.5, 0.25);
		s1.add(0.5, 60, 0.5, 0.25);
		s1.add(0.5, 65, 0.5, 0.25);
		s1.add(0.75, 70, 0.5, 0.25);
		s1.setInstrument(ins);
		s1.setRepeats(Integer.MAX_VALUE);
		MusicShapeEditor se = new MusicShapeEditor();
		se.addMusicShape(s1);
		java.awt.Frame f = new java.awt.Frame("JSyn2 SamplePlayingInstrument");
		f.addWindowListener(new java.awt.event.WindowAdapter() {
			public void windowClosing(java.awt.event.WindowEvent e) {
				JMSL.closeMusicDevices();
				System.exit(0);
			}
		});
		f.add(se.getComponent());
		// f.setSize(300, 200);
		f.pack();
		f.setVisible(true);
		
		s1.launch(JMSL.now());
	}
}
 
 
(C) Phil Burk and Nick Didkovsky, All Rights Reserved JMSL is based upon HMSL (C) Phil Burk, Larry Polansky and David Rosenboom.