Hi There,
You can define a picture as follows:
<picture mypic>/ items = ("mypic.jpg")/ position = (50%, 20%)</picture>
and a sound as follows:
<sound mysound>/ items = ("mysound.wav")</sound>
Finally, you can connect them using a <trial> element:
<trial mytrial>/ stimulustimes = [1=mypic]/ inputdevice = mouse/ validresponse = (mypic)/ responsemessage = (mypic, mysound, 0)/ responseinterrupt = trial</trial>
That should hopefully give you the idea.
-Sean
"To understand recursion, you must first understand recursion." - Unknown Zen Master
Hi Dave, Hi Plush, Hi Sean,
I stumbled across the same problem as Plush did. I'd like to be able to play back a soundfile repeatedly by clicking on a button / picture. To further complicate things, there should be a likert element on the same frame.
As I understood from your post, Dave, this would require to "nest" trials within trials, which is not possible in Inquisit at this time - or is it?
Best,
Klemens
Klemens:As I understood from your post, Dave, this would require to "nest" trials within trials, which is not possible in Inquisit at this time - or is it?
I don't see why one would need to "nest" trials in this case.
Klemens:I stumbled across the same problem as Plush did. I'd like to be able to play back a soundfile repeatedly by clicking on a button / picture. To further complicate things, there should be a likert element on the same frame.
Here's what you need to do:
(1) Don't (!) use Inquisit's <likert> element in this case. Instead build your own likert scale as exemplified by this sample script: http://www.millisecond.com/download/samples/v2/CustomLikert/customlikert.zip
(2) Add your sound stim and the button as an additional stimulus / response to the custom likert <trial>.
(3) Apply branching logic to the <trial>: If subject clicks on button, repeat the trial. If subject submits a rating, move on to the next trial.
(4) Be careful about item selection. In case of a button press you need to avoid selecting a new sound stim (in case you have several). Use dummy trials to do the item selection.
Regards,
~Dave
Hi Dave,
thanks for your quick reply - this is a great forum!! I spent the last few days trying to figure out a way to link the approach you suggested with some advice from older post about paired comparisons (http://www.millisecond.com/community/forums/t/1106.aspx, http://www.millisecond.com/community/forums/p/976/2511.aspx)
I should have been more specific from the beginning: What I'd like to do is a paired comparisons-study with several auditory stimuli. In each comparison trial, the two sounds to be compared should only be triggered by user action (i.e. by clicking on one of two sound buttons, as opposed to clicking on the likert scale in order to give a rating).
Here's what I've accomplished so far:
What I do not know yet is how to set up the dummy trial that selects new sound stimuli. Also, clicking the buttons starts playing the sound stims, but unfortunately starts a new trial at the same time (which is not a big surprise).
Here's my script:
<sound sound1>/ items = sounds/ select = sound1select</sound>
<sound sound2>/ items = sounds/ select = sound2select</sound>
<item sounds>/1 = "stimulus1.wav"/2 = "stimulus2.wav"/3 = "stimulus3.wav"/4 = "stimulus4.wav" </item>
<counter sound1select>/ items = (1, 1, 1,2, 2,3)/ select = noreplace </counter>
<counter sound2select>/ items = (2, 3, 4,3, 4,4)/ select = current(sound1select) </counter>
<picture button1>/ items = ("button1.jpg")/ position = (counter.bswitch1.selectedvalue, 35%)/ erase = true(255, 255, 255)</picture>
<picture button2>/ items = ("button2.jpg")/ position = (counter.bswitch2.selectedvalue, 35%)/ erase = true(255, 255, 255)</picture>
<counter bswitch1>/ items = (40, 60)/ select = noreplace/ selectionrate = always</counter>
<counter bswitch2>/ items = (60, 40)/ select = current(bswitch1)</counter>
<trial comparison>/ stimulusframes = [1=button1, button2, likertscale, b1, b2, b3, b4, b5, b6, b7]/ inputdevice = mouse/ validresponse = (button1, button2, b1, b2, b3, b4, b5, b6, b7)/ responsemessage = (button1, sound1, 0)/ responsemessage = (button2, sound2, 0)/ responseinterrupt = trial/ branch = [if (trial.comparison.response == button1|| trial.comparison.response == button2) trial.comparison]/ branch = [if (trial.comparison.response == b1 || trial.comparison.response == b2 || trial.comparison.response == b3 || trial.comparison.response == b4 || trial.comparison.response == b5 || trial.comparison.response == b6 || trial.comparison.response == b7) trial.itemselection]</trial>
<trial itemselection>???/ branch = [trial.comparison]</trial>
<block allcomparisons>/ trials = [1-6= noreplace(comparison)]</block>
Thanks a lot for your help for which I'm very, very grateful,
I'd be willing to invest a little time and look into this. However, I'd appreciate if you could put the script you pasted above as well as all supporting files (pictures, sounds) into a zip-file and either attach it to this thread (see the 'options' tab when replying) or upload it somewhere else. I'd like to have something to work with that will actually parse instead of throwing missing file errors on end...
I really appreciate your help. You can download the zip file from the link below:
http://rapidshare.com/files/283436577/Paired_Comparison.zip.html
Hi Klemens,
got the file and will take a look. Probably not gonna get to this today, but will post tomorrow.
I'm just thinking about splitting up the comparison trial and the stimulus selection "dummy" trial and place them in seperate blocks. In this way, I could set the selectionrate of the stimulus selection counter to "block". Then I'd be able to branch to a new block containing only the dummy trial after a rating has been given, whereas clicking on the buttons does not change blocks but only plays back the sound and afterwards repeats the comparison trial.
Do you think this could work?
Best, Klemens
This might work, but honestly doesn't strike me as a particularly efficient approach. Alas, you might want to check out the script attached to this reply first. I've tweaked your setup quite a bit. Item selection is done via a dummy trial as indicated earlier. And since you want participants to rate two sounds on their similarity, the script now only allows submitting a rating if the participant has actually listened to each sound at least once. Hope you can make something out of it...