Skip to content

Instantly share code, notes, and snippets.

View johnwheeler's full-sized avatar

John Wheeler johnwheeler

  • San Diego, California
View GitHub Profile
/*
* ESP2 DSP Emulator — Cycle-accurate C implementation
*
* Ported from esp2_emu.py.
*/
#include "esp2.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Prog Label Delay Samples Delay at 31250 Hz (ms) Delay at 44100 Hz (ms)
70 35 ms 1172 37.50 26.58
71 55 ms 1758 56.26 39.86
72 75 ms 2344 75.01 53.15
73 115 ms 3516 112.51 79.73
74 140 ms 4688 150.02 106.30
75 155 ms 4922 157.50 111.61
76 160 ms 5156 164.99 116.92
77 170 ms 5391 172.51 122.24
@johnwheeler
johnwheeler / MDV-II Timing.md
Created March 21, 2026 17:10
MDV-II Timing
Prog Label Delay Samples Delay (ms) Delta
70 35 ms 1172 37.50 +2.50
71 55 ms 1758 56.26 +1.26
72 75 ms 2344 75.01 +0.01
73 115 ms 3516 112.51 -2.49
74 140 ms 4688 150.02 +10.02
75 155 ms 4922 157.50 +2.50
76 160 ms 5156 164.99 +4.99
77 170 ms 5391 172.51 +2.51
# SG-323 Gain Inversion Values
This document shows the gain inversion patterns for all 16 programs and 16 decay settings.
Inversion is determined by bit 7 of the GainCeiling PROM output:
- `+` = Non-inverted (bit 7 = 1, values 128-255)
- `-` = Inverted (bit 7 = 0, values 0-127)
## Programs Overview
================================================================================
TAP DATA EXTRACTED FROM: taps_from_capture.txt
================================================================================
Structure: 8 Programs (P=0-7) x 16 Pre-Delay Settings (PD=0-15)
Each combination has:
- 15 Feedback taps (TCB 16,18,20,22,24,26,28,30,32,34,36,38,40,42,44)
- 4 Left Audition taps (TCB 46,48,50,52)
- 4 Right Audition taps (TCB 54,56,58,60)
@johnwheeler
johnwheeler / CLAUDE.md
Last active June 4, 2025 05:33
CLAUDE.md

screen.cam Project

A modern pnpm workspace project with NextJS and ChakraUI, structured for component-driven development with enterprise-grade code quality tools.

Repository: https://github.com/johnwheeler/screencam (Private)

IMPORTANT: This documentation should be kept concise and focused on essential information for development. Avoid adding comprehensive documentation unless it provides clear value for daily development workflow. When adding new sections, evaluate their importance relative to existing content.

IMPORTANT: The CLAUDE_BUILD environment variable is set by Claude Code to build to /tmp instead of .next, preventing interference with the dev server. This is why you see CLAUDE_BUILD=1 pnpm build in the commands.

{
"id": "WCl2KUGffo0MXZu",
"clips": [
{
"id": "CnWB7ZArBwutHkB",
"events": [
{
"id": "4wa3M1GIsRaqQSo",
"type": "mousemove",
"position": {
<Flex w="full" h="full" alignItems="center" justifyContent={'center'} direction="column" gap={5}>
<Flex
padding={isMonitorDisplaySurface(recorder$.screenPreviewStream.get()) ? 0 : 5}
h="55%"
aspectRatio={16 / 9}
maxH="800px"
position="relative"
overflow="clip"
rounded="md"
shadow="md"
output_file="/Users/jwheeler/Desktop/combined_src_files.txt"
www_src_directory="/Users/jwheeler/Projects/demofun/www/src"
api_src_directory="/Users/jwheeler/Projects/demofun/api/src"
# Clear the output file if it already exists
> "$output_file"
# Function to process files
process_files() {
local directory=$1
import { Button, Flex } from '@chakra-ui/react'
import { createMachine, guard, invoke, reduce, state, transition } from 'robot3'
import { useEffect, useState } from 'react'
import { createUseMachine } from 'robot-hooks'
const useMachine = createUseMachine(useEffect, useState)
// @formatter:off
const mergeIncoming = reduce((c, e) => ({ ...c, ...e.value }))