/* * Created on Nov 11, 2012 by Nick * */ package jmslexamples.jsyn2; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JLabel; import com.didkovsky.portview.swing.ViewFactorySwing; import com.jsyn.swing.JAppletFrame; import com.softsynth.jmsl.EventScheduler; import com.softsynth.jmsl.Instrument; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.JMSLMixerContainer; import com.softsynth.jmsl.MusicShape; import com.softsynth.jmsl.jsyn2.JSynMusicDevice; import com.softsynth.jmsl.jsyn2.JSynUnitVoiceInstrument; import com.softsynth.jmsl.view.MusicShapeEditor; public class JSyn2MusicShapes extends JFrame { JMSLMixerContainer mixer; Instrument instrument; MusicShape musicShape; public void start() { initJMSL(); initMusicDevices(); buildMixer(); buildInstrument(); buildMusicShape(); buildMusicShapeEditor(); launchMusicShape(); } private void initJMSL() { JMSL.setViewFactory(new ViewFactorySwing()); JMSL.clock.setAdvance(0.1); } private void initMusicDevices() { JSynMusicDevice dev = JSynMusicDevice.instance(); dev.open(); } private void buildMixer() { mixer = new JMSLMixerContainer(); mixer.start(); } private void buildInstrument() { instrument = new JSynUnitVoiceInstrument(8, com.jsyn.instruments.SubtractiveSynthVoice.class.getName()); new MusicShape(instrument.getDimensionNameSpace()).print(); mixer.addInstrument(instrument); } protected void buildMusicShape() { // musicShape = new MusicShape(instrument.getDimensionNameSpace()); musicShape = new MusicShape(4); musicShape.useStandardDimensionNameSpace(); musicShape.setInstrument(instrument); musicShape.prefab(); for (int i = 0; i < musicShape.size(); i++) { musicShape.set(0.25, i, 0); musicShape.set(0.70, i, 2); musicShape.set(0.20, i, 3); } musicShape.print(); musicShape.setRepeats(10000); } private void buildMusicShapeEditor() { MusicShapeEditor se = new MusicShapeEditor(); se.addMusicShape(musicShape); add(se.getComponent()); } private void launchMusicShape() { musicShape.launch(JMSL.now()); } public static void main(String[] args) { JSyn2MusicShapes demo = new JSyn2MusicShapes(); demo.start(); demo.pack(); demo.setVisible(true); demo.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { JMSL.closeMusicDevices(); System.exit(0); } }); } }