By pinguin - 4/23/2025
Hi Dave,
we have had a similar issue last year with IQ6 (https://forums.millisecond.com/Topic36481.aspx). Back then, it seemed to be a RAM problem. However, we managed to get everything running.
Now, we have updated our test battery.
It (https://mili2nd.eu/rkjc) runs smoothly on a computer (using the full application), but in offline mode via the app on a tablet (in this case an iPad Pro with M1 chip) the battery aborts after the second test (the third script of our batch). This is also true for one of the older Samsung tablets, which are also causing us the trouble regarding the headphones.
Just to make sure, is everything correctly uploaded in our project? It seems as if some files cannot be found, although we see them in the overview. Please see the screenshots.
Do you have any other tips on how to proceed to get everything running? We were really hoping that IQ7 would solve our RAM issues. Maybe there is something we are missing?
We appreciate your input.  
|
By Dave - 4/23/2025
+xHi Dave, we have had a similar issue last year with IQ6 ( https://forums.millisecond.com/Topic36481.aspx). Back then, it seemed to be a RAM problem. However, we managed to get everything running. Now, we have updated our test battery. It ( https://mili2nd.eu/rkjc) runs smoothly on a computer (using the full application), but in offline mode via the app on a tablet (in this case an iPad Pro with M1 chip) the battery aborts after the second test (the third script of our batch). This is also true for one of the older Samsung tablets, which are also causing us the trouble regarding the headphones. Just to make sure, is everything correctly uploaded in our project? It seems as if some files cannot be found, although we see them in the overview. Please see the screenshots. Do you have any other tips on how to proceed to get everything running? We were really hoping that IQ7 would solve our RAM issues. Maybe there is something we are missing? We appreciate your input.    All necessary files appear to the uploaded. Toggle ofline mode off on the devices, close the app, re-open it, and then toggle it back on.
Inquisit 7 can't / won't solve your RAM problem. If there's not enough memory to do all the things you're asking Inquisit to do, you'll run into issues. (The log for that iPad shows that it had only a little over 100MB of available RAM at the time you took the screenshot.)
|
By pinguin - 4/23/2025
+x+xHi Dave, we have had a similar issue last year with IQ6 ( https://forums.millisecond.com/Topic36481.aspx). Back then, it seemed to be a RAM problem. However, we managed to get everything running. Now, we have updated our test battery. It ( https://mili2nd.eu/rkjc) runs smoothly on a computer (using the full application), but in offline mode via the app on a tablet (in this case an iPad Pro with M1 chip) the battery aborts after the second test (the third script of our batch). This is also true for one of the older Samsung tablets, which are also causing us the trouble regarding the headphones. Just to make sure, is everything correctly uploaded in our project? It seems as if some files cannot be found, although we see them in the overview. Please see the screenshots. Do you have any other tips on how to proceed to get everything running? We were really hoping that IQ7 would solve our RAM issues. Maybe there is something we are missing? We appreciate your input.    All necessary files appear to the uploaded. Toggle ofline mode off on the devices, close the app, re-open it, and then toggle it back on. Inquisit 7 can't / won't solve your RAM problem. If there's not enough memory to do all the things you're asking Inquisit to do, you'll run into issues. (The log for that iPad shows that it had only a little over 100MB of available RAM at the time you took the screenshot.) Hi Dave,
thank you for your quick reply — it’s great to hear the upload went through properly.
Your suggestion to toggle offline mode off and then back on did help us progress a bit further through the batch, which was encouraging at first. However, we're still encountering script terminations at a certain point.
I completely agree: Inquisit likely struggles to handle what we’re asking of it when we push it to its limits.
Is there anything that stands out to you in our scripts that might be optimized to ease the load?
Our worst-case fallback would be to split the battery into multiple parts and launch them one after the other. However, since we’re testing first graders in groups of around 15, that would mean our test administrators would need to re-enter subject codes repeatedly — which isn’t very practical in that setting.
Thanks again for your support!
Best,
pinguin
|
By pinguin - 4/24/2025
P.S.: Do you think it could help to split the single test scripts into several parts? (i.e., instead of having one script for "language-related task", we would have two scripts for it.)
|
By Dave - 4/24/2025
+xP.S.: Do you think it could help to split the single test scripts into several parts? (i.e., instead of having one script for "language-related task", we would have two scripts for it.) If you want me to look at something, you need to be more specific. "[We could] progress a bit further through the batch, which was encouraging at first. However, we're still encountering script terminations at a certain point." doesn't tell me much. How far? Which scripts terminate and when? Always the same scripts? Always at the same point? Or different scripts at different points? What are the error messages, if any? I don't have time to review more than a dozen scripts, involving more than 1800 external files (images, sounds, etc.), on a hunch.
Simple optimizations you can do to cut down on memory usage: Re-size excessively large images. For example, d_sh_021_b.jpg alone has a resolution of 5665 x 4170 pixels and weighs in at almost 3MB on disk. In memory, that will be much larger. I doubt that any of the screens you are using comes close to having a resolution of 5665 x 4170 pixels, so that's just a waste of memory: Loading all those excess pixels costs memory, and scaling them down to the actual resolution costs memory on top.
|
By pinguin - 4/24/2025
+x+xP.S.: Do you think it could help to split the single test scripts into several parts? (i.e., instead of having one script for "language-related task", we would have two scripts for it.) If you want me to look at something, you need to be more specific. "[We could] progress a bit further through the batch, which was encouraging at first. However, we're still encountering script terminations at a certain point." doesn't tell me much. How far? Which scripts terminate and when? Always the same scripts? Always at the same point? Or different scripts at different points? What are the error messages, if any? I don't have time to review more than a dozen scripts, involving more than 1800 external files (images, sounds, etc.), on a hunch. Simple optimizations you can do to cut down on memory usage: Re-size excessively large images. For example, d_sh_021_b.jpg alone has a resolution of 5665 x 4170 pixels and weighs in at almost 3MB on disk. In memory, that will be much larger. I doubt that any of the screens you are using comes close to having a resolution of 5665 x 4170 pixels, so that's just a waste of memory: Loading all those excess pixels costs memory, and scaling them down to the actual resolution costs memory on top. Dear Dave,
yes, you are right. Thank you for being patient with us.
We have re-sized the larger files.
Instead of 73MB, the files now all amount to ~ 20MB.
As soon as the script „pause1min.iqx“ is finished, the script still aborts (so basically, between scripts) - this position, from my runs, is the most frequent one. Yesterday I had one run, where the run aborted before „updating_position_1_kids_short_iq7_noprog.iqx“.
The first error is from „introduction.iqx“ which throws:
Error playing /data/user/0/com.millisecond.InquisitPlayer7/cache/scripts/75089_bcdf431c3a4d76aed3578abb63aa1b65/instruction.mp3: 0: Failed to open /data/user/0/59com.millisecond.InquisitPlayer7/cache/scripts/75089_bcdf431c3a4d76aed3578abb63aa1b65/instruction.mp3'. Line 169, File SoundPlayer_android.cpp
After that, for the script „lang_block.iqx“ Inquisit says the .mp3-files for this script cannot be found.
Both scripts are called within "_gc_klass1_sprache.iqx", so right after „pause1min.iqx“.
I tried attaching two JPEGs to this post, but the upload did not work. So here are two links to the pictures with the error messages: (Please note that everything above those errors is warnings (e.g., „The ‚responseTrial‘ attribute has been deprecated and may not be supported in a future release.“)
https://ibb.co/b5sZhpp1 https://ibb.co/2wmGW36
Down below you can find our batch.
Of course you will not be able to check all our scripts - I was rather thinking that maybe there is something that we could change within the batch file that we are unaware of.
This is the tablet I used:
Samsung Galaxy Tab A7 Model Number: SM-T500
Software: Android 12 T500XXS8CXG1
___
<batch> / file = "stop.iqx" / file = "binding_position_1_kids_short_iq7_noprog.iqx" / file = "binding_stimulus_1_kids_short_iq7_noprog.iqx" / file = "updating_position_1_kids_short_iq7_noprog.iqx" / file = "metakog_wmc_iq7.iqx" / file = "ratingscale_wmc_iq7.iqx" / file = "pause1min.iqx" / file = "_gc_klasse1_sprache.iqx" / file = "_metakog_gc_iq7_sprache.iqx" / file = "ratingscale_sprache.iqx" / file = "pause2min.iqx" / file = "_gc_klasse1_schriftsprache.iqx" / file = "_metakog_gc_iq7_schriftsprache.iqx" / file = "ratingscale_schrift.iqx" / file = "pause1min.iqx" / file = "_gc_klasse1_mathe.iqx" / file = "_metakog_gc_iq7_mathe.iqx" / file = "ratingscale_mathe.iqx" </batch>
Please note that the script "_gc_klass1_sprache.iqx" contains the following:
<include> / file = "setup.iqx" / file = "lang_items.iqx" / file = "stimuli.iqx" / file = "trials.iqx" / file = "blocks.iqx" / file = "lang_block.iqx" / file = "lang_placeholders.iqx" / file = "introduction.iqx" </include>
<expt main> / blocks = [1 = lang_instruction; 2 = lang] / onexptbegin = [ values.startTime = script.currenttime;
if(parameters.debug) { if(parameters.maxInstructionTime != -1) { values.instructionTime = parameters.maxInstructionTime * 1000; } } else { text.debugTXT.skip = true; clock.blocktimer.skip = true; } values.allowedTime = parameters.allowedTime * 1000; //- values.instructionTime;
] / onexptend = [ values.endTime = script.currenttime; ]
</expt>
<summarydata> / columns = (values.startTime, block.lang.timestamp, values.endTime) </summarydata>
|
By Dave - 4/24/2025
+x+x+xP.S.: Do you think it could help to split the single test scripts into several parts? (i.e., instead of having one script for "language-related task", we would have two scripts for it.) If you want me to look at something, you need to be more specific. "[We could] progress a bit further through the batch, which was encouraging at first. However, we're still encountering script terminations at a certain point." doesn't tell me much. How far? Which scripts terminate and when? Always the same scripts? Always at the same point? Or different scripts at different points? What are the error messages, if any? I don't have time to review more than a dozen scripts, involving more than 1800 external files (images, sounds, etc.), on a hunch. Simple optimizations you can do to cut down on memory usage: Re-size excessively large images. For example, d_sh_021_b.jpg alone has a resolution of 5665 x 4170 pixels and weighs in at almost 3MB on disk. In memory, that will be much larger. I doubt that any of the screens you are using comes close to having a resolution of 5665 x 4170 pixels, so that's just a waste of memory: Loading all those excess pixels costs memory, and scaling them down to the actual resolution costs memory on top. Dear Dave, yes, you are right. Thank you for being patient with us. We have re-sized the larger files. Instead of 73MB, the files now all amount to ~ 20MB. As soon as the script „pause1min.iqx“ is finished, the script still aborts (so basically, between scripts) - this position, from my runs, is the most frequent one. Yesterday I had one run, where the run aborted before „updating_position_1_kids_short_iq7_noprog.iqx“. The first error is from „introduction.iqx“ which throws: Error playing /data/user/0/com.millisecond.InquisitPlayer7/cache/scripts/75089_bcdf431c3a4d76aed3578abb63aa1b65/instruction.mp3: 0: Failed to open /data/user/0/59com.millisecond.InquisitPlayer7/cache/scripts/75089_bcdf431c3a4d76aed3578abb63aa1b65/instruction.mp3'. Line 169, File SoundPlayer_android.cpp After that, for the script „lang_block.iqx“ Inquisit says the .mp3-files for this script cannot be found. Both scripts are called within "_gc_klass1_sprache.iqx", so right after „pause1min.iqx“. I tried attaching two JPEGs to this post, but the upload did not work. So here are two links to the pictures with the error messages: (Please note that everything above those errors is warnings (e.g., „The ‚responseTrial‘ attribute has been deprecated and may not be supported in a future release.“) https://ibb.co/b5sZhpp1https://ibb.co/2wmGW36Down below you can find our batch. Of course you will not be able to check all our scripts - I was rather thinking that maybe there is something that we could change within the batch file that we are unaware of. This is the tablet I used: Samsung Galaxy Tab A7 Model Number: SM-T500 Software: Android 12 T500XXS8CXG1 ___ <batch> / file = "stop.iqx" / file = "binding_position_1_kids_short_iq7_noprog.iqx" / file = "binding_stimulus_1_kids_short_iq7_noprog.iqx" / file = "updating_position_1_kids_short_iq7_noprog.iqx" / file = "metakog_wmc_iq7.iqx" / file = "ratingscale_wmc_iq7.iqx" / file = "pause1min.iqx" / file = "_gc_klasse1_sprache.iqx" / file = "_metakog_gc_iq7_sprache.iqx" / file = "ratingscale_sprache.iqx" / file = "pause2min.iqx" / file = "_gc_klasse1_schriftsprache.iqx" / file = "_metakog_gc_iq7_schriftsprache.iqx" / file = "ratingscale_schrift.iqx" / file = "pause1min.iqx" / file = "_gc_klasse1_mathe.iqx" / file = "_metakog_gc_iq7_mathe.iqx" / file = "ratingscale_mathe.iqx" </batch> Please note that the script "_gc_klass1_sprache.iqx" contains the following: <include> / file = "setup.iqx" / file = "lang_items.iqx" / file = "stimuli.iqx" / file = "trials.iqx" / file = "blocks.iqx" / file = "lang_block.iqx" / file = "lang_placeholders.iqx" / file = "introduction.iqx" </include> <expt main> / blocks = [1 = lang_instruction; 2 = lang] / onexptbegin = [ values.startTime = script.currenttime; if(parameters.debug) { if(parameters.maxInstructionTime != -1) { values.instructionTime = parameters.maxInstructionTime * 1000; } } else { text.debugTXT.skip = true; clock.blocktimer.skip = true; } values.allowedTime = parameters.allowedTime * 1000; //- values.instructionTime; ] / onexptend = [ values.endTime = script.currenttime; ] </expt> <summarydata> / columns = (values.startTime, block.lang.timestamp, values.endTime) </summarydata> I don't see those MP3s uploaded to your web experiment, so that's why they're not found.
|
By Dave - 4/24/2025
+x+x+x+xP.S.: Do you think it could help to split the single test scripts into several parts? (i.e., instead of having one script for "language-related task", we would have two scripts for it.) If you want me to look at something, you need to be more specific. "[We could] progress a bit further through the batch, which was encouraging at first. However, we're still encountering script terminations at a certain point." doesn't tell me much. How far? Which scripts terminate and when? Always the same scripts? Always at the same point? Or different scripts at different points? What are the error messages, if any? I don't have time to review more than a dozen scripts, involving more than 1800 external files (images, sounds, etc.), on a hunch. Simple optimizations you can do to cut down on memory usage: Re-size excessively large images. For example, d_sh_021_b.jpg alone has a resolution of 5665 x 4170 pixels and weighs in at almost 3MB on disk. In memory, that will be much larger. I doubt that any of the screens you are using comes close to having a resolution of 5665 x 4170 pixels, so that's just a waste of memory: Loading all those excess pixels costs memory, and scaling them down to the actual resolution costs memory on top. Dear Dave, yes, you are right. Thank you for being patient with us. We have re-sized the larger files. Instead of 73MB, the files now all amount to ~ 20MB. As soon as the script „pause1min.iqx“ is finished, the script still aborts (so basically, between scripts) - this position, from my runs, is the most frequent one. Yesterday I had one run, where the run aborted before „updating_position_1_kids_short_iq7_noprog.iqx“. The first error is from „introduction.iqx“ which throws: Error playing /data/user/0/com.millisecond.InquisitPlayer7/cache/scripts/75089_bcdf431c3a4d76aed3578abb63aa1b65/instruction.mp3: 0: Failed to open /data/user/0/59com.millisecond.InquisitPlayer7/cache/scripts/75089_bcdf431c3a4d76aed3578abb63aa1b65/instruction.mp3'. Line 169, File SoundPlayer_android.cpp After that, for the script „lang_block.iqx“ Inquisit says the .mp3-files for this script cannot be found. Both scripts are called within "_gc_klass1_sprache.iqx", so right after „pause1min.iqx“. I tried attaching two JPEGs to this post, but the upload did not work. So here are two links to the pictures with the error messages: (Please note that everything above those errors is warnings (e.g., „The ‚responseTrial‘ attribute has been deprecated and may not be supported in a future release.“) https://ibb.co/b5sZhpp1https://ibb.co/2wmGW36Down below you can find our batch. Of course you will not be able to check all our scripts - I was rather thinking that maybe there is something that we could change within the batch file that we are unaware of. This is the tablet I used: Samsung Galaxy Tab A7 Model Number: SM-T500 Software: Android 12 T500XXS8CXG1 ___ <batch> / file = "stop.iqx" / file = "binding_position_1_kids_short_iq7_noprog.iqx" / file = "binding_stimulus_1_kids_short_iq7_noprog.iqx" / file = "updating_position_1_kids_short_iq7_noprog.iqx" / file = "metakog_wmc_iq7.iqx" / file = "ratingscale_wmc_iq7.iqx" / file = "pause1min.iqx" / file = "_gc_klasse1_sprache.iqx" / file = "_metakog_gc_iq7_sprache.iqx" / file = "ratingscale_sprache.iqx" / file = "pause2min.iqx" / file = "_gc_klasse1_schriftsprache.iqx" / file = "_metakog_gc_iq7_schriftsprache.iqx" / file = "ratingscale_schrift.iqx" / file = "pause1min.iqx" / file = "_gc_klasse1_mathe.iqx" / file = "_metakog_gc_iq7_mathe.iqx" / file = "ratingscale_mathe.iqx" </batch> Please note that the script "_gc_klass1_sprache.iqx" contains the following: <include> / file = "setup.iqx" / file = "lang_items.iqx" / file = "stimuli.iqx" / file = "trials.iqx" / file = "blocks.iqx" / file = "lang_block.iqx" / file = "lang_placeholders.iqx" / file = "introduction.iqx" </include> <expt main> / blocks = [1 = lang_instruction; 2 = lang] / onexptbegin = [ values.startTime = script.currenttime; if(parameters.debug) { if(parameters.maxInstructionTime != -1) { values.instructionTime = parameters.maxInstructionTime * 1000; } } else { text.debugTXT.skip = true; clock.blocktimer.skip = true; } values.allowedTime = parameters.allowedTime * 1000; //- values.instructionTime; ] / onexptend = [ values.endTime = script.currenttime; ] </expt> <summarydata> / columns = (values.startTime, block.lang.timestamp, values.endTime) </summarydata> I don't see those MP3s uploaded to your web experiment, so that's why they're not found. P.S.: Quick tip. If, as here, you have many fo upload, the simple way is to just ZIP them all up on your computer, then upload the ZIP. The server will extract the ZIP.
|
By pinguin - 4/25/2025
Hi Dave,
you were right - the files were online, but must have gotten lost, when we were editing the experiment. Our mistake. Good news: Now it is working and we can finish the complete test battery. The only other thing that is still pending is the issue with the headphones on those Samsung tablets. Many thanks for your patience.
Best,
pinguin
|
By pinguin - 5/2/2025
Hi Dave,
Thank you for your continued commitment to helping us get our experiment up and running—we really appreciate your support.
On the Samsung Galaxy Tab A7s, the tests are now running smoothly.
However, we did some more testing with other devices and we are still running into issues with our battery.
On an iPad Pro (2021), the error was: pause1min.iqx - Unable to load video. Error playing 'Pause_1min.mp3'. Format not supported on this device. —> This seems odd, as this iPad has 8GB of RAM.
The same was true for a Lenovo IdeaPad 5 and an iPad Air (5th generation).
On another iPad (approximately 2018), the battery aborted right before the script „_gc_klasse1_mathe.iqx“. Unfortunately, our student assistant did not photograph the error message. As „pause1min.iqx“ is presented right before this script again, maybe it has something to do with this - although this was at a much later position of the batch.
We have more questions and would appreciate your input:
1) Is RAM really the issue? 2) Is there something wrong with the file „Pause_1min.mp3“? 3) Is there any other way that we could adjust our programming so that it runs more stable, independent of the end device we will be using? 4) Do you see any more potential in shrinking any other files? Should we change the format of any of our pictures and/or sound files? 5) Is there any other way for us to run our tests? For example, if we used two separate links (i.e., two uploaded experiments) and we started with EXP1 - can we somehow transfer the subject IDs to EXP2 without typing those in manually on each given tablet?
In short: How can we keep the barrel from overflowing?
This is the most recent link: https://mili2nd.eu/eljc
Again, thank you for your support.
Best,
pinguin
|
By Dave - 5/2/2025
+xHi Dave, Thank you for your continued commitment to helping us get our experiment up and running—we really appreciate your support. On the Samsung Galaxy Tab A7s, the tests are now running smoothly. However, we did some more testing with other devices and we are still running into issues with our battery. On an iPad Pro (2021), the error was: pause1min.iqx - Unable to load video. Error playing 'Pause_1min.mp3'. Format not supported on this device. —> This seems odd, as this iPad has 8GB of RAM. The same was true for a Lenovo IdeaPad 5 and an iPad Air (5th generation). On another iPad (approximately 2018), the battery aborted right before the script „_gc_klasse1_mathe.iqx“. Unfortunately, our student assistant did not photograph the error message. As „pause1min.iqx“ is presented right before this script again, maybe it has something to do with this - although this was at a much later position of the batch. We have more questions and would appreciate your input: 1) Is RAM really the issue? 2) Is there something wrong with the file „Pause_1min.mp3“? 3) Is there any other way that we could adjust our programming so that it runs more stable, independent of the end device we will be using? 4) Do you see any more potential in shrinking any other files? Should we change the format of any of our pictures and/or sound files? 5) Is there any other way for us to run our tests? For example, if we used two separate links (i.e., two uploaded experiments) and we started with EXP1 - can we somehow transfer the subject IDs to EXP2 without typing those in manually on each given tablet? In short: How can we keep the barrel from overflowing? This is the most recent link: https://mili2nd.eu/eljcAgain, thank you for your support. Best, pinguin 1) Is RAM really the issue?
On some devices, probably. On others it may be something else. That a device has 8GB of RAM means very little. The important factor is how much of that RAM is available for Inquisit to work with. I've seen beefy iPads which had a mere 40MB of free RAM available, and 7+GB clogged up by iPadOS itself and other apps.
2) Is there something wrong with the file „Pause_1min.mp3“?
The file is mono, which some systems don't like. It's also just one second long and completely silent. Looking at the script, I can't figure out what it's purpose is or why it's needed to begin with. The pause script also suffers from various syntax issues. None of these should be critical, but who knows. The script seems ancient.
3) Is there any other way that we could adjust our programming so that it runs more stable, independent of the end device we will be using?
I can't answer that, as that would require an open-ended review of a dozen scripts. At a mimimum, I would revise legacy scripts such as the pause scripts and get rid of all the obsolete and deprecated syntax.
4) Do you see any more potential in shrinking any other files? Should we change the format of any of our pictures and/or sound files?
Nothing beyond what I said before.
5) Is there any other way for us to run our tests? For example, if we used two separate links (i.e., two uploaded experiments) and we started with EXP1 - can we somehow transfer the subject IDs to EXP2 without typing those in manually on each given tablet?
You can do that. Works no different than what's described at https://www.millisecond.com/support/docs/current/html/howto/interopsurveys.htm under "Sending the Subject ID from Inquisit to 3rd Party Sites", except you're sending the ID to another Inquisit launch page, which has to read the ID in as described under "Configuring Inquisit to Receive IDs from a 3rd Party Web Site."
|
By pinguin - 5/2/2025
Thank you for your fast reply.
We will clean up the scripts and see where this takes us.
The "Pause_1min.mp3" should not be silent - I have tried it today and it worked. The file contains someone saying "Jetzt hast du Pause" ("Now you can take a short break").
Re the Subject IDs: This is interesting to know. Before we try that: Would it also work, when we test completely offline?
|
By Dave - 5/2/2025
+xThank you for your fast reply. We will clean up the scripts and see where this takes us. The "Pause_1min.mp3" should not be silent - I have tried it today and it worked. The file contains someone saying "Jetzt hast du Pause" ("Now you can take a short break"). Re the Subject IDs: This is interesting to know. Before we try that: Would it also work, when we test completely offline? > Would it also work, when we test completely offline?
No.
|
By Dave - 5/2/2025
+x+xThank you for your fast reply. We will clean up the scripts and see where this takes us. The "Pause_1min.mp3" should not be silent - I have tried it today and it worked. The file contains someone saying "Jetzt hast du Pause" ("Now you can take a short break"). Re the Subject IDs: This is interesting to know. Before we try that: Would it also work, when we test completely offline? > Would it also work, when we test completely offline? No. As for the MP3, I would try re-encoding it to stereo at 128kbps.
|
|