* Changes in NIMH MonkeyLogic 2 (Aug 25, 2020) + The IO Test screen is movable now. * Changes in NIMH MonkeyLogic 2 (Aug 17, 2020) + AudioSound, ImageChanger, ImageGraphic, MovieGraphic and Stimulator take functions (char arrays that contains a function name and its arguments) as input, instead of numeric matrices that those functions produce. This will help with the redby Jaewon - News
I uploaded the new packages. Now you can use a function string, instead of a matrix. See the manual for details. Reload the page in the web browser, if you don't see the updated contents. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#MovieGraphicby Jaewon - Questions and Answers
reward_dur is one of the things I inherited from the original ML. I also thought of removing the variable, but I learned one of the labs that contributed to the original ML was using it heavily, so, in respect for their initiative, I decided to keep it. I don't recommend removing it. Then you will have to make the change every time a new version comes out.by Jaewon - Questions and Answers
Thanks for the explanation. All public properties of adapters that can be assigned by users are saved in the data file to reconstruct initial conditions of scenes later. In your case, you assigned a 4-D matrix to MovieGraphic so the 4-D matrix was stored to the data file, which I believe is the reason of the large file size. If you have a function that generates the movie out of a few paramby Jaewon - Questions and Answers
Of course, I don't. You should explain every single detail so that I can understand what you did. Otherwise, it is just like you are asking me to guess what you ate for breakfast. You said you saved the dot positions in each frame. Then how can the size of the matrix be just 500*3 per trial? If you presented 100 dots for 3 s at 60 Hz, that alone requires 100*3*60*2 numbers each trial (sinby Jaewon - Questions and Answers
I agree that this default behavior of uigetfile is not convenient. Modify run_trial.m like the following. I will update the packages later. Line 764 of run_trial.m From: 'callback',sprintf('p = uigetfile; ... To: 'callback',sprintf('p = uigetfile(''*.*''); ...by Jaewon - Questions and Answers
Update your NIMH ML and you will be able to use GIF as a movie source. Use MOV, instead of PIC. https://monkeylogic.nimh.nih.gov/docs_TaskObjects.htmlby Jaewon - Questions and Answers
You are mistaken. The error occurred because you did something wrong with create_scene(), not because you set the position [0 0]. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#create_sceneby Jaewon - Questions and Answers
The error message was suppressed. Try the example task in the "task\runtime v1\9 editable demo" directory. If it works, you might type something wrong.by Jaewon - Questions and Answers
Animated GIFs are not supported. Make it as a movie. ImageGraphic is not doing anything in your script. You may as well remove it.by Jaewon - Questions and Answers
ImageGraphic does not take any size argument nor produce an error message prefixing "PIC". Please double-check which function/script made the error. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#ImageGraphicby Jaewon - Questions and Answers
That is just how MAT files work. I don't think it is my problem to fix, but I did something to prevent them from keeping growing. Update your NIMH ML.by Jaewon - Questions and Answers
Zoom in on the menu, like 200%, and try again. ---------- You can also adjust the size of mlplayer now to see things bigger.by Jaewon - Questions and Answers
First of all, the behavior of NIMH ML that you are talking about is perfectly normal and made it that way by design. You think that you are controlling the task with keyboard and mouse, but, in fact, the keyboard and mouse are tools for subjects to report responses with. So you are actually borrowing them from subjects. NIMH ML displays visual stimuli both on the subject and control screen soby Jaewon - Questions and Answers
Download the package again and try a new adapter, GraphicProperty. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#GraphicProperty If you don't find a function you want in the existing adapters, you can make one of your own from the template.by Jaewon - Questions and Answers
No one but you knows what you did to your computer. You should explain better than that.by Jaewon - Questions and Answers
Update your mlhdf5.m with the attached file or download the package again. By the way, HDF5 is not a good format for saving data. It is extremely slow. Read the following post, if you are interested. https://cyrille.rossant.net/moving-away-hdf5/by Jaewon - Questions and Answers
Use two tracking types, 'touchtarget' and '~touchtarget', in one eyejoytrack(). https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#eyejoytrackby Jaewon - Questions and Answers
Raw-signal means no calibration. Choose one of the other options. The signal never entered the central target window, because you did not set the origin. Once you press the space bar, it will come to the center of your screen. If you are not sure where the subject is looking at, just use your best guess. If the result is not satisfactory, try again multiple times. If the subject is not traiby Jaewon - Questions and Answers
The scene framework is neither difficult nor advanced. It is just different. There is no need to start from the runtime v1. 1. The CRC TaskObject is inherited from the original ML with the blurry edge. Use the CircleGraphic adapter of the scene framework, if you want a sharp circumference. 2. I don't get what the point of your question is. If you want to present only one stimulus, justby Jaewon - Questions and Answers
First of all, rewinding is necessary only when you play the same sound again in the same trial. So you don't need to call rewind_sound() in your first and third examples. In the first example, you hear beeps twice (or three times) because the length of your stimulus is 50 ms but you played only the ~20 ms of it in the first run. When you toggle it on again in the second (and third) run, tby Jaewon - Questions and Answers
I am not sure how you ran the calibration. Especially I don't understand these two parts: "instead of presenting the central target, I firstly moved the offset to the right" and "I then re-calibrate with less negative values in X (let's say -2)". They do not make any sense to me. Please read the manual and follow the instructions there. https://monkeylogic.nimh.nih.by Jaewon - Questions and Answers
You have two options. One is to make two adapter chains that each have a DragAndDrop adapter with a different destination and combine them with the AllContinue adapter. https://monkeylogic.nimh.nih.gov/docs_RuntimeFunctions.html#AllContinue Another option is to make your own adapter that does exactly what you want. Making the DragAndDrop work for multiple locations is actually not that difficby Jaewon - Questions and Answers
See If you have multiple NIMH ML copies in the MATLAB path. Sometimes MATLAB fails to delete old versions completely, when NIMH ML is installed and updated with the MATLAB installer. In that case, some functions may be called from the old versions. See the following link for how to check the app installation path. https://monkeylogic.nimh.nih.gov/docs_GettingStarted.html#SoftwareInstallationby Jaewon - Questions and Answers
Try something simple like this. dashboard(1,sprintf('Trial %d',TrialRecord.CurrentTrialNumber)); idle(1000);by Jaewon - Questions and Answers
Eye #1 and Touch are both emulated by mouse. This limits the testing capability during the simulation only to the case that eye fixation and touch are required on the same position on the screen. If you need to test eye and touch at different locations, you can temporally change Eye #1 to Eye #2 or Joysticks which can be controlled by keyboard independently. https://monkeylogic.nimh.nih.gov/dby Jaewon - Questions and Answers
That is exactly why you should not rely on a hack to do important things. I tried to make NIMH ML flexible enough so that you don't need to hack anything. Your problem is not in reading out a value from StimulusInfo but in inserting one into it. The variable, StimulusInfo, is still there and provides extra information about TaskObjects. However, NIMH ML does not recognize a custom entry lby Jaewon - Questions and Answers
See the example in the "task\runtime v2\21 custom alpha blending" directory.by Jaewon - Questions and Answers
I don't understand who you are referring as "they" any more, but it does not make any sense that the number of coherence dots can change from frame to frame. How can the coherence level be 100%, if not all dots move in the same direction? I don't know why a mask is necessary, but I guess you are not aware that an object created earlier is shown above the others in MGL. Theby Jaewon - Questions and Answers
Your camera does not seem to fall into the "webcam" category. It has a way high spec and price for a webcam and, more importantly, the manufacturer's SDK should be used to control it, instead of Microsoft's common API. Some manufacturers provide a driver so that their cameras can be controlled via webcam APIs, but I guess it is not the case for your camera. As a solo prograby Jaewon - Questions and Answers