Many of you know that my wife spends a good deal of her time studying the ways in which immigrant, refugee, and minority language learners acquire a new language differently than for those who grow up learning it in school. In this post, I am publishing instructions on how to install a piece of software, called DMDX, on a Macintosh computer with the hopes of making it easier for researchers like her to take advantage of this tool without further adding to its already long list of hassles.
If you are unfamiliar with DMDX (which you probably are unless you searched specifically for it and came to this post), it’s a very old and proprietary piece of software designed to record a test-taker’s response time to preprogrammed stimuli. For example, one could perform a study to determine how lack of sleep impacts our ability to think by timing how long it takes for someone to answer whether a given word on the screen is a US state or not. Amanda is using it currently to understand the relationship between image quality in textbooks and learner comprehension.
Why is there a whole blog post about this?
DMDX is archaic. Because its source code isn’t available I can’t make any comments on the quality of its internal programming, but the user-facing side of this project is riddled with quirky traditions and clumsy design. Mainly, DMDX is so difficult to work with that there a small crowd saturated with institutional knowledge about the product which unfortunately won’t translate into other systems.
My primary goal here today is limited to installing and running DMDX on OS X, presumably to run on a MacBook-family laptop. My wife was simply told that it won’t run on Macs, that if she wanted to do that she would have to install Windows on her Mac computer.
If you have wanted to run DMDX on your Mac, follow these steps and you should be ready to go!
We will setup DMDX through the incredibly useful Wineskin project, which is a suite of tools built around an open-source tool originally meant to allow Windows-based programs to run on Linux. Wineskin bundles up each app into its own isolated environment.
If you want to skip ahead, you should be able to download my pre-built Wineskin bundle and run DMDX from it directly without any further configuration.
Manual Installation
Step 1 – Create the Wineskin wrapper
- Install the Wineskin Winery application.
- Run the application and click on Create New Blank Wrapper
- When it asks for a name, you can give it any name. I have chosen DMDX
- My installation process asked if I would want to install a Gecko library.
This is not needed for DMDX and you can safely click on Cancel
- After it finished creating the wrapper, it will tell you. You can close out of Wineskin Winery now.
Step 2 – Install DMDX
There are a couple of different approaches we could take here at this point. I have chosen to copy all of the DMDX files into the wrapper and install from there. This is my recommended approach because it can simplify the process.
- Download the DMDX.ZIP file from the DMDX downloads page.
- Find the Application folder in your Mac user directory and open the Wineskin directory. For me, this is in `/Users/dmsnell/Applications`
- To install DMDX, we will need to right-click on the DMDX icon and select Show Package Contents. This will instruct Wineskin to open up the configuration view instead of running its default application.
- Double-click on the Wineskin app inside that folder and click on Install Software. We will then choose Copy a Folder inside and find the copy of DMDX we just downloaded. Mine was in my Downloads folder.
- When it asks to choose an executable, let it keeps its default guess of DMDX installer.msi. If that’s not what it picked, see if you can select it from the dropdown menu. Next, hit Ok.
- While we’re in this utility, we should setup the screen settings. DMDX has some particular needs for the video system and because of the way Wineskin runs the application, we will need to choose some good overrides. You can match the settings in the picture below.
- Finally, let’s click Done and then go to the Advanced button. In these advanced settings, click the checkbox for Use Start.exe then click Test Run. This will start the installation and you can proceed per the installer’s directions. When it finishes and a dialog appears asking to view a log, you can safely click on cancel.
Step 3 – Configure DMDX to run as the default Wineskin app
DMDX is now installed in our wrapper, but we need to update the settings to run it instead of the installer which we just ran.
- Back in the Advanced panel, click on the Browse button next to the line for Windows EXE. You should find the DmDX program under Program Files\DmDX\DmDX.exe.
- DMDX nominally requires running some benchmarks on your computer to calculate timing values, but for this version, we will be using the “newer” auto feature and have it try and go without the prior calibration. Add “-auto” to the EXE Flags field.
- Congratulations! You’re ready to go.
Step 4 – Run DMDX
Back in the Wineskin directory in the Applications folder, you should now be able to simply double-click on the DMDX icon and it should start up as it would on a Windows-based computer.
In order to run files, they will need to be accessible inside of that wrapper. You can open it up again by right-clicking and selecting Show Package Contents like was done earlier in this process, find the DMDX directory, then right-click on it to create an alias, finally dragging that alias file onto your Mac Desktop or Documents or whichever folder is most convenient for you. Drop a file in that aliased folder, run DMDX, then tell it to load your item file. The rest is on you!
Hi Dennis, really appreciate this, I’m about to do my first dmdx experiment and have been frustrated by the fact I can’t run it on my Mac. Will try this out.
LikeLiked by 1 person
Hi Mike, I hope this helps! Feel free to post any questions you might have trying to get it running.
LikeLike
Hi Dennis, thank you for providing this. Everything works until I want to get my script running. I don’t understand the last step of your instructions: my interpretation is that I need to put my script in the DMDX directory which is inside the wrapper I create? Tell me if I misunderstand it. Thanks!
LikeLiked by 1 person
Thanks for the comment, River! You’re right; the DMDX item file will need to reside _inside_ the wrapper. DMDX doesn’t have any access outside of that container into your computer.
LikeLiked by 1 person
This is very useful, thanks! but I tried to use the script I used on Windows on Wineskin, its just weird , like the timing and the keyboard don’t work.
I used right Ctrl and left Ctrl before so I changed them into left and right Alts , but it just doesnt work!! its driving me crazy!
LikeLiked by 1 person
Thanks for the comment @ching! This certainly doesn’t come with any guarantees and things are sure to break, but the point is to show how DMDX can be run in a Mac Environment, something which can be very useful during the experiment design process.
As for the control keys you might try and see what you can do by remapping keys in MacOS. For example, I have remapped my caps lock key to behave as if it were a control key.
Best wishes with your experiments!
LikeLike
Hi Dennis! Thank you for posting this wonderful step-by-step explanation; it’s incredibly helpful! I was able to install DmDX with the wrapper and get it running but I keep coming up with an DEVICENOTREG error… my understanding is that this is because it realizes the application is not on a registered Windows device (aka a Mac, in this case). Any thoughts on a solution? Thanks!
LikeLiked by 1 person
Thanks for the feedback Nick! I don’t remember any such error when I was working with it. Will it not move forward from that point when it raises the error? What version of DMDX are you running? What version of WINE are you using?
LikeLike
Hi Dennis, same problem here. No it will not move forward. Once you click OK it just waits for another run. Wineskin ver 2.6.2, DMDX ver. is the Aug 24 2017 one from the current download page. Any help is appreciated.
LikeLiked by 1 person
Not sure what’s happening here. I don’t have the spare cycles to debug this but I’m guessing it’s related to something specific in the configuration. When I got it working the first time there were some quirks I had to get through by trial and error.
We might be able to play around with some of the settings, particularly the USB settings. I couldn’t find the same error message in a quick internet search.
Please do let me know if you find out more about this or are able to work around it. This post has gotten much more traffic than I anticipated so any help here will benefit many other researchers!
LikeLike
Hi Dennis,
Many thanks for putting this together. We have a researcher that is quite eager to make use of it 🙂
Would it be possible to upload the bundle anew? The download has been disabled it seems.
Thanks in advance,
P
LikeLiked by 1 person
Hi Dannies! Thank you for posting this! But I got the error report like this when I click on “Test Run” in move 7 step 2, it said “tried to run command debug when the wrapper was already running. Please make sure the wrapper is not running in order to do this.” My MacBook didn’t run anything and I restart my computer then try again, but it doesn’t work and gives me the same error feedback in the same step. Any solutions on this? Thank you!
LikeLiked by 1 person
Thanks for asking, ZX Shen. I’m not sure what could cause that problem other than maybe something is trying to run itself. Sadly I’m unable to keep this all up-to-date but maybe in the next month or two I will try to recreate the experience with the newest versions of the wrapper and re-post. This has turned out to be a popular post, so I want to honor that as best I can, but my time is limited.
LikeLike
OMG, I briefly had to contend with DMDX when I worked in a psych lab as the gun-for-hire dev. One of the most idiosyncratic pieces of software I’ve ever come across!
LikeLiked by 1 person