Quote Originally Posted by hbacovci View Post
Sure. I had to manually create the joystick object using pyglet, instead of using the PsychoPy joystick functions. See the code below for a minimal working example.

Code:
import pyglet
joysticks = pyglet.input.get_joysticks()


for joy in joysticks:
    if joy.device.name == 'Analog Scale Device':
        joy.open()
        break

def present_pair_joystick(trial,isi,curdata): #trial is a sound object, isis is the time to wait after response/end of sound, and curdata is a dictionary used to store response data
    event.clearEvents()
    while joy.buttons[0] or joy.buttons[1]:
        continue
    curdata['trial_start']=time.time()
    trial.play()
    dur = trial.getDuration()
    while True:
        if not (joy.buttons[0] and joy.buttons[1]):
            if joy.buttons[0]:
                curdata['rt'] = time.time() - curdata['trial_start']
                curdata['resp'] = 'Word'
                break
            elif joy.buttons[1]:
                curdata['rt'] = time.time() - curdata['trial_start']
                curdata['resp'] = 'Nonword'
                break
            if 'escape' in event.getKeys():
                core.quit()
    if time.time() - curdata['trial_start'] > dur:
        core.wait(isi)
    else:
        core.wait((dur - (time.time() - curdata['trial_start'])) + isi)
    curdata['dur'] = dur
    return
Hope that helps.

Thank you for your reply. I am trying got conduct a two-alternative forced choice experiment. I was under the impression that this button box worked like a keyboard, not a joystick. Unfortunately I don't have a lot of experience outside of the builder view. Do you think it would be possible to use your code in a custom code snippet inside one of my trials? In other words I could replace the keyboard response component with a custom component. I tried this without any luck so far. Thanks again for any help.