I don't understand your first question. You can make your own stimulus adapter, if you need something else.by Jaewon - Questions and Answers
Have you checked your AI ground setting? https://monkeylogic.nimh.nih.gov/docs_NIMultifunctionIODevice.html#AIGroundConfigurationby Jaewon - Questions and Answers
I think the first error may occur if your touch screen driver somehow makes only one coordinate (either x or y) NaN, although there is no reason for it to report any NaN. Maybe there is something I can do to prevent the error. However, the second error doesn't make sense. The messages indicate you were running a trial, not loading the task, but in either case, this cannot happen. Did youby Jaewon - Questions and Answers
There are many ways to change some parameters trial by trial. You can use the Info field of the conditions file https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#ConditionsFile or set different values to variables depending on TrialRecord.CurrentTrialNumber https://monkeylogic.nimh.nih.gov/docs_TrialRecordStructure.html or determine the parameters in the userloop and send them toby Jaewon - Questions and Answers
* Changes in NIMH MonkeyLogic 2 (Dec 27, 2019) - Fixed a bug in the error logic that "repeat delayed" put a newly selected condition back to the queue, instead of the previous error condition. (Thanks to Ben Basile) - The problem that DAQ settings are not loaded properly when switching from a conditions-file-based task to a userloop-based task is fixed. + Webcamby Jaewon - News
Have you looked at AudioSound, if it suits for your purpose? https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#AudioSound You don't see mglplaysound or mglpresent used in any adapter. It is because you should let NIMH ML handle stimuli to keep precise timing. You can create sounds, but you shouldn't play them yourself (unless you do it on purpose). MGL objects are activby Jaewon - Questions and Answers
The hotkey function does not return anything. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#hotkey And see this for how to stop eyejoytrack on purpose. https://monkeylogic.nimh.nih.gov/board/read.php?2,202,202#msg-202by Jaewon - Questions and Answers
The signals saved in the the data file during the simulation mode are only the kinds that you can fake with the mouse. So you probably didn't get the photodiode either. (eye is emulated with mouse and behavioral codes and strobes are outputs, which do not need emulation.) It is possible to record some real signals even during the simulation mode, but I don't do so because there is noby Jaewon - Questions and Answers
Yes. The grid will be the same as before but just translated relatively to the new origin.by Jaewon - Questions and Answers
The 'c' key is implemented as a hotkey like the following. hotkey('c', 'forced_eye_drift_correction([0 0],1);'); [0 0] is the coordinates of the new center (in degrees) and 1 indicates the first eye signal (2 is the second eye). So overwrite it (i.e., define it again in your timing script) with the coordinates you want.by Jaewon - Questions and Answers
Try the attached task. You need to enable Touchscreen in the Non-DAQ Device Settings. There is one thing you misunderstood. You can read touch_.XYData in the timing script, but you won't get any meaningful numbers. Adapters and adapter chains do something, only when they are executed by run_scene(). You need to write your own adapter and plug it in the chain, to access real-time data. Theby Jaewon - Questions and Answers
You set your filetype to .mat. Change it to .bhv2 and see if there is any difference. And see this manual page written about the file format. https://monkeylogic.nimh.nih.gov/docs_GettingStarted.html#FormatsSupportedby Jaewon - Questions and Answers
You can send it to me via Private Messages.by Jaewon - Questions and Answers
I guess you may be saving a huge variable whose size is growing every trial.by Jaewon - Questions and Answers
Try the MultiTarget adapter. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#MultiTarget You cannot access adapter properties on real time, unless you make your own adapters. What you can do in the timing script level is to set input properties, call run_scene() and check output properties after the scene ends. Basically you are interacting with adapters from their outside. The &qby Jaewon - Questions and Answers
You said you used two SingleTarget adapters. Check their Success properties after the scene ends. One should be true, while the other is false. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#SingleTargetby Jaewon - Questions and Answers
There is no point of accessing XYData of a tracker directly in the timing script. The field is automatically filled with new samples by NIMH ML, when an adapter chain including the tracker is executed by run_scene. You need to write your own adapter and build an adapter chain with it and joy_. In the adapter, you can access XYData like obj.Tracker.XYData. https://monkeylogic.nimh.nih.gov/docs_Ruby Jaewon - Questions and Answers
Anything is possible, but can you explain more about what kind of movement you want to see? If you show an image on the position of the joystick cursor (which you can do with the Joystick Cursor menu and the showcursor function), it will move just as the joystick is moving, so won't go straight left (or up) nor look like smooth movement.by Jaewon - Questions and Answers
I don't understand what you mean by "the exact start". They both indicate the same event, screen flipping, but the timestamp of the eventmarker is acquired when the Strobe Bit actually goes HIGH, which is 125 us after, by default. That delay is necessary to allow some time for digital output lines of Behavioral Codes to be stabilized. https://monkeylogic.nimh.nih.gov/docs_MainMby Jaewon - Questions and Answers
If you manipulate stimuli directly with their MGL object IDs, NIMH ML does not get a chance to collect necessary information and the resulting datafile cannot be replayed. Some adapters accept MGL object IDs, but it is for rare cases that require special control even though replayability is sacrificed. Usually you are not supposed to use MGL object IDs when writing timing scripts. To use TaskOby Jaewon - Questions and Answers
Show me your task and the data file please. I am out of the office for the rest of the week though.by Jaewon - Questions and Answers
Now you can compress the webcam data by exporting it as MP4. Please download the latest version.by Jaewon - Questions and Answers
I added a compression option to the webcam. Choose 'Export as MP4 (or AVI)' on the menu. This option will create the video of each trial as a separate file, which is necessary for the compression. The start time of the first frame is not 0 in the webcam video, so you should refer to the AnalogData.Webcam1.Time field for the timestamp of each video frame. For data files already collecby Jaewon - Questions and Answers
Please download the package again. Sorry for the inconvenience.by Jaewon - Questions and Answers
The timestamp of an eventmarker always indicates the actual time that the event occurred. There is no need to estimate or adjust anything.by Jaewon - Questions and Answers
Sometimes it is convenient to be able to abort a trial in the middle. You may accidentally set a long wait time or a subject may not perform one last action that needs to complete the trial. To stop the current trial and pause the task, you can set a hotkey like the following. The key aborts only one eyejoytrack or one run_scene at a time, so you may need to type it multiple times until the trby Jaewon - Tips
Please try the new version of NIMH ML that I just uploaded. There was initially a reason why STM was programmed in that way, but I think I sorted out and handled all possible cases this time.by Jaewon - Questions and Answers
I am not sure what you mean by "take into account the shift in timing", but skipped frames matter mostly when visual stimuli are turned off. For example, you want to present something for 100 ms, but it can be shown longer than 100 ms, if skipped frames occur unfortunately right at the time you try to turn it off. If frames are skipped when stimuli are about to be presented, both onsetby Jaewon - Questions and Answers
* Changes in NIMH MonkeyLogic 2 (Nov 18, 2019) + SND and STM objects stop when turned off explicitly by toggleobject. Also STM resets the output to 0. Both objects can be reused multiple times during a trial. They first should be explicitly turned off by toggleobject (although the stimuli already ended). Then SND has to be rewound by the rewind_sound function before toggby Jaewon - News
That is actually a well-known technique to avoid the Windows audio stack and accomplish zero latency. It is the mixer in the Windows audio stack that combines individual sounds and plays them through one common output channel (speaker, headphone, etc.). DAQ devices do not have a mixer, so you cannot combine two sounds by playing one while the other is being played and should mix them yourselfby Jaewon - Questions and Answers