// Octave illusion — Deutsch: antiphase tones swap ears each beat and fuse into one jumping tone. // Run: node examples/octave-illusion.js 400 800 2 12s // Run: node examples/octave-illusion.js low=400 high=800 rate=2 -d 12s // Keys: q quit import { AudioContext } from 'web-audio-api' import { init } from './graphs/octave-illusion.js' import { args, num, sec, keys, clearLine, help } from './utils.js' help({ description: 'alternate antiphase tones between ears (Deutsch octave illusion)', usage: ['', '[low] [high] [rate] [duration]', 'low=400 high=800 rate=2 dur=12s'], options: [ ['low=', 'lower frequency (default: 400)'], ['high=', 'higher frequency (default: 800)'], ['rate=', 'alternation rate (default: 2)'], ['-d, --duration