off = CeciliaLib.getDisplayOffset()[i]
        dispsize = CeciliaLib.getDisplaySize()[i]
        Xbounds = [off[0], dispsize[0]+off[0]]
        Ybounds = [off[1], dispsize[1]+off[1]]
        if pos[0] >= Xbounds[0] and pos[0] <= Xbounds[1] and pos[1] >= Ybounds[0] and pos[1] <= Ybounds[1]:
            position = pos
            screen = i
            break
    dispsize = CeciliaLib.getDisplaySize()[screen]
    if size == None:
        newsize = (dispsize[0]/2, dispsize[1]-50)
    elif size[0] <= dispsize[0] and size[1] <= dispsize[1]:
        newsize = size
    else:
        newsize = (dispsize[0]/2, dispsize[1]-50)

    ceciliaEditor = CeciliaEditor.CeciliaEditor(None, -1, pos=position, size=newsize)
    CeciliaLib.setCeciliaEditor(ceciliaEditor)
    try:
        CeciliaLib.queryAudioMidiDrivers()
    except:
        pass
    if file: 
        ceciliaEditor.Layout()
        ceciliaEditor.onOpen(file)
    else:    
        ceciliaEditor.Show(True)
            
    app.MainLoop()