Get a faster computer. TCP/IP input is sampled by software and therefore requires additional CPU power, while voltage input is sampled by the NI board independently of CPU. If you are not using stimuli that change every frame (e.g., movies), some skipped frames may not be critical.by Jaewon - Questions and Answers
It is an ambitious idea but will never work. With one computer, you cannot even write two word documents in parallel. Some hardware resources just cannot be shared between applications, especially when you run software that processes input/output with high precision and high accuracy, like NIMH ML.by Jaewon - Questions and Answers
When four targets are presented, set a fixation window around the center where the subject is looking. Once the fixation is broken (i.e., a saccade is initiated), then set multiple windows around the targets. Since you now know that the saccade is already initiated, you can set a very short WaitTime, like 50 msec, that is long enough for one saccade but not for double saccades.by Jaewon - Questions and Answers
You should use tabs, not spaces, to separate columns in the conditions file. Please read the manual. https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#ConditionsFileby Jaewon - Questions and Answers
Change the shape of the eye tracer to something other than 'Line' in the main menu.by Jaewon - Questions and Answers
It is an intended feature in order to display the last scene of a trial through the inter-trial interval. If you don't turn off stimuli explicitly, they stay on the screen until the next trial begins. To turn off all stimuli, use toggleobject (if you are using Timing Script v1). toggleobject(1:length(TaskObject), 'status','off'); If you wrote the script in Timingby Jaewon - Questions and Answers
I don't understand what you meant by "as part of an adapter chain", but I guess it is the userloop function that you want. You can create different objects at different locations each trial by manipulating the TaskObject list ("C"). https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#Userloop C = { 'fix(0,0)', ... sprintf('pic(%s,0,0)',samby Jaewon - Questions and Answers
What editable() accepts is the name of the variable, so the manual was mistyped obviously. Thanks for letting me know.by Jaewon - Questions and Answers
* Changes in 2.2.8 (Feb 7, 2021) + The installation of DirectX End-User Runtime is not required anymore. Note: v2.0 still requires the installation of the DirectX runtime. + A new function, convert_format, is added. It rewrites data files from one format to another. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#convert_format - An error that occurred when multipleby Jaewon - News
Thanks for letting me know this. The issue is fixed now. Please download the new packages.by Jaewon - Questions and Answers
Please download the package again and update your NIMH ML. You can convert from any one format to any other format. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#convert_formatby Jaewon - Questions and Answers
* Changes in 2.2.7 (Jan 27, 2021) + Selected values in the signal type, I/O boards, Subsystem and Ch/Ports panels are not reset to the first value when the button is clicked. This makes it easy to assign other signal types subsequently. + DIO lines can be configured for input or output individually, even though they are in the same port. Since it is not programmatically detecby Jaewon - News
Do not turn on the simulation mode.by Jaewon - Questions and Answers
I have nothing to suggest. You should talk to the projector maker.by Jaewon - Questions and Answers
Hi Seth, I was wrong. The "task\runtime v2\18 multi-input tracking 2" task was fine as it was. What you needed was a way to hide the mouse cursor in order not to distract the subject. Please update your NIMH ML and see the "task\runtime v2\18 multi-input tracking 2" task.by Jaewon - Questions and Answers
Please download the NIMH ML package again and try it. It may fix the issue. But, even if it doesn't, this is not a problem that I need to solve since it is not NIMH ML that adds the green layer. Let me know if the new package makes any difference.by Jaewon - Questions and Answers
1. I do not know what is the best. I assume you do not keep the subject in the lab for days, so any large number, like 86400000, will do, if you do not like Inf. 2. This is not that kind of infinite loop. If the screen did not respond, MATLAB was probably frozen for some other reason, which I do not have enough information about.by Jaewon - Questions and Answers
I don't know what to say, due to lack of information. I wonder why you don't use Inf though.by Jaewon - Questions and Answers
To invert the polarity of a button (i.e., make it respond for release, instead of push), call the invert() method of ButtonTracker button_.invert(button#); or use NotAdapter (see the example in the NotAdapter manual page). https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#NotAdapter The difference is that the former method inverts the button values stored in the data file as wellby Jaewon - Tips
* Changes in 2.2.5 (Jan 5, 2021) - Bug fixes and improvements in mouse functions and the MouseTracker adpater - The I/O Test window failed when the touch input was selected. It is fixed. - A problem that the background color of the subject screen became black after the I/O Test window was closed is fixed. - A bug that sometimes menuitems respond to key input instead of mouse cby Jaewon - News
Since Timing Script v1 does not process mouse input, you need to draw the cursor yourself. Register a cursor image as a PIC TaskObject. When you read the mouse position, call reposition_object() as well to change the position of the cursor image. Use toggleobject() to turn on and off the cursor. The behavior of the mouse cursor during the run_scene() is my mistake. I am working on it. -----by Jaewon - Questions and Answers
The mouse cursor just shows up when you run a scene that contains the mouse tracker. There is no need to turn it on and off.by Jaewon - Questions and Answers
I think the "task\runtime v2\18 multi-input tracking 2" is probably what you want, but I realized that it worked only in the simulation mode so modified it slightly. Try the attached task.by Jaewon - Questions and Answers
No, I don't. Please post questions that are related to NIMH ML only.by Jaewon - Questions and Answers
I guess you can use the camera app in Windows.by Jaewon - Questions and Answers
A variable being persistent does not mean that it has to be a constant. You can still update it as many times as you want. If TaskObjCon is not persistent, the taskobject created is destroyed, when the userloop returns, and becomes unavailable within the timing script. Normally you do not pass stimStruct through the mltaskobject. It is only for preloading.by Jaewon - Questions and Answers
The C produced by the first script is not the same as the one in the second script. They just look the same. To make the first script work, you should make TaskObjCon persistent or return a char array (a struct in your case) as I said above. C = stimStruct();by Jaewon - Questions and Answers
You were under a wrong impression. Pre-loading should be exceptionally used only for large stimuli that are repeatedly presented. The userloop is supposed to return a char array or a cell char array, like {'fix(0,0)','pic(A,0,0)'}, and works just like a conditions file. https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#Userloopby Jaewon - Questions and Answers
Try removing Chinese characters in the file paths, if there is any.by Jaewon - Questions and Answers
It means you did not assign all three return values in the userloop function. It is your fault. https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#Userloopby Jaewon - Questions and Answers