PennController for IBEX › Forums › Support › Randomize audios › Reply To: Randomize audios
October 18, 2021 at 6:13 pm
#7388
Keymaster
Hi,
Yes, you can use plain javascript to randomize the order of the audios. Here’s how I would go about it:
Template("training.csv", row =>
newTrial("training",
audios = [row.audio1,row.audio2,row.audio3].sort(v=>0.5-Math.random()),
newTimer("break", 1000)
.start()
.wait()
,
newImage("image1", row.image1)
.size(200, 200)
,
newImage("image2", row.image2)
.size(200, 200)
,
newImage("image3", row.image3)
.size(200, 200)
,
newCanvas("side-by-side", 700,200)
.add( 0, 0, getImage("image1"))
.add(250, 0, getImage("image2"))
.add(500, 0, getImage("image3"))
.center()
.print()
,
newSelector("selection")
.add(getImage("image1"), getImage("image2"), getImage("image3"))
.disableClicks()
.shuffle()
,
newAudio("audio1", audios[0])
.play()
.wait()
,
newTimer("break2", 1000)
.start()
.wait()
,
newAudio("audio2", audios[1])
.play()
.wait()
,
newTimer("break3", 1000)
.start()
.wait()
,
newAudio("audio3", audios[2])
.play()
,
newTimer("break4", 1000)
.start()
.wait()
,
getAudio("audio3")
.wait("first")
)
.log("group", row.group)
.log("item", row.item)
.log("condition", row.condition)
.log("audio1", audios[0])
.log("audio2", audios[1])
.log("audio3", audios[2])
)
Jeremy