+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>