Just declare multiple KeyCheckers or SingleButtons. Combine them with aggregators, if necessary.by Jaewon - Questions and Answers
Unfortunately it does not work in that way, mostly because of the graphics.by Jaewon - Questions and Answers
Arduino Nano 33 BLE is supported from 2.2.50 (Mar 28, 2025). https://monkeylogic.nimh.nih.gov/docs_BluetoothRewardTrigger.htmlby Jaewon - Questions and Answers
You should use your fastest drive for saving data files. Moving them to somewhere else later is up to you. There are so many ways to automatize the file copy/move, so I do not think I need to reinvent the wheel. You can use behaviorsummary, for example. https://monkeylogic.nimh.nih.gov/board/read.php?2,314,314#msg-314 function behaviorsummary(filename) movefile(filename,'D:\data&by Jaewon - Questions and Answers
* Changes in 2.2.50 (Mar 28, 2025) - When monkeylogic_cfg2.mat exists, certain I/O settings are now loaded from and saved to this file. https://monkeylogic.nimh.nih.gov/board/read.php?2,532,532#msg-532 - Arduino Nano 33 BLE series are supported for triggering remote reward devices. https://monkeylogic.nimh.nih.gov/docs_BluetoothRewardTrigger.html - BHV2 files became more robby Jaewon - News
I do not see any problem in the code you showed. The issue must be caused by something else. If you are saying that you want to present multiple images sequentially during fixation within a trial, you should use ImageChanger. Running ImageGrahphic repeatedly in a loop is a bad idea, because it will introduce a time gap between images. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.htmby Jaewon - Questions and Answers
Doesn't CTRL X + CTRL V work for you?by Jaewon - Questions and Answers
You need a new version of NIMH ML, but I am still working on it. Please be patient.by Jaewon - Questions and Answers
I modified your task with a custom adapter. See the attached zip file. Before running the task, update your NIMH ML to the latest version. If you need to know exactly when the number was reported, you should record the status of the Enter key, as you do the Space bar. If you use just eventmarkers, you cannot avoid a 10-20 ms delay because sample analysis is done frame by frame in the scene fraby Jaewon - Questions and Answers
1. NIMH ML and, as far as I know, MATLAB itself are not dependent on Qt. The error is likely to come from another software that you run together. 2. You know that a new trial begins with ITI when the ITI recording is enabled, don't you? https://monkeylogic.nimh.nih.gov/docs_MainMenu.html#Task Did you compare the signal length between analog inputs and the button? 3. Have you actuallyby Jaewon - Questions and Answers
I took the liberty of moving the timing script to the attachments. I have a few questions. 1. Is pressing the space bar the act of selecting a number? What should be displayed on the screen, when the subject enters the number? 2. Do you need to know the time when the enter is pressed? 3. Other than space, numbers and enter, what keys can the subject type?by Jaewon - Questions and Answers
I sent you a modified version of mlbhv2.m by email. Please check your inbox. The data could be read up to Trial200. The new mlbhv2.m will be included in the future release of NIMH ML, so you do not need to keep the file.by Jaewon - Questions and Answers
Now the message is supposed to be a warning, not an error, and anything readable up until the warning should be in the return value of mlread(). Did you see anything in the return value?by Jaewon - Questions and Answers
It means you are still running the old version. If you ran the new version, at least the line number in the error message would be different. Please check the MATLAB path and make sure that the commands in the new version are called. The new version returns the readable portion of data even when an error occurs.by Jaewon - Questions and Answers
Try to read again with the latest NIMH ML.by Jaewon - Questions and Answers
I do not see such a problem during my tests. The condition of the first trial in each block is as random as it can get on my computer. What you need to check is whether the condition assigned in the selector function and the current condition in your timing script are the same. If so, there is nothing wrong in getting the first condition at the beginning of each block. Using randi() does not eby Jaewon - Questions and Answers
Please explain what you are trying to achieve, not how you want to do it. Why do you need getkeypress and moviegraphic?by Jaewon - Questions and Answers
I guess you probably did not use lsl_loadlib correctly, but neither lsl_loadlib nor LabRecorder was built by me, so you have to contact the developers of those applications if you think there is something wrong with them. I do not know whether LabRecorder allows running other applications at the same time. You should try running it on another computer. It is not a good idea anyway to slow downby Jaewon - Questions and Answers
Read this manual page carefully. https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#HowToCreateAdapterChains In your code, TTLOutput is the topmost adapter, which means that the scene ends when TTLOutput stops. If fixation was the behavior you wanted to acquire in the scene, you should have made WaitThenHold the topmost adapter.by Jaewon - Questions and Answers
I see where the manual was not written clearly. You should set the duration of TTLOutput, like the following. ttl1.Duration = 50;by Jaewon - Questions and Answers
If you have a psychopy function that works for this already, why don't you write a MATLAB function that does the same thing? Are you saying that you did so but it did not work? By the way, you can call python functions from MATLAB, too.by Jaewon - Questions and Answers
Both errors are your programming mistakes and have nothing to do with NIMH ML. You know that your TimeCounter (tc1) is not included in the adapter chain and therefore does not do anything, don't you?by Jaewon - Questions and Answers
You are asking the question to a wrong person. You should ask it to the maker of the software that generates the .xdf file.by Jaewon - Questions and Answers
You cannot use just any I/O board. It has to be supported by NI-DAQmx. It is not impossible to support the drivers of other products, but I just do not have time to do so.by Jaewon - Questions and Answers
It is just impossible that some markers are stored and others are not. You should look harder what really happened.by Jaewon - Questions and Answers
A sound card can process multiple channels, so it is unusual to install more than one card. I think the best option for you now is to use two mono microphones and record them as stereo. You may need a stereo-to-dual-mono jack or splitter.by Jaewon - Questions and Answers
Did you start sending packets on the DQW side? It does not send anything until you click some button.by Jaewon - Questions and Answers
If you are scripting in the v1 style, you can monitor the eye position around the initial fixation point with eyejoytrack('holdfix',...) and, as soon as it returns with 0 (i.e., when the fixation is broken), call eventmarker. However, I advise against this unless you have a compelling reason to detect saccades in real time. Whenever possible, it is better to analyze saccades offline.by Jaewon - Questions and Answers
Depending on what you exactly want to do, there can be different suggestions, but usually this is what you need a mixer for.by Jaewon - Questions and Answers
I wrote an example task for you. This example requires you to define the boundaries of the pathways with non-overlapping rectangles. See the code in the attached file.by Jaewon - Questions and Answers