Introduction

There are some advanced examples stored in the BrainStim\Examples\BrainStim\Advanced Examples\ directory. The documentation of these examples is not detailed because they expect you to have some basic knowledge about BrainStim and Scripting. This document summarizes these examples together with a short explanation.

Some examples make use of the BrainStim\Examples\BrainStim\Common directory for files that are (or can be) shared with other examples for saving disk space and therefore also keeping the BrainStim installer as small as possible. If you plan to create your own experiment or script using one of the example file(s) as a template you should copy all the used files. Bear in mind that there might be some references to the \Common\ sub-directory that you should not forget to copy.

Examples

 The following examples are available in the sub-directories of the BrainStim\Examples\BrainStim\Advanced Examples\ directory.

Sub-directory FileName Description
BrainStim FileSearch FileListing.qs example that shows how you can use BrainStim for an administrative task such as searching for files inside a directory (and sub-directories) of a specified file type.
BrainStim QML2Viewer QML2Viewer.qs example that shows how we can make use of a QML2Viewer script object to create a QML scene in a custom script. Furthermore it shows how you can change the output windows features, like position, screen number, etc.
Experiment FingerTapping FingerTapping.qs an example of an complete FingerTapping experiment, it shows how you can make use of the default "BasicQMLExperiment.qs" include file to create quickly a new experiment. It logs keyboard presses and uses key '5' for triggering the Experiment Structure that contains a Block Loop for block repetitions. Furthermore the QML file defines some Animations. A Prt file (*.prt) (see this document) that stores the stimulation protocol is also available.
ExperimentStructure BlockLoops BlockLoops.qs example of an experiment structure file that has multiple Block Loops defined.
ExperimentStructure CustomParameters CustomParameters.qs example of how you can make use of custom parameters that are defined in the Experiment file or script.
ExperimentStructure DynamicEditing ExperimentStructureEditing.qs example that shows how we can manage (load, create, access and change) the ExperimentStructure from inside a custom script.
QML ImageBuffer ImageBuffer.qs an example that shows how you can make use of the Image Buffering capabilities of the QML2Viewer class, read this document for more information. The experiments first loads images from disk, buffers them and then changes, adds, removes and updates the images from the Image Buffer. After that the images are rapidly presented in a Image element of a QML scene from the image buffer (memory).
QML MediaPlayer MediaExample.qs an example of how you can make use of Audio and Movie files in your experiments using QML.
QML Ogre3D Ogre3D_Example1.qs and Ogre3D_Example2.qs two examples that show how you can make use of the Ogre3D item in a QML scene for presenting and controlling dynamic 3D environments(meshes, cameras, lighting, shaders).
QML OpenGL Shaders MovingDots.qs complete example experiment that makes use of OpenGL shaders within QML to create a space scene consisting of random moving dots.
QtScript Timers Timer_Example1.qs example that shows the use of different timer types, each timer type has it's own pros and cons.
QtScript UserInterfaces <Multiple Files> a collection of examples that show how you can create a User Interface inside a script and use that for interaction between your script and end-user.
Retinotopy CustomPainting CustomPainting.qs extended example of an experiment showing custom dynamic drawings (plaids) using a RetinoMapper object with a custom script paint handler function.
Retinotopy Output MovingBarsRetinotopy.qs complete example experiment of an Retinotopy experiment that can be used for Population Receptive Field Estimation, read this document for a detailed description and usage guide of the experiment example.