Group: Forum Members
Posts: 2,
Visits: 8
|
Hello everyone, I am designing a task in which I show a few pictures of a sound icon at a time. In each trial, they have to listen to different audios (one for each of the icons), and then select one of those icons. I already know how to click an image for sound, but I need them to listen to all the audios in the screen (at most 7 per trial) and then select one of them by clicking. Participants should be able to listen to the audio only once. Any thoughts on how to code this???
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+xHello everyone, I am designing a task in which I show a few pictures of a sound icon at a time. In each trial, they have to listen to different audios (one for each of the icons), and then select one of those icons. I already know how to click an image for sound, but I need them to listen to all the audios in the screen (at most 7 per trial) and then select one of them by clicking. Participants should be able to listen to the audio only once. Any thoughts on how to code this??? Things like this have been discussed before, e.g. here: https://forums.millisecond.com/Topic34252.aspx
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+x+xHello everyone, I am designing a task in which I show a few pictures of a sound icon at a time. In each trial, they have to listen to different audios (one for each of the icons), and then select one of those icons. I already know how to click an image for sound, but I need them to listen to all the audios in the screen (at most 7 per trial) and then select one of them by clicking. Participants should be able to listen to the audio only once. Any thoughts on how to code this??? Things like this have been discussed before, e.g. here: https://forums.millisecond.com/Topic34252.aspx And here's a simple example based off the linked thread, doing the same thing with hover-overs: <block example> / onblockbegin = [ list.responses.reset(); ] / trials = [1=hovertrial] </block>
<list responses> </list>
<trial hovertrial> / ontrialend = [ list.responses.appenditem(trial.hovertrial.response) ] / stimulusframes = [1=a, b, c] / inputdevice = mouseover / validresponse = (a, b, c) / isvalidresponse = [ list.responses.indexof(trial.hovertrial.response) == -1; ] / branch = [ return trial.soundtrial; ] / recorddata = false </trial>
<trial soundtrial> / ontrialbegin = [ trial.soundtrial.resetstimulusframes(); if (trial.hovertrial.response == "a") { trial.soundtrial.insertstimulusframe(text.asound, 1); } else if (trial.hovertrial.response == "b") { trial.soundtrial.insertstimulusframe(text.bsound, 1); } else if (trial.hovertrial.response == "c") { trial.soundtrial.insertstimulusframe(text.csound, 1); }; ] / inputdevice = mouse / trialduration = 2000 / branch = [ if (list.responses.itemcount < 3) { return trial.hovertrial; } else { return trial.clicktrial; } ] / recorddata = false </trial>
<trial clicktrial> / stimulusframes = [1=a, b, c] / inputdevice = mouse / validresponse = (a, b, c) </trial>
<text a> / items = ("A") / position = (25%, 50%) / erase = false </text>
<text b> / items = ("B") / position = (50%, 50%) / erase = false </text>
<text c> / items = ("C") / position = (75%, 50%) / erase = false </text>
<text asound> / items = ("Imagine sound A playing...") / position = (50%, 30%) </text>
<text bsound> / items = ("Imagine sound B playing...") / position = (50%, 30%) </text>
<text csound> / items = ("Imagine sound C playing...") / position = (50%, 30%) </text>
|
Group: Forum Members
Posts: 2,
Visits: 8
|
+x+x+xHello everyone, I am designing a task in which I show a few pictures of a sound icon at a time. In each trial, they have to listen to different audios (one for each of the icons), and then select one of those icons. I already know how to click an image for sound, but I need them to listen to all the audios in the screen (at most 7 per trial) and then select one of them by clicking. Participants should be able to listen to the audio only once. Any thoughts on how to code this??? Things like this have been discussed before, e.g. here: https://forums.millisecond.com/Topic34252.aspx And here's a simple example based off the linked thread, doing the same thing with hover-overs: <block example> / onblockbegin = [ list.responses.reset(); ] / trials = [1=hovertrial] </block>
<list responses> </list>
<trial hovertrial> / ontrialend = [ list.responses.appenditem(trial.hovertrial.response) ] / stimulusframes = [1=a, b, c] / inputdevice = mouseover / validresponse = (a, b, c) / isvalidresponse = [ list.responses.indexof(trial.hovertrial.response) == -1; ] / branch = [ return trial.soundtrial; ] / recorddata = false </trial>
<trial soundtrial> / ontrialbegin = [ trial.soundtrial.resetstimulusframes(); if (trial.hovertrial.response == "a") { trial.soundtrial.insertstimulusframe(text.asound, 1); } else if (trial.hovertrial.response == "b") { trial.soundtrial.insertstimulusframe(text.bsound, 1); } else if (trial.hovertrial.response == "c") { trial.soundtrial.insertstimulusframe(text.csound, 1); }; ] / inputdevice = mouse / trialduration = 2000 / branch = [ if (list.responses.itemcount < 3) { return trial.hovertrial; } else { return trial.clicktrial; } ] / recorddata = false </trial>
<trial clicktrial> / stimulusframes = [1=a, b, c] / inputdevice = mouse / validresponse = (a, b, c) </trial>
<text a> / items = ("A") / position = (25%, 50%) / erase = false </text>
<text b> / items = ("B") / position = (50%, 50%) / erase = false </text>
<text c> / items = ("C") / position = (75%, 50%) / erase = false </text>
<text asound> / items = ("Imagine sound A playing...") / position = (50%, 30%) </text>
<text bsound> / items = ("Imagine sound B playing...") / position = (50%, 30%) </text>
<text csound> / items = ("Imagine sound C playing...") / position = (50%, 30%) </text> Thanks, it really helped! :)
|