14
Psychophysics Software Suite Yearly project for Dr. Karen Banai

Psychophysics Software Suite

Embed Size (px)

DESCRIPTION

Psychophysics Software Suite. Yearly project for Dr. Karen Banai. General Description. - PowerPoint PPT Presentation

Citation preview

Page 1: Psychophysics Software Suite

Psychophysics Software Suite

Yearly project for Dr. Karen Banai

Page 2: Psychophysics Software Suite

General DescriptionThe project aim was to provide a simple GUI based application that would allow to find a minimal difference that a listener can detect along various acoustic parameters (e.g., frequency, duration, AM, FM, duration of gap in noise or between noise and tone)

There are several commercial applications that provide similar functionality , but no GPL ones.

Page 3: Psychophysics Software Suite

Types of Sound Stimuli Supported• Pure Tone

Harmonic single frequency generated sound• Accord

The sound consist of a number of harmonics• Noise

Random noise with a ability to define its spectrum• Modulated

Amplitude or frequency modulated sound• Gap

Two sounds with a user defined gap between

Page 4: Psychophysics Software Suite

The cornerstone: Sound+duration : int+intensity : int-sample_frequency : int-bits : int

+play()+generate()+getType()+clone()+Sound() : Sound

Sound

+start_frequency : int+stop_frequency : int

+NoiseSound() : NoiseSound+play()+generate()+getType()+clone()

NoiseSound

+message_sound : Sound+mod_depth : int+mod_type : Modulation+carrier_frequency : int

+ModulatedSound() : ModulatedSound+play()+generate()+getType()+clone()

ModulatedSound

+gap : int-sound1 : Sound-sound2 : Sound

+GapSound() : GapSound+play()+generate()+getType()+clone()

GapSound

+frequencies : int[]

+AccordSound() : AccordSound+play()+generate()+getType()+clone()

AccordSound

+frequency : int

+PureSound() : PureSound+play()+generate()+getType()+clone()

PureSound

CreateGapSound CreatePureSound CreateNoiseSound CreateAccordSound CreateModulatedSound

ChooseSound

Class

1

1

2

1

Visual Paradigm for UML Community Edition [not for commercial use] Visual Paradigm for UML Community Edition [not for commercial use]

Page 5: Psychophysics Software Suite

The Tools

• Test ToolThe applet allows to compose or edit PSS test scenario according to the needs.

• Run ToolThe applet launches composed PSS test scenario and saves the collected test results.

• Analysis ToolThe applet allows to open and analyze PSS test results.

Page 6: Psychophysics Software Suite

+AM+FM

<<enumeration>>Modulation

+name : String+theme : String+test : Test+reference_sound : Sound+step_mode : IncrementType+based_on : BlockType+start_at : int+stop_at : int+step_on : Parameter+delta : int+ISI : int+ITI : int+task : String+big_step : int+int_step : int+smal_step : int+big2int : int+int2small : int+small2end : int+total2end : int-GUI : JavaMainFrame-current_delta : int-current_value : int-current_mode : int-current_mode_steps : int-current_direction : int-last_direction : int-total_steps : int-correct_answers : int-wrong_answers : int-answers : int[]-semaphore : Semaphore

+Block() : Block+setTest(test)+play()+check(answer)+next(answer)+enableGUI()+disableGUI()+start(code)+stop(code)

Block

+additive+multiplicative

<<enumeration>>IncrementType

+reversals+trials

<<enumeration>>BlockType

+duration+frequency+intensity+mod_frequency+mod_depth+start_frequency+stop_frequency+noise_intensity

<<enumeration>>Parameter

+name : Sting+create_time : int+play_time : int+blocks : Block[]+filename : String+current_block : Block

+Test(name) : Test+play()+save()+addBlock(block)+removeBlock(block)+up(block_number)+down(block_number)

Test

+newTest()+openTest()+saveTest()+editBlock()+addBlock()+removeBlock()+moveUp()+moveDown()

CreateTest (Test Tool)

+RunTest()

Run Tool

+AnalyseTest()

Analysis Tool

+TestTool()+RunTool()+AnalysisTool()

Tools

Class

launches

1..*consist of

launches

launches

analyzes

executes

manages

Visual Paradigm for UML Community Edition [not for commercial use] Visual Paradigm for UML Community Edition [not for commercial use]

PSS Test

Page 7: Psychophysics Software Suite

Architecture

Java Virtual machine

Matlab PSS GUI

PSS Application

Page 8: Psychophysics Software Suite

Problems and Solutions (1)

• How to combine the client requirements of implementation under Matlab and a requirement of project modularity and scalability?

To use Matlab OOP ( available from Matlab version R2008a and up)

Page 9: Psychophysics Software Suite

Problems and Solutions (2)

• Matlab object fields names are changed or created in code, but are inaccessible by the script.

It’s not a bug, it’s a feature. The feature is needed to speed up Matlab OOP scripts , so object fields are cached. Restart Matlab to correct the problem.

Page 10: Psychophysics Software Suite

Problems and Solutions (3)

• Matlab lacks thread programming , yet there is a need in simultaneous video play (GUI mouse dance ) and sounds’ generation.

We’re used the fact that Matlab is build on Java platform, so it’s possible to integrate Java JFrame class ( PSS GUI) with Matlab script.Several Java threads were used inside JFrame.

Page 11: Psychophysics Software Suite

Problems and Solutions (4)

• How to synchronize various blocks inside PSS Test with Matlab ?

To use standard Matlab waitfor() with a hidden object, whose property change triggers the next block.

Page 12: Psychophysics Software Suite

Example

Page 13: Psychophysics Software Suite
Page 14: Psychophysics Software Suite

Results