public void setup() {
		String title = "TimeLine";
		thisFrame = new JFrame(title);
		thisFrame.add(this, BorderLayout.CENTER);
		thisFrame.setSize( screenWidth+BORDER_WIDTH, screenHeight+BORDER_HEIGHT ); // set window to appropriate size (for its elements)
		thisFrame.setLocation(new Point(300,800));
		thisFrame.setVisible(true); // usual step to make frame visible
		
		thisFrame.addWindowListener(new TLWinAdapter(this));
		
		if ("/".equals(File.separator)) { isUnix=true;}
		// want to remove this fairly soon 
		if (isUnix) {
			midiDeviceNames=new String[] {"OSCMIDI:0","PCR","BCF2000"};
		}
		
		fileUtil.parseConfig();
		
		
		dynCompiler = new DynCompiler(
			this.dataFilePath,
			this.additionalClassPath
		);//E:\\processing\\TimeLine\\classes
		
		fileUtil.parseMidiControlMaps();
		midiWin=new MIDIWindow(this);
		midiUtil.initMidi();
		
		debugWindow = new DebugWindow( this);
		debugWindow.init();
		
		noteWindow = new NotesWindow(this );
		logWindow = new LogWindow( );
		
		fileUtil.loadData(); // loads last data
		
		
		dynCompiler.setReCompLsntr(new RecompLstnr());
		addStandardObjects();
		println((new File(".")).getAbsolutePath());
		initOsc();
		timeFormat=new SimpleDateFormat("mm:ss.SSS");
		timeLineObject = new TimeLineObject(this);// default to first osc port.
		timeLines=new Vector();
		timeLineIndex=0;
		timeLines.add(timeLineObject);
		//smooth();
		//frameRate(FRAME_RATE);//processing -154
		framerate(FRAME_RATE);
		size (screenWidth,screenHeight);
		background(0f);
		
		eventSelectorVector=new Vector();

		this.addMouseWheelListener(new InputHelpWheel());
		
		initLog();
		timerStart = new Timer();
		startTimer();
		guiTimerStart = new Timer();
		startGuiTimer();
		
		topBarDraw=new TopBarDraw(screenWidth, 10,0,0);
		inputBarDraw=new InputBarDraw(screenWidth, 20,0,10);
		buttonsDraw=new ButtonsDraw(screenWidth, 50,0,30);
		TimeLineDraw timeLineDraw=new TimeLineDraw(screenWidth, 100,0,80 , this.timeLineObject);
		timeLineDisplays.add(timeLineDraw);
		timeLineSelection.add(timeLineObject);
		timeLineDraw.setTimeLineObj(timeLineObject);
		tlBound = new TimeLineBounds(screenWidth,screenHeight,0,0);
		tlBound.addBoundedObject(topBarDraw);
		//tlBound.addBoundedObject(timeLineDraw);
		tlBound.addBoundedObject(inputBarDraw);
		tlBound.addBoundedObject(buttonsDraw);
		boundsChangeHandler = new BoundsChangeHandler();
		tlBound.setChangeListner(boundsChangeHandler);
		// have to add this after tlBpound to stop np
		thisFrame.addComponentListener(new WindowResizeHandler());
		
		popupWindowDraw=new PopupWindowDraw(300, 100, 0, 80);
		
		//slidersDraw=new SlidersDraw(300, 100, 0, 80);
		
		fc=new JFileChooser();
		fc.setMultiSelectionEnabled(false);
		fc.setCurrentDirectory(new File(this.dataFilePath));
		cc=new JColorChooser();
		
		filters=new HashMap();
		
		setup=true;
		setTitle(fileName);
		
		controlHelper = new ControlHelper(this);	
		controlHelper.setOkAction(new ControlHelperActionListener());
		noteHelper = new NoteHelper(this);	
		noteHelper.setOkAction(new NoteHelperActionListener());
		exprGetHelper = new ExprHelper(this,true);	
		exprGetHelper.setOkAction(new ExprHelperActionListener());
		exprSetHelper = new ExprHelper(this,false,false);	
		exprSetHelper.setOkAction(new ExprHelperActionListener());
		propHelper = new PropertiesHelper(this);
		
		// interface
		interfaceBuilder = new InterfaceBuilder(this);
		interfaceReader = new InterfaceReader();
		
		
		
		numberScrollingUtil = new NumberScrollingUtil(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				cursorPos = e.getModifiers();
			}
		});
	}