* Changes in NIMH MonkeyLogic 2 (Apr 9, 2020) + Support for low-latency voice recording via Windows Audio Session API (WASAPI) exclusive mode. - Fixed a bug that crashed MATLAB R2020a when the properties of analoginput and analogoutput objects are dumped in the command window. - Fixed an error that occurred when trying to read non-existing variables from *.mat data files.by Jaewon - News
Sorry. I don't have time to make an extension for another language. It may work to convert BHV2 to MAT with the bhv2mat function and read the MAT file in Python.by Jaewon - Questions and Answers
They are not the same issue. The previous issue was that mlmat did not return a blank for non-existing variables. The second error is because the filepath is not a full path. I cannot rebuild the packages now, but, as a temporary solution, you can provide a full filepath to mlplayer or run it without an input argument (i.e, just type "mlplayer") and choose a file in the resulting filby Jaewon - Questions and Answers
You need to explain what you did. Show your code, please.by Jaewon - Questions and Answers
The userloop function is called every time before a trial starts. You should make it return what is necessary for the next trial and one trial only. https://monkeylogic.nimh.nih.gov/docs_CreatingTask.html#Userloopby Jaewon - Questions and Answers
Did you try bhv_read or mlread?by Jaewon - Questions and Answers
Do you get 20 ms in the 2nd trial as well or even after 5-6 trials? Otherwise, I think it is okay. Again the maximum latency is usually the interval between the 1st and 2nd sample checks, which occurs at the very beginning of a trial. For the rest of the trial, the latency must be less than 0.5.ms, as indicated by your cycle rate (1/2200 = 0.45 ms).by Jaewon - Questions and Answers
Please overwrite your mlmat.m with the attached file.by Jaewon - Questions and Answers
https://monkeylogic.nimh.nih.gov/docs_TrialRecordStructure.htmlby Jaewon - Questions and Answers
You can send any number anytime. See the eventmarker function. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#eventmarkerby Jaewon - Questions and Answers
I know a function handle is saved as a string, because I made it so. What I am saying is that there is no way to reconstruct the function handle from the string. There is str2func, but it doesn't check the validity of the handle and doesn't work for nested functions or if there is any externally scoped variable. As a result, the data file cannot be replayed. I would just name the matby Jaewon - Questions and Answers
How high is your latency? As I said above, you may be concerned about it unnecessarily. And what is your usual cycle rate?by Jaewon - Questions and Answers
Using a MAT file is exactly a way to save unique waveforms once and have a "pointer" to them. I don't think using a function handle is a good idea. There is no way to re-establish the link to the function unless you save it to a MAT file.by Jaewon - Questions and Answers
Download the new package and try it. I made the adapter accept a MAT file that contains waveform data. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#Stimulatorby Jaewon - Questions and Answers
Your code will display object1 on top of object2. The first created are displayed in the foreground. See also https://monkeylogic.nimh.nih.gov/board/read.php?2,12,12#msg-12.by Jaewon - Questions and Answers
* Changes in NIMH MonkeyLogic 2 (Mar 16, 2020) + You can adjust the transparency of overlaid webcam videos in mlplayer. - mlsetpath introduced in Feb 3, 2020 did not process relative paths correctly and therefore caused an error when reading stimuli sometimes. It is fixed now. - If 'clear all' was executed while the NIMH ML main windows was open and then a task wby Jaewon - News
Yes. If you check on "Forced use of fallback screen", the subject screen is replaced with a window created as you specified in "Fallback screen rect."by Jaewon - Questions and Answers
If you can touch them on Windows, you can touch them in NIMH ML. Check on "Forced use of fallback screen" and type the Windows coordinates that cover two screens, like , in "Fallback screen rect.". Refer to the figure in the following link. https://monkeylogic.nimh.nih.gov/board/read.php?2,271,271#msg-271by Jaewon - Questions and Answers
Are you experiencing any problem due to an increased latency? I wonder why you want to do something with it, even though you do not know its meaning. The eyejoytrack function has a loop inside. At each iteration of the loop, a new analog sample is retrieved and checked. Max latency is the longest interval between two consecutive iterations and Cycle rate is the mean number of iterations per seby Jaewon - Questions and Answers
Now you can sample at a different rate, if you have more than one NI board. Check out "High-freq Sampling" in the Other device settings menu. https://monkeylogic.nimh.nih.gov/docs_MainMenu.html#OtherDeviceSettingsby Jaewon - Questions and Answers
When a task ends, NIMH ML pops up a summary window of behavioral data. If this summary is not useful, you can suppress it or create your own summary. To do so, create a "behaviorsummary.m" file in your task directory and write a function like the following. function behaviorsummary(filename) end If you want to suppress the summary window, just leave the function blank as above.by Jaewon - Tips
Please check your AI ground configuration. Signal fluctuation is not a problem of NIMH ML. It is because of improper wiring and hardware settings. https://monkeylogic.nimh.nih.gov/docs_NIMultifunctionIODevice.html#AIGroundConfigurationby Jaewon - Questions and Answers
Thanks for the figures. When you guys said the signal amplitude is low, I didn't realize how low it is. Please overwrite your mlphotodiodetuner.m with the attached file. You will be able to set the voltage range manually, if the detected range doesn't serve you well.by Jaewon - Questions and Answers
Update your NIMH ML if your build number is earlier than 201. https://monkeylogic.nimh.nih.gov/board/read.php?1,245,245#msg-245 TrialRecord has many fields that keep trial history information. You can do some calculations from them. https://monkeylogic.nimh.nih.gov/docs_TrialRecordStructure.html If those numbers are large, the whole conditions will be just repeated after 165 trials.by Jaewon - Questions and Answers
Would you download the new package and test? Now it should autodetect the polarity from the baseline voltage. If it works okay, would you upload a screenshot? (Click the tuner window, press ALT+PrtScn, open Paint and press CTRL+V.) One shortcoming of my photodiode is that it doesn't give me clear, square-shaped responses. If yours looks good, I may want to buy one.by Jaewon - Questions and Answers
I use the one built by the engineers that I am working with here, so there is no brand name or part number that I can give. I recently redesigned the tuner so that you can change the voltage threshold yourself, but haven't thought about polarity reversal. I guess I can add the feature easily. Please give me some time to make that change.by Jaewon - Questions and Answers
I don't think there is such a magic.by Jaewon - Questions and Answers
I don't see any description or indication there that the variables will be saved to the data file.by Jaewon - Questions and Answers
I don't know why you think that the variables assigned to TrialRecord.User will be saved in the data file. See the bhv_variable function.by Jaewon - Questions and Answers
* Changes in NIMH MonkeyLogic 2 (Feb 3, 2020) + Now NIMH ML searches for stimulus files through a pre-determined path list so that the files may be stored anywhere in the disk. The path list can be managed in the "Set path" menu. The order of paths searched is as below. 1) The given path of the file, if the filename is a full-path string 2) Task directory, whereby Jaewon - News