Share

Psychology Experiment Building Language

File Release Notes and Changelog

Release Name: 0.09

Notes:

                 RELEASE NOTES
-------------------------------------------------
Version 0.09


* Added RotoZooming code.  Now, all graphical objects (textboxes,
labels, imageboxes, but not currently simple shapes) have properties
xzoom, yzoom, and rotation.  These objects can be stretched and
rotated using these properties;


Also, two new generic drawing objects have been added: Polygon and Bezier:

  Polygon(<x>,<y>,<xpoints>,<ypoints>,<color>,<filled>)
  Bezier(<x>, <y>, <xpoints>, <ypoints>, <steps>, <color>)


These allow arbitrary polygons to be created.  

  Three new functions allow fairly flexible operations 
  on sets of points, which can then be turned into polygons.
  They take a list of x,y pairs, and perform the  appropriate operation

  RotatePoints(points,theta)      Where theta is in radians
  ReflectPoints(points)           Reflects left-right along vertical axis
  ZoomPoints(points, xzoom,yzoom) Resizes x/y dimensions of set of points
             

  Two helper functions create sets of points that can be used
  in the above, or fed into polygon.

  MakeStarPoints(<outer radius>, <inner radius>, <number of peaks>)
  MakeNGonPoints(<radius>,<number of edges>)


A few helper functions build ready-made polygons that can be added
directly to a window:
    
 BlockE(x,y,h,w,thickness,direction,color)
  Here, direction indicates where the E is pointing: 
     1=right, 2=down, 3=left, 4=up.

 Plus(x,y,size, width, color)


* Made package relocatable on linux/mac (thanks to binreloc)

* Added a script variable to control busy-waiting:
    set gSleepEasy <- 1 to put mini sleeps in the busy wait loop.
    This reduces the timing resolution by a little (tests show it
    can lose  1-2 ms in comparison to the busy-wait strategy.
    This may make PEBL useable on some older systems, and may make
    worst-case timing better with a small sacrifice of typical-case.
    Furthermore, it can be changed during the script, so you don't peg
    cpu time while instructions are being read.

* Fixed labels so that you can assign a font with label.font <- font

* The color of the window can be accessed with window.BGCOL

* Added limited mouse events.  The new functions include:
  WaitForMouseButton(),
  This takes no arguments, and returns a 4-tuple list, indicating:
  [xpos, ypos, button_id [1-3], "<pressed>" or "<released>"]
  SetMouseCursorPosition(x,y)
  GetMouseCursorPosition()  (returns [x,y]

 A new version of the "iowa" gambling task demos clicking
  interface instead of keyboard.  In addition, a new demo experiment
  hunt.pbl uses some mouse-controlled event to search for a target.

* Added IsWindow() and IsShape()

* Helper functions for easy creation of labels and textboxes:

 EasyLabel(text,x,y,win,fontsize)
 EasyTextBox(text,x,y,win,fontsize,width,height)

 No need to define fonts, colors, sizes, or even adding/moving to the
 location you want--It does it all as a one-liner.

* Helper function to get subject number (if none was set in the
  launcher

 GetSubNum(win) 

  It will get and return a subject identifier.  
  After a window has been defined, a simple thing to do is

  if(gSubNum == 0)
  {
   gSubNum <- GetSubNum(win)
  }

* Added SummaryStats(<data>, <conditions>) , a statistic summarizer
  function, which computes  means/sds/medians of <data> by
  <conditions>.  Currently, <data> must be a single list
  
* Added PrintList(<list>) and FilePrintList(<file>,<list>), which
  print out a list without the , and [] formatting.

* Fixed some bugs in the windows launcher

* Added a PrintProperties() function, mainly for debugging.  Use it to 
display the properties an object has defined.

* Fixed a bunch of things in the test battery.  This release
  officially contains Battery Version 0.3.

   Ten new tests: 
   	   * The Stroop test, 
	   * 2-column addition
 	   * 4-choice RT, 
	   * Lexical Decision task, 
	   * (Posner's) Spatial Cueing task,
	   * PEBL Manual Dexterity task
       * PEBL compensatory tracking task (ptracker)
       * A Mental rotation task 
 	   * Matrix rotation task
       * Time wall, a visual time production/estimation task.
   -Much improved version of Berg's Cardsort. Fixed bugs, added proper
   computation of perseverations, etc.
   -Added a mouse-driven version of Bechera's Gambling Task, and some
   other fixes.

Summary list of new functions:
 IsShape *
 IsWindow *
 GetSubNum 
 PrintList 
 FilePrintList 
 SummaryStats 
 EasyLabel
 EasyTextBox
 WaitForMouseButton 
 GetMouseCursorPosition 
 SetMouseCursorPosition 
 BlockE 
 Plus 
 MakeStarPoints 
 MakeNGonPoints 
 ZoomPoints
 ReflectPoints
 RotatePoints
 Polygon
 Bezier
 PrintProperties 



Changes: