You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You should now be ready to run Bassoon. Locate the file called <em>main.py</em>, which is located in /Bassoon/src/. Either open this file in your IDE and press run, or run it directly from your terminal (on Windows: <code>python /path/to/main.py</code>). If the Bassoon window launches then you're ready to go! If you encounter an error (either here or at any further step) make sure you have the neccessary dependencies installed.
209
209
</p>
210
210
<h5id="commonProblemsAnchor">Common Problems</h5>
211
-
<p>This section is contains a list of known errors that users have encountered while trying to install Bassoon.
211
+
<p>This section contains a list of known errors that users have encountered while trying to install Bassoon.
212
212
<ul>
213
213
<li><em>Package Versions:</em> pip installing psychopy should give you the most up to date version with no dependency conflicts. If you run into errors installing or using the manually installed packages (tk and pyserial) try explicitly installing the following versions:
214
214
<ulstyle="list-style-type: none;">
@@ -273,7 +273,7 @@ <h3 id= "epeAnchor">Experiments, Protocols, and Epochs</h3>
273
273
<ul>
274
274
<li>Each protocol has a .py file associated with it in <em>Basson/src/protocols</em>. This file defines the stimulus, its parameters, and what happens when it is run. There is a common set of functions that each protocol contains, including <code>__init__()</code>, <code>estimateTime()</code>, and <code>run()</code>:
275
275
<ul>
276
-
<li><code>__init()__</code>: Initializes the protocol (i.e., is executed when the protocol object is created by Bassoon - specifically, this happens when the user adds the protocol to their experiment sketch using the "Add Stimulus" button in the GUI). Listed at the top of this function are several attributes. Some are common across stimuli, while others are particular to certain stimuli. When a user "customizes" a stimulus, they are modifying these attributes. Any attribute that starts with an underscore "_" charcter, however, is not customizable by the user (e.g., <code>self._angle offset</code>). These underscore properties are manipulated programatically by Bassoon.</li>
276
+
<li><code>__init()__</code>: Initializes the protocol (i.e., is executed when the protocol object is created by Bassoon - specifically, this happens when the user adds the protocol to their experiment sketch using the "Add Stimulus" button in the GUI). Listed at the top of this function are several attributes. Some are common across stimuli, while others are particular to certain stimuli. When a user "customizes" a stimulus, they are modifying these attributes. Any attribute that starts with an underscore "_" charcter, however, is not customizable by the user (e.g., <code>self._angleOffset</code>). These underscore properties are manipulated programatically by Bassoon.</li>
277
277
<li><code>estimateTime()</code>: A function that approximates the total time that the stimulus will take to run, based on key properties. The mechanics of this function are similar across protocols, but vary according to the specifics of how the protocol's <code>run()</code> function is designed.</li>
278
278
<li><code>run()</code>: This is where Bassoon calls on the psychopy libraries to build and execute stimuli. The first half of the function typically involves creating the initial state of the stimulus and performing some computations that will be used to dynamically modify the stimulus during the stimTime. The <code>run()</code> function almost always also contains a for-loop, which iterates through each epoch to sequentially present them. In the loop, the psychopy stimulus is repeatedly updated and pushed to the stimulus monitor on every frame. This update step typically involves updating some parameter of the stimulus to make it dynamic across time (e.g., changing the position of a drifting bar stimulus on each frame such that it glides across the screen). For every epoch, nearly all protocols have 4 distinct sections of the for-loop that execute:
0 commit comments