Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

OpenSesame 0.27.1 for OS X available

edited March 2013 in OpenSesame

After a long wait, the new version of OpenSesame is finally available as an app for OS X! There are a few 'buts' though...

  • There is a 64-bit and a 32-bit version available. Initially I simply started with building the 64-bit version, but I just couldn't get the psychopy backend to run on this architecture. Therefore, I started from scratch and rebuilt the whole Python environment in 32-bit using MacPorts. I got psychopy to work on there, but somehow I have the feeling the 32-bit version runs less stable and is less 'snappy' (I do not have concrete evidence for this at all though, so it might just have been my lack of sleep speaking... certainly do give the 32-bit version a spin)

  • I built both 32 and 64-bit versions on Mountain Lion macs, as I had no machines available running on older versions of OS X . Sadly, upon initial tests OpenSesame did not seem to run on macbooks having pre-ML installs (<10.8) and gave some vague error messages that can be traced back to Apple's decision to shift around with some file locations in the /System/ folder. Until I find a machine with an older version of OS X on which I can rebuild the apps, there's nothing I can do to change this. Alternatively, if there is someone who has a mac running on a pre-10.8 version of OS X and who is up to the challenge of building the required source environment, he or she could try to make an app using py2app with the setup-mac file found at https://github.com/smathot/OpenSesame/blob/master/setup-mac.py. We can then put this app online for everyone to use.

  • the media_player_vlc plugin does not work with the pygame or expyriment backend, due to a bug in pygame on OS X: The plugin needs to know the id of the window to show the video in and pygame is not able to supply this. The plugin should work with the psychopy backend, but I've not come to testing this at all.

  • I'm still working on compiling pymedia, which is required for the sound_recoder plugin, but had no luck thusfar. I'll keep you posted about this.

I will be watching this thread, so if you find any OS X related bugs, please post them as a reply below and we will find an appropriate place for them in the issue tracker.

I hope this new version works well for everyone and solves most of the problems bugging the old version!

Comments

  • edited March 2013

    Great news, thank you for putting so much effort in it!

    I have had only time to give the two versions a quick test run with the example experiments. I run 10.8 only here, too. I can confirm your impression that the 64bit-version runs snappier. It seems to me, that this is even noticeable by naked eye. The "Ecological Alternative" example experiment runs way smoother and faster.

    In the 32bit-version online help and in-application help as well as the OS-info button do not run. However, they are fully functional in 64bit-version.

    Cheers,
    Johannes

  • edited March 2013

    Hi Absurd,

    Thanks for your help testing these packages. Could you try running the 32-bit version from the console in the following way?
    Browse to the folder where the app is located and run OpenSesame by typing

    opensesame.app/Content/MacOS/opensesame
    

    Then click on the online and in-app help buttons again and tell me what you see printed in the console (if they cause an error, they should print a stacktrace). I had this error before too, and that was because the QNetwork package wasn't included in the app. I did so after, so I wonder what the cause of this error is this time. I'll try to run some tests on this myself on Tuesday.

    Cheers!

  • edited 3:25PM

    Hi dschreij,

    Here is the terminal output. First I clicked the in-app help, then online help, then the info menu item:

    
    2013-03-30 09:20:59.780 opensesame[439:707] _createMenuRef called with existing principal MenuRef already associated with menu
    2013-03-30 09:20:59.781 opensesame[439:707] (
        0   CoreFoundation                      0x94bede9b __raiseError + 219
        1   libobjc.A.dylib                     0x93c2252e objc_exception_throw + 230
        2   CoreFoundation                      0x94b4d61b +[NSException raise:format:] + 139
        3   AppKit                              0x973fa78d -[NSCarbonMenuImpl _createMenuRef] + 69
        4   AppKit                              0x973f9fa7 -[NSCarbonMenuImpl _instantiateCarbonMenu] + 155
        5   AppKit                              0x973f9ef9 -[NSCarbonMenuImpl setupCarbonMenuBar] + 40
        6   AppKit                              0x973f8b8f -[NSApplication finishLaunching] + 1060
        7   AppKit                              0x973f83a9 -[NSApplication run] + 196
        8   QtGui                               0x0914703e _ZneRK6QRectFS1_ + 4718
        9   QtCore                              0x09cebb36 _ZN16QCoreApplication13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE + 86
        10  QtCore.so                           0x09f8da9a _ZN19sipQCoreApplication16disconnectNotifyEPKc + 5770
        11  Python                              0x0224719e PyCFunction_Call + 78
        12  Python                              0x0229dbc0 PyEval_EvalFrameEx + 6928
        13  Python                              0x0229beea PyEval_EvalCodeEx + 1530
        14  Python                              0x022a008e PyEval_EvalFrameEx + 16350
        15  Python                              0x0229beea PyEval_EvalCodeEx + 1530
        16  Python                              0x022a267b _PyEval_SliceIndex + 1003
        17  Python                              0x0229ebdf PyEval_EvalFrameEx + 11055
        18  Python                              0x0229beea PyEval_EvalCodeEx + 1530
        19  Python                              0x0229b8e7 PyEval_EvalCode + 87
        20  Python                              0x022c09d7 PyRun_FileExFlags + 167
        21  Python                              0x022c0536 PyRun_SimpleFileExFlags + 726
        22  Python                              0x022c2078 PyRun_SimpleFile + 40
        23  opensesame                          0x000067f1 py2app_main + 2993
        24  opensesame                          0x00006f89 main + 1481
        25  opensesame                          0x00002382 _start + 216
        26  opensesame                          0x000022a9 start + 41
    )
    Traceback (most recent call last):
      File "libqtopensesame/widgets/tab_widget.pyc", line 215, in open_osdoc
      File "libqtopensesame/widgets/tab_widget.pyc", line 150, in open_browser
      File "libqtopensesame/widgets/webbrowser.pyc", line 20, in 
    ImportError: cannot import name QtWebKit
    Traceback (most recent call last):
      File "libqtopensesame/widgets/tab_widget.pyc", line 198, in open_general_help
      File "libqtopensesame/widgets/tab_widget.pyc", line 166, in open_help
      File "libqtopensesame/widgets/tab_widget.pyc", line 150, in open_browser
      File "libqtopensesame/widgets/webbrowser.pyc", line 20, in 
    ImportError: cannot import name QtWebKit
    Traceback (most recent call last):
      File "libqtopensesame/widgets/tab_widget.pyc", line 139, in open_about
      File "libqtopensesame/widgets/tab_widget.pyc", line 166, in open_help
      File "libqtopensesame/widgets/tab_widget.pyc", line 150, in open_browser
      File "libqtopensesame/widgets/webbrowser.pyc", line 20, in 
    ImportError: cannot import name QtWebKit
    

    Hope this helps.
    Cheers, Johannes

  • edited April 2013

    Thanks for this. Appararently the QtWebkit module wasn't included during packaging. I'll fix this on Tuesday and put the new .dmg online

    >>EDIT:

    It should be fixed now!

  • edited April 2013

    The 32bit runs just fine now as well, even PsychoPy works now on OS X.
    Thumbs up!

  • edited 3:25PM

    If you could be a bit more explicit, I'd be glad to attempt a build on OS 10.7.5. Right off the bat, I get the error: No such file or directory: "/opt/local/lib/Resources/qt_menu.nib"

  • edited April 2013

    Hi gllec, thanks for this info. qt_menu.nib is a file required by Qt for unclear reasons. When testing the apps, Opensesame seemed to run fine without it, but it seems that some systems still require it. I can fix this and put up a new version of the 32-bit app tomorrow (Do you get this message with the 32-bit or 64-bit version of OS 0.27?)

    As for generating the app yourself: follow the instructions on http://osdoc.cogsci.nl/getting-started/running-from-source/#macos to build the source environment in which OpenSesame can run. You can either use macports to collect all the required packages, or install them from the distributables that the developers of most software packages offer for download. if you have done this and can start opensesame from source by entering

    python opensesame
    

    in your console (be sure you are in the OpenSesame folder when doing so), If this works, you should be ready to build the app. To do so, you need to have py2app installed (https://pypi.python.org/pypi/py2app/) and then use the setup-mac.py file (which is included with the opensesame source package) to generate the package.

    You can do this by executing this command in your console:

    python setup-mac.py py2app
    

    or, if you have built from a 32-bit macports environment

    python setup-mac.py py2app --arch i386
    

    Hope this helps. If you have any further questions, please let me know!

  • edited April 2013

    gllec, I just put a new dmg (of the 32-bit version) online which includes the qt_menu.nib file. Please let me know if it works for you now!

  • edited 3:25PM

    Hi Sebastiaan, thanks for all the good work! I have a couple of bugs/problems on OSX:

    • When I close the lid of my MBP (computer goes to sleep), Open Sesame crashes
    • The vertical refresh does not work properly, when I run this test: https://www.dropbox.com/s/6a28642mquetc2e/schermtest.opensesame
      I get horizontal stripes, rather than the smooth flicker I should be getting. Results using this critical script vary depending on the back-end and the mode of presentation:

    • xpyriment: vertical refresh does not work on fullscreen (get horizontal stripes), but does work when running inside a window (odd)

    • legacy: vertical refresh seems to works but timestamps are off in legacy, so is non-preferred

    • PsychoPy: does not work at all for this script (Failed to call: openexp._canvas.psycho.init_display())

    I have observed various problems with the vertical refresh on various systems, by the way, not just on OSX. Sometimes the vertical refresh works, but results are highly inconsistent. Sometimes it will work with one particular backend on one system, but not on another, and vice versa. The vertical refresh is critical for all experiments in which timing is crucial, so would be nice if this could work consistently.

    System: Macbook pro, OSX 10.8.3, Open Sesame 0.27.1

    Thanks for your time,

    Johannes (not the same one as the previous poster ;-)

  • edited 3:25PM

    Another bug: dragging the locations to change the order of items in the experiment sequence does not seem to work in OSX.

    Johannes

  • edited 3:25PM

    I take that back, it works but you have to drop the item EXACTLY on the four-square icon...

  • edited 3:25PM

    Hi Johannes,

    Thanks for your feedback.

    Regarding the v-sync issues. This is an unfortunate consequence of the fact that OpenSesame works on a wide range of systems that have very heterogeneous configurations. It's not simply a 'bug' that one can fix, although the back-end developers (i.e. the guys behind PsychoPy and Expyriment) of course try to make things as work as consistently across different systems as possible. Fortunately, in OpenSesame you can choose a different back-end if one doesn't work properly for you, which already helps a lot if you encounter issues. See also this discussion:

    Regarding drag-and-drop. This is a usability issue, and more generally it would be nice to have more comprehensive drag-and-drop support (but this is not trivial to implement properly). Once you have the hang of it, I'm sure you'll find that it works pretty ok for now.

    Cheers!
    Sebastiaan

    There's much bigger issues in the world, I know. But I first have to take care of the world I know.
    cogsci.nl/smathot

  • edited 3:25PM

    Hi Johannes,

    Whether vsync is used is largely determined by your graphical card drivers. Many vendors offer you to force the vsync on in the control panel they offer for configuring the video card. On my system for instance, with an AMD card and Catalyst Control Center, I have a slider in which I can set when vsync should be used (Never, let application decide, always). In the settings of a system with an Intel card, I find such an option if I go to 3D > (Custom Settings) > Vertical Sync > (On/Off). I guess such an option should also be available on Mac OS X (or Linux for that matter) given that you use the proprietary (vendor) drivers for your card.

    Good luck

Sign In or Register to comment.