Spaces:
Running
Running
Create stim1.js
Browse filesInvokes gamma brain waves
stim1.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
let flickerRate = 40; // 40 Hz flicker rate (in frames per second)
|
| 2 |
+
let frameDuration; // Duration of each frame in milliseconds
|
| 3 |
+
let isBlack = true; // Toggle between black and white
|
| 4 |
+
|
| 5 |
+
function setup() {
|
| 6 |
+
createCanvas(windowWidth, windowHeight); // Full-screen canvas
|
| 7 |
+
frameRate(flickerRate); // Set frame rate to 40 Hz
|
| 8 |
+
frameDuration = 1000 / flickerRate; // Calculate frame duration in ms (approx 25ms for 40 Hz)
|
| 9 |
+
background(0); // Start with black
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
function draw() {
|
| 13 |
+
// Alternate between black and white each frame
|
| 14 |
+
if (isBlack) {
|
| 15 |
+
background(0); // Black
|
| 16 |
+
} else {
|
| 17 |
+
background(255); // White
|
| 18 |
+
}
|
| 19 |
+
isBlack = !isBlack; // Toggle state
|
| 20 |
+
|
| 21 |
+
// Optional: Add a simple high-contrast pattern (checkerboard)
|
| 22 |
+
let size = 50; // Size of checkerboard squares
|
| 23 |
+
for (let x = 0; x < width; x += size) {
|
| 24 |
+
for (let y = 0; y < height; y += size) {
|
| 25 |
+
if ((floor(x / size) + floor(y / size)) % 2 === 0) {
|
| 26 |
+
fill(isBlack ? 255 : 0); // Invert color based on flicker
|
| 27 |
+
} else {
|
| 28 |
+
fill(isBlack ? 0 : 255);
|
| 29 |
+
}
|
| 30 |
+
noStroke();
|
| 31 |
+
rect(x, y, size, size);
|
| 32 |
+
}
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
function windowResized() {
|
| 37 |
+
resizeCanvas(windowWidth, windowHeight); // Adjust canvas if window size changes
|
| 38 |
+
}
|