Welcome!

Sign in with your CogSci, Facebook, Google, or Twitter account.

Or register to create a new account.

We'll use your information only for signing in to this forum.

Supported by

Issue in compatibility - visual.GratingStim() in 64 bit system with 32 bit system in psychop

sagarcogsagarcog Posts: 3
edited April 2016 in Miscellaneous

Hello All,

I am working on displaying visual stimuli using the visual.GratingStim() function. The program seeks to show a combination of vertical and horizontal white & black lines that alternate one after the other.
I have no issues with the methodology & the overall sequence of how the program runs.

The issue I am facing is that while the lines get displayed quite well on a Windos 64 bit system, but when the program is run on a 32 bit system with 4 times the RAM, there is a flickering effect that gets induced along with a rainbow effect.

Can someone suggest what to do, if I want a smooth display of the alternating lines on a 32 bit system and whether some changes in the visual.GratingStim() function are suggested.
The code also sends a trigger to a brainvision actichamp EEG system when it changes its sequence speed.

The code is as follows:

from psychopy import visual, core, event, monitors, gui, data 
import numpy as np
import os
import sys
import psychopy
import pygame
import time
import random 
import winsound
from random import shuffle
from psychopy import parallel


try:
    from ctypes import windll
    global io
    io = windll.dlportio # requires dlportio.dll !!!
    print 'Parallel port open'
except:
    print 'The parallel port couldn\'t be opened'


myWinIN = visual.Window(
    size=(1920, 1080),
    allowGUI=False,
    monitor="testMonitor",
    fullscr=True,
    units="deg",
    color=[1, 1, 1])


myWinIN.setMouseVisible(False)
psychopy.event.Mouse(visible = False, newPos = None, win = None)
Instruction = visual.TextStim(win = myWinIN,text = 'Experiment is About to Start Be Ready',pos=(0.0, 0.0), color=(1.0, -1.0, -1.0), colorSpace='rgb', opacity=1.0, contrast=1.0)
myWinIN.flip()
Instruction.draw(win = myWinIN)
myWinIN.flip()
core.wait(4)


#create a window
mywin = visual.Window([1920,1080],monitor="testMonitor", units="pix")
mywin.setMouseVisible(False)
psychopy.event.Mouse(visible = False, newPos = None, win = None)
grating = visual.GratingStim(win=mywin, mask='none', size=1366, pos=[0.0,0.0], contrast=0.0)

message = visual.TextStim(mywin, text='+',height=50.0, color=[0,0,0])
message1 = visual.TextStim(mywin, text='+',height=50.0, color=[-1,-1,-1])
grating.draw()
message1.draw()
mywin.flip()  
core.wait(2)
t=0
bw=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
#bw=[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, .15]
#bw=[15, 16, 17, 18, 19, 20]

#bw=[1, 2]

for i in range(20):
    width=2*bw[i]
    print width
    s=(1080,1920)
    a=np.ones(s)*1
    print a.shape
    b=np.ones(s)*1 
    [r,c]=a.shape

    for ib in range(bw[i]):

          a[:,ib:c:width]=-1;

          b[ib:r:width,:]=-1; 


    for k in range(20):
      for key in event.getKeys():
            if key in ['escape', 'q']:
             mywin.close()
             core.quit()
      myStim = visual.GratingStim(mywin,size=1920, contrast=1.0, tex=a, mask='none',pos=[0.0,0.0])
      myStim.draw() 
      message.draw()
      mywin.flip()


      if k == 0:

        try:

            windll.inpout32.Out32(0x0000D100, i+1)

            core.wait(0.01)
            windll.inpout32.Out32(0x0000D100, 0)
        except:
            print 'Error sending trigger'

      core.wait(0.002)
      myStim = visual.GratingStim(mywin,size=1920, contrast=1.0, tex=a, ori=90, mask='none',pos=[0.0,0.0])
      myStim.draw()
      message.draw()
      mywin.flip()
      core.wait(0.002)  
    grating.draw()
    message1.draw()
    mywin.flip()  
    core.wait(2)
Sign In or Register to comment.