Example #1
0
    def menuButton5(self, control):
        exampleHead = Head()
        exampleHeadModel = HeadModel(exampleHead)
        exampleHead.setSamplingFrequency(256)
        exampleHead.addRegistrationSite([0, 0, 0])
        exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 100.0)
        
        # Randomizing stimuli times
        stimuli = []
        for i in range(100):
            stimuli.append( i + 0.2 +random()/2 )
        exampleExperiment.setStimulusTimes([stimuli])
        exampleStimulus = Stimulus('Stim', exampleHead)
        exampleStimulus.setStimulusTimes(exampleExperiment.getStimulusTimes()[0])

        # Creating many generators with random frequencies in the range 2-20 Hz and
        # random phases. Connecting some of them to the stimulus generator
        exampleGenerators = []
        exampleConnections = []
        for i in range(100):
            randomFrequency = 2.0 + random() * 18
            randomPhaseShift = random()
            exampleGenerators.append(GeneratorSine('Gen', exampleHead, frequency=randomFrequency, phaseShift=randomPhaseShift))
            if(random() > 0.75):
                exampleConnections.append(Connection('Con', exampleHead, exampleStimulus, exampleGenerators[i]))

        exampleExperiment.setRecording(exampleHead.runSimulation(exampleExperiment.getDuration()))
        exampleExperiment.plotRecording()
Example #2
0
    def menuButton2(self, control):
        exampleHead = Head()
        exampleHeadModel = HeadModel(exampleHead)
        exampleHead.setSamplingFrequency(10)
        exampleHead.addRegistrationSite([0, 0, 0])

        exampleStimulus = Stimulus('Stim', exampleHead)
        exampleStimulus.setStimulusTimes([0.3, 0.6])
        exampleGenerator = GeneratorNumberIncrementing('Gen', exampleHead)
        exampleConnection = Connection('Con', exampleHead, exampleStimulus, exampleGenerator)

        exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 1.0, exampleHead.runSimulation( 1.0 ))
        output = str(exampleExperiment.getRecording())
        self.log.SetValue(output)
        self.logWindow.Show()
Example #3
0
    def menuButton4(self, control):
        exampleHead = Head()
        exampleHeadModel = HeadModel(exampleHead)
        exampleHead.setSamplingFrequency(128)
        exampleHead.addRegistrationSite([0, 0, 0])
        
        exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 10.0)
        exampleExperiment.setStimulusTimes([[0.3, 1.75, 2.16, 3.87, 4.31, 5.183, 6.34, 7.13]])

        exampleStimulus = Stimulus('Stim', exampleHead)
        exampleStimulus.setStimulusTimes(exampleExperiment.getStimulusTimes()[0])
        exampleGenerator = GeneratorSine('Gen', exampleHead)
        exampleConnection = Connection('Con', exampleHead, exampleStimulus, exampleGenerator)

        exampleExperiment.setRecording(exampleHead.runSimulation(exampleExperiment.getDuration()))
        exampleExperiment.plotRecording()
Example #4
0
 def create_stim_list(self):
     snack_names = self.df.index.values
     print(snack_names)
     stimlist = []
     for idx, stim in enumerate(snack_names):
         show = self.df['show'][idx]
         cued = self.df['cued'][idx]
         A = Stimulus(name=stim, show=show, cued=cued)
         stimlist.append(A)
     return stimlist
Example #5
0
    def menuButton3(self, control):
        exampleHead = Head()
        exampleHeadModel = HeadModel(exampleHead)
        exampleHead.setSamplingFrequency(10)
        exampleHead.addRegistrationSite([0, 0, 0])

        exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 1.0)
        exampleExperiment.setStimulusTimes([[0.3, 0.6], [0.5]])

        exampleStimulus1 = Stimulus('Stim1', exampleHead)
        exampleStimulus2 = Stimulus('Stim2', exampleHead)
        exampleStimulus1.setStimulusTimes(exampleExperiment.getStimulusTimes()[0])
        exampleStimulus2.setStimulusTimes(exampleExperiment.getStimulusTimes()[1])

        exampleGenerator1 = GeneratorNumberIncrementing('Gen1', exampleHead)
        exampleGenerator2 = GeneratorNumberIncrementing('Gen2', exampleHead)
        exampleConnection1 = Connection('Con1', exampleHead, exampleStimulus1, exampleGenerator1)
        exampleConnection2 = Connection('Con2', exampleHead, exampleStimulus2, exampleGenerator2)

        exampleExperiment.setRecording(exampleHead.runSimulation(exampleExperiment.getDuration()))
        output = str(exampleExperiment.getRecording())
        self.log.SetValue(output)
        self.logWindow.Show()
Example #6
0
 def runGenerator(self, time):
     print("[runGenerator] " + self.name + ": Preparing the stimulus")
     return Stimulus.runGenerator(self, time)
Example #7
0
from Stimulus import Stimulus

# Define length of stimulus in seconds and sampling rate in samples/second
length = 0.1
fs = 44100

# Initialise Stimulus object with given length and sampling rate
s = Stimulus(length, fs)

# Define frequency of tone
f = 1000

# Generate tone
s.pure_tone(f)

# Define start and stop frequency of sweep
start = 0
stop = 1000

# Generate frequency sweep
s.chirp(start, stop)

# Generate silence
s.silence()

# Generate noise and silence and add them together
fs = 44100

noise_length = 0.1
silence_length = 1
Example #8
0
    def testStandaloneDesign(self):
        check = 0
        try:
            generateCompatibleFormat(exp_path=os.path.abspath(
                "tests/NTU_Experiment/Data/sub_222.asc"),
                                     device="eyelink",
                                     stim_list_mode='NA',
                                     start='start_trial',
                                     stop='stop_trial',
                                     eye='B')

            generateCompatibleFormat(exp_path=os.path.abspath(
                "tests/NTU_Experiment/smi_eyetracker_freeviewing.txt"),
                                     device="smi",
                                     stim_list_mode='NA',
                                     start='12',
                                     stop='99')

            generateCompatibleFormat(exp_path=os.path.abspath(
                "tests/NTU_Experiment/tobii_sceneviewing_eyetrack_ascii.txt"),
                                     device="tobii",
                                     start='MYKEYWORD')

            temp_df = pd.read_csv(
                os.path.abspath(
                    "tests/NTU_Experiment/smi_eyetracker_freeviewing.csv"))
            del (temp_df)
            df = pd.read_csv(
                os.path.abspath("tests/NTU_Experiment/Data/sub_222.csv"))
            check = 1
        finally:
            self.assertEqual(check, 1)

        check = 0
        try:
            sensor_dict = {
                "EyeTracker": {
                    "Sampling_Freq": 1000,
                    "Display_width": 1280,
                    "Display_height": 1024,
                    "aoi_left_x": 0,
                    "aoi_left_y": 0,
                    "aoi_right_x": 1280,
                    "aoi_right_y": 1024
                }
            }

            stim = Stimulus(path=os.path.abspath("tests/NTU_Experiment"),
                            data=df,
                            sensor_names=sensor_dict,
                            start_time=0,
                            end_time=6000)

            check = 1
        finally:
            self.assertEqual(check, 1)

        check = 0
        try:
            stim.findEyeMetaData()
            features = stim.sensors["EyeTracker"].metadata
            stim.findMicrosaccades(plot_ms=True)
            stim.gazePlot(show_fig=False, save_fig=True)
            stim.gazeHeatMap(show_fig=False, save_fig=True)
            stim.visualize(show=False)
            check = 1
        finally:
            self.assertEqual(check, 1)