private void createControlWindow()
	{
		final JFrame				win;
		final Container				cp;
		final JPanel				p;
		final GridBagLayout			lay		= new GridBagLayout();
		final GridBagConstraints	con		= new GridBagConstraints();
		final JToolBar				tb;
		final JToggleButton			ggPlay;
		
		win = new JFrame( "Moto Rev Ctrl" );
		win.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
		win.addWindowListener( new WindowAdapter() {
			public void windowClosed( WindowEvent e )
			{
				if( server != null ) {
					try {
						if( server.didWeBootTheServer() ) server.quitAndWait();
						else if( synth != null ) synth.free();
					}
					catch( IOException e1 ) {
						System.err.println( e1 );
					}
					synth	= null;
				}
				System.exit( 0 );
			}
		});
		
		cp = win.getContentPane();

		p	= new JPanel( lay );
		p.setBorder( BorderFactory.createEmptyBorder( 4, 4, 4, 4 ));
		ezs	= new EZSlider[ ctrlNames.length ];
		con.gridwidth	= GridBagConstraints.REMAINDER;
		con.weightx		= 1.0;
		con.fill		= GridBagConstraints.HORIZONTAL;
		con.insets		= new Insets( 2, 2, 2, 2 );
		for( int i = 0; i < ctrlNames.length; i++ ) {
			ezs[ i ] = new EZSlider();
			ezs[ i ].setControlSpec( ctrlSpecs[ i ]);
			ezs[ i ].setLabel( ctrlNames[ i ]);
			ezs[ i ].setValue( ctrlSpecs[ i ].getDefaultVal() );
			lay.setConstraints( ezs[ i ], con );
			p.add( ezs[ i ]);
			new ControlListener( ezs[ i ]);
		}
		
		tb = new JToolBar();
		tb.setBorderPainted( false );
		tb.setFloatable( false );
		ggPlay = new JToggleButton( ">" );
		ggPlay.setFont( new Font( "SansSerif", Font.PLAIN, 36 ));
		tb.add( ggPlay );
		ggPlay.addActionListener( new ActionListener() {
			public void actionPerformed( ActionEvent e )
			{
				if( server != null ) {
					if( synth != null ) {
						try {
							synth.free();
						}
						catch( IOException e1 ) {
							reportError( e1 );
						}
						synth = null;
					}
					if( ggPlay.isSelected() ) {
						createSynth();
					}
				}
			}
		});
		
		cp.add( p, BorderLayout.CENTER );
		cp.add( tb, BorderLayout.WEST );
		
		EZSlider.align( ezs );
		
		win.pack();
		win.setLocationRelativeTo( null );	// center on screen
		win.setVisible( true );
	}