First of all, runtime v1 does not support mouse as a behavior tracker. If you have to use mouse, I guess you can get mouse input with mouse_position() and process it yourself. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#mouse_position Touchscreen and mouse are very different devices. Whether you use runtime v1 or v2, it is currently not possible to run touchscreen-based tasksby Jaewon - Questions and Answers
You should ask the question of NI support. If you don't know what other components of the NI-DAQmx driver are disabled/damaged, try uninstalling and reinstalling it.by Jaewon - Questions and Answers
Yes, I used a DP-to-VGA adapter. I did not see any problem, using the adapter.by Jaewon - Questions and Answers
Maybe the monitor configuration has changed due to driver update or new hardware. This is a matter between Windows and your monitors, so you just have to try different configurations, for example, by plugging the monitors to different ports, making a different monitor the main display or rearranging their relative positions.by Jaewon - Questions and Answers
"1 DAQ board" does not necessarily mean an NI board. It can be a sound card. To see what types of boards are available, try the following commands. >> info = daqhwinfo; >> info.InstalledAdaptors ans = 3×1 cell array {'nidaq' } {'parallel'} {'winsound'} To see if your NI board is installed correctly, run NI MAXby Jaewon - Questions and Answers
For example, is it only NIMH ML that you have changed? Is there any change in the hardware? Your latency test does not look good, so it is not the script that is a problem. Try changing the main display as suggested in the manual. https://monkeylogic.nimh.nih.gov/docs_MonitorSetup.htmlby Jaewon - Questions and Answers
Unlike native Windows applications, MATLAB figures do not get "new device" notifications. After plugging USB devices (DAQ, joystick, webcam, etc.) and audio endpoint devices (speakers, headphones, mic, etc.), you need to restart NIMH ML (not the computer nor MATLA or click the refresh buttons.by Jaewon - Tips
You did not provide enough information. There hasn't been any change that may affect screen updates. Does the latency test look okay? Did you run in the simulation mode?by Jaewon - Questions and Answers
wth2 is supposed to return the RT measured from the start of wth2, so this is my mistake. Please update your NIMH ML. Thank you for letting me know this.by Jaewon - Questions and Answers
Maybe I was not clear. Changing the labels is modifying the timing script function, which will make your script incompatible with future releases. So what I meant was to use just numeric error codes in the task script and convert them to string labels of your own later. However, I got an idea how to avoid the incompatibility issue. Now you can register your own labels with the trialerror functby Jaewon - Questions and Answers
The string error codes of trialerror() are just nominal labels. There is nothing that prevents you from putting your own labels on the numeric codes. Modifying the timing script functions is not recommended, since it will make your scripts incompatible with future releases.by Jaewon - Questions and Answers
See this manual page. https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#AdapterAggregatorsby Jaewon - Questions and Answers
See the example in the ComplementaryWindow manual. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#ComplementaryWindow You just need to change SingleTarget to MultiTarget in the example. The scene will stop if there is no touch for wth.WaitTime (5000 ms).by Jaewon - Questions and Answers
You can play different sounds from different speakers. You need only one sound card. The number of speakers you can add is dependent on the sound card. If your card supports 5.1 channels, then you can add up to 6 speakers and, if it is a 7.1 channel one, up to 8. To send different sounds, just fill each channel with different sounds. For example, the following code will play a noise only frby Jaewon - Questions and Answers
Re: tobii sdk integration - 5 years agoAs I mentioned above, you need to let me borrow your eye tracker first so that I can test with it. You can use any existing MATLAB function in the ML timing script, so I don't understand why you can't do something you already have done in MATLAB.by Jaewon - Questions and Answers
I fixed it. Please install new packages. Sorry for the inconvenience.by Jaewon - Questions and Answers
* Changes in 2.2.2 (Oct 8, 2020) + The stability of sound playback in WASAPI Exclusive is improved. + A button for reloading the device list is added to the I/O submenu and the Other device settings menu. There is no need to restart NIMH ML when new hardware is plugged in. - The timestamp inserted in the formatted filename is determined when the run button is clicked. (Thaby Jaewon - News
You are right about the timestamp added to the filename. The time should be determined when the run button is clicked. To make it so, add one line of code to Line 816 (or somewhere around it) of monkeylogic.m like the following. Line 816: if ~datafilename_manually_typed, MLPath.DataFile = MLConfig.FormattedName; end Line 817: datafile = ; Line 818: if 2==exist(datafile,'fileby Jaewon - Questions and Answers
Plug them in and see if they show up in the menu. If they don't, they are not supported by NIMH ML. For cameras not supported, I do not know what initialization process is required and how long it takes. So it is entirely up to you how to control the cameras and sync timestamps. ----- See alert_function for placing the initialization code. https://monkeylogic.nimh.nih.gov/board/read.by Jaewon - Questions and Answers
It is the manual of your recording system that you should check. Find out what kind of input your recording system requires first. You shouldn't just try all strobe options. You did not mention what your recording system is. And this does not make any sense to me: "By lab legacy recommendation, I have strobes A/B wired together. "by Jaewon - Questions and Answers
* Update on Mar 28, 2025 When monkeylogic_cfg2.mat exists, certain I/O settings are always loaded from and saved to this file, starting with version 2.2.50 (March 28, 2025). Previously, this file was not read if a task-specific configuration file already exists, making it ineffective for updating existing config files with new hardware settings. A green bar displayed on the I/O menu indicatesby Jaewon - Tips
It is not that modifying the original code is going to cause huge problems, but, when you do it, you are responsible for your own modifications. That's only fair.by Jaewon - Questions and Answers
I don't see the relevance of "Total # of trials to run" to what you want to do. Please explain what you are trying to do.by Jaewon - Questions and Answers
If you interpret my words as an indication that the control screen and the subject screen should have the same refresh rate, it is a misunderstanding. Although NIMH ML renders the same graphic on both screens, only the subject screen is updated in synchrony with the refresh rate. The control screen is not. Therefore, they do not need to have the same refresh rate. The reason that your currentby Jaewon - Questions and Answers
data.AnalogData.Eye is transformed by the calibration and represented in degrees. When calibration is needed, the "raw data" from the eye tracker is usually meaningless numbers with an arbitrary origin, so there is no point of storing the raw data. I am not going to explain my code, just because it is not understood. I don't have time for that. You are on your own, if you want tby Jaewon - Questions and Answers
Sorry. That does not give me much to test with. Try a different video resolution or the latest NIMH ML.by Jaewon - Questions and Answers
This is the new version that supports Windows 10 and 64-bit MATLAB only. If you don't see new links in the "Download" page, please reload/refresh the page. * Changes in 2.2.1 (Aug 28, 2020) + Codes for old MATLAB versions and 32-bit libraries are removed for better performance. + Visual feedback is automatically disabled when touching the screen. + The minimum buby Jaewon - News
Thanks for letting me know this. It will be fixed soon.by Jaewon - Questions and Answers
MonkeyLogic Graphics Library (MGL), as well as NIMH DAQ Toolbox, is the backbone of NIMH ML and certainly able to present graphic objects on only one screen or both, by changing the device (or screen) number. However, NIMH ML is hard-coded to use both screens, so there is no way to present "TaskObjects" on the control screen only. It is up to you to call MGL functions directly to add yoby Jaewon - Questions and Answers
You cannot use a variable name in the function string which is a char array. Replace sdmMatrix with its value, like sprintf('SDMM_port(%d)',sdmMatrix), as shown in the example. Please describe every single detail, as I asked above, from the first time.by Jaewon - Questions and Answers