You can present a PTB window across a multi-monitor display, albeit it's an absolute pain the butt. On a Mac multi-monitor arrangement, you can call Screen() and request a resolution spanning the whole 'virtual' display (e.g. two 1280×800 monitors arranged horizontally means a virtual display resolution of 2560x800). See here for a Windows solution.
Psychopy should also be able to handle multiple monitors, although I haven't tested myself.
For Python there are packages like PsychoPy and Expyriment. I never used them but it seems they provide just what you need.
I was just about to say that it isn't feasible to do this in a month, but I took a look at the documentation for Psychopy, and it has a "Builder" interface that might work perfectly for you:
> Builder view. For those that prefer not to program, and for those new to Python, you can generate a wide range of experiments easily from the Builder. This has an intuitive, graphical user interface (GUI). You can always export your experiment to a script for fine-tuning, and this might be an ideal way for experienced programmers to learn the syntax of python.
You could get the majority of it done this way. I wouldn't jump into any books until you try this out and see if it's capable of creating what you want. Trying to learn everything you need in just a little over a month to script this without the tool just doesn't sound reasonable to me.
I'd install the program first, launch the Builder View and follow along with the documentation and see if you could use the tool to do the job. This would save you a large amount of time. With the script exported from this tool and a minimal amount of python scripting knowledge (read the python documentation later to learn what you need), you should be able to do this by your stated time constraint.
You can take a look at PsychoPy (Python; http://www.psychopy.org/) or TScope (C; http://users.ugent.be/~masteven/tscope/introduction.html). There is also DMDX (http://www.u.arizona.edu/~kforster/dmdx/dmdx.htm), which is very easy to use. Good luck with your experiment!
There are other python tools that make creating and running experiments pretty easy while remaining free, open-source, and/or well-supported. I like PsychoPy just for ease of use for students that have minimal programming experience and who rightly find e-prime frustrating, and there's also OpenSesame which can integrate psychopy as well as link up with the API used by SR Research's Experiment Builder for their eyetracker. And for completeness I should mention pyepl as an early attempt at this that I believe started around the same time as PEBL, but it's hardly been updated for 10 years.
E-Prime and Matlab can suck it.
Do you know MATLAB already? That's the most common language used in psych research, although Python is also used by quite a few researchers. PsychoPy is a nice alternative to E-Prime, for instance.
http://www.psychopy.org/general/units.html
See the 'Height Units' section. You should be able to specify the size or location of stimuli this way and have it scale with monitor resolution. You could also try normalized units, though this won't maintain stimulus shape if the aspect ratio changes. If this doesn't help, feel free to message me with an example.
Sounds like you have it figured out already and it's just busywork left, but in case you need it, here's a paper with some useful math regarding calibration and lots of references you can chase down, and you also might want to look into psychoPy's calibration functions, it's open source.
I took a closer look at the PsychoPy documentation and turned up this example of terminating a loop early. It looks like you're on the right track; you'll need to add a Code Component, probably set to execute at the End of the Routine, and use the bits of code as you posted them.
Note that you may need to change your variable names to match what's in your actual script. The documentation suggests that you compile what you have so far so you can identify the appropriate variables (for image_chosen, CorrectAns, my_inner_loop_name, etc.)
Hope this helps,
Except that it has been. Psychopy. The folks over there work hard at trying to displace psych toolbox. The reason it's slow going is not just because it works and is validated (albeit that is very central to it). It's because change and turnover don't happen unless people unfamiliar with the entrenched tech have a choice and get to choose the better one (ref. The homogenization of scientific computing, or why Python is steadily eating other languages’ lunch), or the new option is so much better than people are forced to change in order to stay relevant (ref. deep learning).
It'll happen. Eventually. There's no way I'm going to be the one to instigate it. I'm a 5th year phd. I barely have enough emotional energy to answer the phone.
PsychoPy should definitely be on there. It's primarily designed for psychophysical testing but is flexible enough to be adapted for a lot of different things. It also has compatibility with quite a large variety of hardware e.g. photometers, eyetrackers, button boxes, etc.
i'm envious, i wish my education had introduced me to more languages and software. your experience with software and programming will score you a lot of points, make sure to emphasize it. MATLAB is becoming very popular in cognitive science for a variety of applications.
also, since you're familiar python, check out PsychoPy. one day could become incredibly useful for you if you start doing psych research. saying you can design computerized studies would be huge. being proficient in NumPy and matplotlib will bring aspects of your research to the next level.
no prob for the help, cheers.
I use eprime, which as others have noted, isn't cheap. There's also a demo-version of eprime. I'm not sure how it's limited (i.e., time or functionality), but you might still be able to use it.
However, one of my students uses and recommended PsychPy. He said it could do everything (and more) that eprime can do, but that the programming experience is significant. My sense is that if you want something free, you'll have to bite the bullet and learn the programming.
I believe PsychoPy wraps pyglet to produce sounds. As Notnasiul mentioned, you should be careful with timing. The good news is that it's not too hard to measure with a videocamera, etc!