It seems a matter of imagination. There are many ways to do so and I think everything necessary is well-documented already. The entire scale can be drawn with a tool like MS Paint or PowerPoint and presented as an image in NIMH ML. Then you can check key input or set a fixation window on each scale level to capture the mouse cursor. If some visual feedback is desired, like the attached mousby Jaewon - Questions and Answers
They are . You could probably see them if you tried plotting them.by Jaewon - Questions and Answers
You can certainly acquire at faster than 30 fps. It is just that you do not see which format supports higher rates until you click on them. The frame rate written in the Format string is just the default rate in that video resolution. You actually need to check the Frame rate option to see if you can slide the bar to over 30. I find this may not be convenient, so I am thinking of a better way toby Jaewon - Questions and Answers
What will be displayed there is dependent on whether your script is written in the v1 or v2 style. v2 scripts run in a totally different way from v1 scripts, so the measures like Cycle Rate simply do not exist in the v2-style tasks. See the following manual page, if you do not know the difference. https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#RuntimeVersion2_Background Even though Mby Jaewon - Questions and Answers
No apology is needed. You were thinking the job that you were supposed to do was redundant, so I just tried to make you understand it.by Jaewon - Questions and Answers
One is to store a value to a file and the other is to assign a value to a variable. How are they the same? See the two lines of code below. Are they doing a redundant function? a = 1; % assign to a variable save('test.mat','a'); % store to a file The value stored to the file is not accessible through the variable. Although the values kept in the file andby Jaewon - Questions and Answers
I suggest thinking through whether what you feel redundant is really redundant.by Jaewon - Questions and Answers
No, there isn't. Your computer has limited memory, so it is not reasonable to track the changes of all saved variables. Your example is just one boolean, but some people save huge variables for thousands trials.by Jaewon - Questions and Answers
The ID method is not something covered by NIMH ML, although some users may be able to share their experience here. You can use RFID, face detection or any ID method that you like, as long as it returns some unique number or string for each individual to NIMH ML. Arduino cannot run multiple sketches. You may need more than one Arduino device, if your ID method is also Arduino-based. You can creby Jaewon - Questions and Answers
You did not do your math correctly. The size of your image (1280x720) has not been changed between your experiment and analysis, so there is no need to rescale anything. What changed was the origin of the pixel coordinates. When you presented the image during the experiment, there were borders around the image. However, you plotted only the image without the borders, when you drew the heat mapby Jaewon - Questions and Answers
I do not know what kind of help you expect, but, there is very little that anyone can do without knowing how you drew it. You need to show the script that you wrote with the original data.by Jaewon - Questions and Answers
Try the attached task. If you want to get help, you should at least do your part. You can ask another question if something is not clear in the manual.by Jaewon - Questions and Answers
I said you could use the trial history in the block selection function or block change function. Do you understand what they do? Also, your code does not work because you reset TrialRecord.User.consecutiveCorrect to 0 every time in the very first line. You should have written it like this. if ~isfield(TrialRecord.User,'consecutiveCorrect'), TrialRecord.User.consecutiveCorrect = 0;by Jaewon - Questions and Answers
It did not work without assigning Strobe Bit, because the strobe option that you chose required the Strobe Bit. "Send and Clear" does not need Strobe Bit. See the following manual page. https://monkeylogic.nimh.nih.gov/docs_MainMenu.html#Strobe If you are okay with your current setting, there is no need to send the strobe bit anywhere. Just leave it unconnected.by Jaewon - Questions and Answers
Did you see the manual pages that I linked? All the information that you need to calculate the number of correct trials in each block is in the TrialRecord structure. https://monkeylogic.nimh.nih.gov/docs_TrialRecordStructure.htmlby Jaewon - Questions and Answers
If you are using the trialerror function in your timing script, you can get the trial success history from TrialRecord.TrialErrors during the task. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#trialerror https://monkeylogic.nimh.nih.gov/docs_TrialRecordStructure.html Then, you can use the trial history to determine whether to switch the block or not in the block selection/chaby Jaewon - Questions and Answers
You also need to set NIMH ML to receive the pupil data either through a voltage channel or TCP/IP. If you receive eye XY signals through voltage channels (i.e., NI board), assign the pupil size input to one of "General Input" on the Input/Output panel of the main menu. Then you can read it like get_analog_data('gen1') in the timing script. If you receive eye XY signalsby Jaewon - Questions and Answers
Not that I know of. You should probably check it with the manufacturer of the webcam. If you look up the old posts in this forum, some people complained that the timestamps of the frames were not correct. As far as I know, it is a problem of the incorrectly programmed webcam driver and seems to occur with very old products. It is difficult to find out without testing with a real product, thougby Jaewon - Questions and Answers
The start time of a scene and the time of Success in a child adapter are not the same thing, but I understand what you mean. Unfortunately, the Success time of SingleTarget (= AcquiredTime of WaitThenHold) is not stored in BHV2. mlplayer replays scenes by feeding recorded eye signals to the adapter chains again as if those signals are just acquired, not by remembering all the timing info. Yby Jaewon - Questions and Answers
I am glad to hear that you fixed the problem. I do not see any reason for the pump not to work, if it is correctly connected to the analog output (AO) of the NI board and also the AO channel is correctly assigned to the "Reward" signal type in NIMH ML.by Jaewon - Questions and Answers
It is not ML but Windows that handles the acquisition. ML just receives the images and their timestamps from Windows. So, the question should be whether your computer is faster enough to run both the webcam and ML. Also, the images are stored in the memory until a trial ends, so your computer needs sufficient memory to hold them.by Jaewon - Questions and Answers
* Changes in 2.2.45 (Mar 28, 2024) - When NI samples were not read out quickly on low-performance machines, data acquisition stopped with an undisplayed error, which made some modal dialogs like the calibration tools not responsive to user input. The measures to mitigate sample loss and capture those errors are taken. (Thanks to Caitlyn Bartsch) - The WebcamMonitor adapterby Jaewon - News
For wired reward triggering, you can get a parallel port. It is cheap and provides up to 12 digital output lines. I have no idea why it happens. It would make more sense if the touchscreen got slower while running a task. Does the screen respond to touch well outside NIMH ML?by Jaewon - Questions and Answers
Please see my previous comment again and try running ML as written there. After you change the main display, MATLAB opens on the new main display and so does the ML window. You need to drag them back to your old main display. I guess you started the task without doing so, which is why you saw the warning, "The main menu window will be occluded by the subject screen. Please move it to a diffeby Jaewon - Questions and Answers
Please read the manual that I linked above. What you need to do is 1) to restart ML after changing the main display and 2) to drag the ML window onto the HDMI monitor and change the "Subject screen device" to the DVI monitor. All are written in the first section of the manual page.by Jaewon - Questions and Answers
Make the touchscreen the main display of your system and try again. https://monkeylogic.nimh.nih.gov/docs_MonitorSetup.html There were a few people who talked about a similar issue, but they never followed it through with me, so I do not know the reason for sure.by Jaewon - Questions and Answers
In the scene framework, TaskObjects and graphic adapters are shown if they are included in the scene and not shown if they are not included. Since it is you that determine whether to include them or not, you know which stimuli are presented in a particular scene. All stimuli are presented when the current scene starts and removed when the next scene starts. It is easier to record the numbers tby Jaewon - Questions and Answers
Thank you for the explanation. Sending additional codes itself is not a difficult thing. What is difficult is to add a new function without making it conflict with existing ones. Things that immediately occur to me are like how to stamp the frame number when two movies with different starting points and different frame rates are presented, what if the frame number is already used by other codes,by Jaewon - Questions and Answers
* Changes in 2.2.44 (Feb 16, 2024) - The BlackrockLED adapter that has been broken since 2.2.36 (May 24, 2023) is fixed. - Minor fixesby Jaewon - News
See if the following post helps. https://forums.ni.com/t5/Multifunction-DAQ/PCI-MIO-16E-4-old-drivers/td-p/4275417 The E-series boards were considered old even twenty years ago and NI discontinued all support for them several years ago. I suggest purchasing a new board. https://monkeylogic.nimh.nih.gov/board/read.php?3,1376by Jaewon - Questions and Answers