
######################################################################
# Brain Workshop configuration file
# generated by Brain Workshop 4.8.4
# 
# To change configuration options:
#   1. Edit this file as desired,
#   2. Save the file,
#   3. Launch Brain Workshop to see the changes.
#
# Every line beginning with # is ignored by the program.
#
# Please see the Brain Workshop web site for more information:
#       http://brainworkshop.net
#
# The configuration options begin below.
######################################################################

[DEFAULT]

# Jaeggi-style interface with default scoring model? 
# Choose either this option or JAEGGI_MODE but not both.
# This mode allows access to Manual mode, the extra sound sets, and the
# additional game modes of Brain Workshop while presenting the game in
# the more challenging Jaeggi-style interface featured in the original study.
# With the default BW sequence generation model, the visual and auditory 
# sequences are more randomized and unpredictable than they are in Jaeggi 
# mode.  The only effect of this option is to set the following options:
#   ANIMATE_SQUARES = False, OLD_STYLE_SQUARES = True,
#   OLD_STYLE_SHARP_CORNERS = True, SHOW_FEEDBACK = False,
#   GRIDLINES = False, CROSSHAIRS = True, BLACK_BACKGROUND = True,
#   WINDOW_FULLSCREEN = True, HIDE_TEXT = True, FIELD_EXPAND = True
# Default: False
JAEGGI_INTERFACE_DEFAULT_SCORING = False

# Jaeggi mode?
# Choose either this option or JAEGGI_INTERFACE_DEFAULT_SCORING but not both.
# This mode emulates the scoring model used in the original study protocol.
# It counts non-matches with no inputs as correct (instead of ignoring them).
# It also forces 4 visual matches, 4 auditory matches, and 2 simultaneous
# matches per session, resulting in less randomized and more predictable
# sequences than in the default BW sequence generation model.  
# Different thresholds are used to reflect the modified scoring system 
# (see below).  Access to Manual mode, additional game modes and sound sets 
# is disabled in Jaeggi mode.
# Default: False
JAEGGI_MODE = False

# The default BW scoring system uses the following formula:
#     score = TP / (TP + FP + FN)
# where TP is a true positive response, FN is a false negative, etc.  All
# stimulus modalities are summed together for this formula.  
# The Jaeggi mode scoring system scores uses the following formula:
#     score = (TP + TN) / (TP + TN + FP + FN)
# Each modality is scored separately, and the score for the whole session
# is equal to the lowest score of any modality.
# Default: False
JAEGGI_SCORING = False

# In Jaeggi Mode, adjust the default appearance and sounds of Brain Workshop
# to emulate the original software used in the study?
# If this is enabled, the following options will be set:
#    AUDIO1_SETS = ['letters'],  ANIMATE_SQUARES = False,
#    OLD_STYLE_SQUARES = True, OLD_STYLE_SHARP_CORNERS = True,
#    SHOW_FEEDBACK = False, GRIDLINES = False, CROSSHAIRS = True
# (note: this option only takes effect if JAEGGI_MODE is set to True)
# Default: True
JAEGGI_FORCE_OPTIONS = True 

# In Jaeggi Mode, further adjust the appearance to match the original
# software as closely as possible?
# If this is enabled, the following options will be set:
#    BLACK_BACKGROUND = True, WINDOW_FULLSCREEN = True,
#    HIDE_TEXT = True, FIELD_EXPAND = True
# (note: this option only takes effect if JAEGGI_MODE is set to True)
# Default: True
JAEGGI_FORCE_OPTIONS_ADDITIONAL = True

# Allow Mouse to be used for input?
# Only for dual n-back. Automatically disabled in JAEGGI_MODE.
ENABLE_MOUSE = True

# Background color: True = black, False = white.
# Default: False
BLACK_BACKGROUND = False

# Begin in full screen mode?
# Setting this to False will begin in windowed mode.
# Default: False
WINDOW_FULLSCREEN = False

# Window size in windowed mode.
# Minimum recommended values: width = 800, height = 600
WINDOW_WIDTH = 912
WINDOW_HEIGHT = 684

# Skip title screen?
SKIP_TITLE_SCREEN = False

# Display feedback of correct/incorrect input?
# Default: True
SHOW_FEEDBACK = True

# Hide text during game? (this can be toggled in-game by pressing F8)
# Default: False
HIDE_TEXT = False

# Expand the field (squares) to fill the entire height of the screen?
# Note: this should only be used with HIDE_TEXT = True.
FIELD_EXPAND = False

# Show grid lines and crosshairs?
GRIDLINES = True
CROSSHAIRS = True

# Set the color of the square in non-Color N-Back modes.
# This also affects Dual Combination N-Back and Arithmetic N-Back.
# 1 = blue, 2 = cyan, 3 = green, 4 = grey,
# 5 = magenta, 6 = red, 7 = white, 8 = yellow
# Default: [1, 3, 8, 6]
VISUAL_COLORS = [1, 3, 8, 6]

# Specify image sets here. This is a list of subfolders in the res\sprites# folder which may be selected in Image mode.
# The first item in the list is the default which is loaded on startup.
IMAGE_SETS = ['polygons-basic', 'national-park-service', 'pentominoes',
              'tetrominoes-fixed', 'cartoon-faces']
            
# This selects which sounds to use for audio n-back tasks.
# Select any combination of letters, numbers, the NATO Phonetic Alphabet
# (Alpha, Bravo, Charlie, etc), the C scale on piano, and morse code.
# AUDIO1_SETS = ['letters', 'morse', 'nato', 'numbers', 'piano']
AUDIO1_SETS = ['letters']

# Sound configuration for the Dual Audio (A-A) task.
# Possible values for CHANNEL_AUDIO1 and CHANNEL_AUDIO2:
#    'left' 'right' 'center'
AUDIO2_SETS = ['letters']
CHANNEL_AUDIO1 = 'left'
CHANNEL_AUDIO2 = 'right'

# In multiple-stimulus modes, more than one visual stimulus is presented at
# the same time.  Each of the simultaneous visual stimuli has an ID number
# associated with either its color or its image.  Which should we use, by
# default?  
# Options: 'color' or 'image'
MULTI_MODE = 'color'

# Animate squares?
ANIMATE_SQUARES = False

# Use the flat, single-color squares like in versions prior to 4.1?
# Also, use sharp corners or rounded corners?
OLD_STYLE_SQUARES = False
OLD_STYLE_SHARP_CORNERS = False

# Start in Manual mode?
# If this is False, the game will start in standard mode.
# Default: False
MANUAL = False
USE_MUSIC_MANUAL = False

# Starting game mode.
# Possible values:
#  2:'Dual',
#  3:'P-C-A',
#  4:'Dual Combination',
#  5:'Tri Combination',
#  6:'Quad Combination', 
#  7:'Arithmetic',
#  8:'Dual Arithmetic',
#  9:'Triple Arithmetic',
#  10:'Position',
#  11:'Sound',
#  20:'P-C',
#  21:'P-I',
#  22:'C-A',
#  23:'I-A',
#  24:'C-I',
#  25:'P-C-I',
#  26:'P-I-A',
#  27:'C-I-A',
#  28:'Quad',
#  100:'A-A',
#  101:'P-A-A',
#  102:'C-A-A',
#  103:'I-A-A',
#  104:'P-C-A-A',
#  105:'P-I-A-A',
#  106:'C-I-A-A',
#  107:'P-C-I-A-A' (Pentuple)
#  128+x:  Crab mode
#  256+x:  Double mode (can be combined with crab mode)
#  512+x:  Triple mode
#  768+x:  Quadruple mode

# Note: if JAEGGI_MODE is True, only Dual N-Back will be available.
# Default: 2
GAME_MODE = 2

# Default starting n-back levels.
# must be greater than or equal to 1.
# Look above to find the corresponding mode number.  Add a line for the mode
# if it doesn't already exist.  Modes not specifically listed here will
# use BACK_DEFAULT instead.
#
# Crab and multi-modes will default to the level associated with the modes 
# they're based on (if it's listed) or to BACK_DEFAULT (if it's not listed).

BACK_DEFAULT = 2

BACK_4 = 1
BACK_5 = 1
BACK_6 = 1
BACK_7 = 1
BACK_8 = 1
BACK_9 = 1

# N-back level resetting:
# Should we start at the default N-back level for that game mode every
# day, or should we resume at the last day's level?
RESET_LEVEL = False

# Use Variable N-Back by default?
# 0 = static n-back (default)
# 1 = variable n-back
VARIABLE_NBACK = 0

# Number of 0.1 second intervals per trial.
# Must be greater than or equal to 4 (ie, 0.4 seconds)
# Look above to find the corresponding mode number.  Add a line for the mode
# if it doesn't already exist.  Modes not specifically listed here will
# use TICKS_DEFAULT instead.
# 
# Crab and multi-modes will default to the ticks associated with the modes 
# they're based on, *plus an optional bonus*, unless you add a line here to 
# give it a specific value.  Any bonuses will be ignored for specified modes.
TICKS_DEFAULT = 30
TICKS_4 = 35
TICKS_5 = 35
TICKS_6 = 35
TICKS_7 = 40
TICKS_8 = 40
TICKS_9 = 40

# Tick bonuses for crab and multi-modes not listed above.  Can be negative
# if you're a masochist.

BONUS_TICKS_CRAB = 0
BONUS_TICKS_MULTI_2 = 5
BONUS_TICKS_MULTI_3 = 10
BONUS_TICKS_MULTI_4 = 15

# The number of trials per session equals
# NUM_TRIALS + NUM_TRIALS_FACTOR * n ^ NUM_TRIALS_EXPONENT,
# where n is the current n-back level.

# Default base number of trials per session.
# Must be greater than or equal to 1.
# Default: 20
NUM_TRIALS = 20

NUM_TRIALS_FACTOR = 1
NUM_TRIALS_EXPONENT = 2

# Thresholds for n-back level advancing & fallback.
# Values are 0-100.
# Set THRESHOLD_ADVANCE to 101 to disable automatic level advance.
# Set THRESHOLD_FALLBACK to 0 to disable fallback.
# FALLBACK_SESSIONS controls the number of sessions below
#    the fallback threshold that will trigger a level decrease.
# Note: in Jaeggi mode, only JAEGGI_ADVANCE and JAEGGI_FALLBACK
#    are used.
# Defaults: 80, 50, 3, 90, 75
THRESHOLD_ADVANCE = 80
THRESHOLD_FALLBACK = 50
THRESHOLD_FALLBACK_SESSIONS = 3
JAEGGI_ADVANCE = 90
JAEGGI_FALLBACK = 75

# Show feedback regarding session performance.
# If False, forces USE_MUSIC and USE_APPLAUSE to also be False.
USE_SESSION_FEEDBACK = True

# Music/SFX options.
# Volumes are from 0.0 (silent) to 1.0 (full)
# Defaults: True, True, 1.0, 1.0
USE_MUSIC = True
USE_APPLAUSE = True
MUSIC_VOLUME = 1.0
SFX_VOLUME = 1.0

# Specify an alternate stats file.
# Default: stats.txt
STATSFILE = stats.txt

# Specify the hour the stats will roll over to a new day [0-23]
ROLLOVER_HOUR = 4

# Version check on startup (http protocol)?
# Default: True
VERSION_CHECK_ON_STARTUP = True

# The chance that a match will be generated by force, in addition to the
# inherent 1/8 chance. High settings will cause repetitive sequences to be
# generated.  Increasing this value will make the n-back task significantly 
# easier if you're using JAGGI_SCORING = False.
# The value must be a decimal from 0 to 1.
# Note: this option has no effect in Jaeggi mode.
# Default: 0.125
CHANCE_OF_GUARANTEED_MATCH = 0.125

# The chance that a near-miss will be generated to help train resolution of
# cognitive interference.  For example, in 5-back, a near-miss might be 
# ABCDE-FGDJK--the "D" comes one trial earlier than would be necessary 
# for a correct match.  Near-misses can be one trial short of a match, 
# one trial late, or N trials late (would have been a match if it was one
# "cycle" ago).  This setting will never accidentally generate a correct match 
# in the case of repeating stimuli if it can be avoided.
# Default:  0.125

DEFAULT_CHANCE_OF_INTERFERENCE = 0.125

# How often should Brain Workshop panhandle for a donation?  After every
# PANHANDLE_FREQUENCY sessions, Brain Workshop will annoy you slightly by 
# asking for money.  Set this to 0 if you have a clear conscience.
# Default: 100
PANHANDLE_FREQUENCY = 100

# Arithmetic mode settings.
ARITHMETIC_MAX_NUMBER = 12
ARITHMETIC_USE_NEGATIVES = False
ARITHMETIC_USE_ADDITION = True
ARITHMETIC_USE_SUBTRACTION = True
ARITHMETIC_USE_MULTIPLICATION = True
ARITHMETIC_USE_DIVISION = True
ARITHMETIC_ACCEPTABLE_DECIMALS = ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6',
    '0.7', '0.8', '0.9', '0.125', '0.25', '0.375', '0.625', '0.75', '0.875',
    '0.15', '0.35', '0.45', '0.55', '0.65', '0.85', '0.95',]

# Colors for the color n-back task
# format: (red, green, blue, 255)
# Note: Changing these colors will have no effect in Dual or
#   Triple N-Back unless OLD_STYLE_SQUARES is set to True. 
# the _BLK colors are used when BLACK_BACKGROUND is set to True.
COLOR_1 = (0, 0, 255, 255)
COLOR_2 = (0, 255, 255, 255)
COLOR_3 = (0, 255, 0, 255)
COLOR_4 = (48, 48, 48, 255)
COLOR_4_BLK = (255, 255, 255, 255)
COLOR_5 = (255, 0, 255, 255)
COLOR_6 = (255, 0, 0, 255)
COLOR_7 = (208, 208, 208, 255)
COLOR_7_BLK = (64, 64, 64, 255)
COLOR_8 = (255, 255, 0, 255)

# text color
COLOR_TEXT = (0, 0, 0, 255)
COLOR_TEXT_BLK = (240, 240, 240, 255)

# input label color
COLOR_LABEL_CORRECT = (64, 255, 64, 255)
COLOR_LABEL_OOPS = (64, 64, 255, 255)
COLOR_LABEL_INCORRECT = (255, 64, 64, 255)


# Saccadic eye movement options.
# Delay = number of seconds to wait before switching the dot
# Repetitions = number of times to switch the dot
SACCADIC_DELAY = 0.5
SACCADIC_REPETITIONS = 60

######################################################################
# Keyboard definitions.
# The following keys cannot be used: ESC, X, P, F8, F10.
# Look up the key codes here:
# http://pyglet.org/doc/api/pyglet.window.key-module.html
######################################################################

# Position match. Default: 97 (A)
KEY_POSITION1 = 97

# Sound match. Default: 108 (L)
KEY_AUDIO = 108

# Sound2 match. Default: 59 (Semicolon ;)
KEY_AUDIO2 = 59

# Color match. Default: 102 (F)
KEY_COLOR = 102
# Image match. Default: 106 (J)
KEY_IMAGE = 106

# Position match, multiple-stimulus mode.  
# Defaults:  115 (S), 100 (D), 102 (F)
KEY_POSITION2 = 115
KEY_POSITION3 = 100
KEY_POSITION4 = 102

# Color/image match, multiple-stimulus mode.  KEY_VIS1 will be used instead
# of KEY_COLOR or KEY_IMAGE.
# Defaults: 103 (G), 104 (H), 106 (J), 107 (K)
KEY_VIS1 = 103
KEY_VIS2 = 104
KEY_VIS3 = 106
KEY_VIS4 = 107


# These are used in the Combination N-Back modes.
# Visual & n-visual match. Default: 115 (S)
KEY_VISVIS = 115
# Visual & n-audio match. Default: 100 (D)
KEY_VISAUDIO = 100
# Sound & n-visual match. Default: 106 (J)
KEY_AUDIOVIS = 106

# Advance to the next trial in self-paced mode. Default: 65293 (return/enter).
# You may also like space (32).
KEY_ADVANCE = 65293

######################################################################
# This is the end of the configuration file.
######################################################################
