Skip to content

Instantly share code, notes, and snippets.

View willwade's full-sized avatar
🌏
Working on dasher and a lot of Ace hardware projects

will wade willwade

🌏
Working on dasher and a lot of Ace hardware projects
View GitHub Profile
@willwade
willwade / notes.md
Created September 11, 2025 08:03
CouchDB issues

Analysis Summary

1. Primary Sources of Data Storage in CouchDB

Data Types Being Stored:

  • GridData: Complete grid configurations including elements, images, thumbnails, and additional files
  • MetaData: Global user settings, input configurations, color schemes, and integration settings
  • Dictionary: Word prediction dictionaries with JSON data
  • EncryptedObject: All data is encrypted and stored as base64-encoded strings
@willwade
willwade / mediapipe-test.html
Created August 31, 2025 22:47
full mediapipe face mesh test in js
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MediaPipe FaceLandmarker Test</title>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/vision_bundle.js" crossorigin="anonymous"></script>
<script>
// Wait for MediaPipe to load and expose globals
window.addEventListener('load', () => {
@willwade
willwade / issue6-demo.js
Created July 2, 2025 08:19
A way of testing issue 6
#!/usr/bin/env node
/**
* Issue 6 Reproduction Demo
*
* This demo reproduces the exact testing scenarios described in issue6.md
* to verify that the fixes work correctly across different engines and formats.
*
* Tests performed:
* 1. client.speak() tests with WAV format (SSML, SMD, Plaintext)
@willwade
willwade / toggleYT.sh
Created February 19, 2025 22:00
Toggle NextDNS deny domain
#!/bin/bash
# Configuration - Replace with your actual API key and Profile ID
API_KEY="apikey"
PROFILE_ID="id"
DOMAIN="youtube.com"
# Function to get current block status
get_status() {
curl -s -X GET "https://api.nextdns.io/profiles/$PROFILE_ID/denylist" \
@willwade
willwade / 1Instructions.md
Last active February 17, 2025 14:14
Make installing elevenlabs button with bridgingvoice easier. youll need https://github.com/willwade/AACProcessors
To use

1. Install python 
2. open a cmd line 
3. run pip install aacprocessors
4. Copy and paste this text below into a notepad file. Edit your xml as you wish. 
5. run it like python replaceSpeakButtonGridset.py 
@willwade
willwade / FindSapi4CLSID.py
Created December 1, 2024 08:24
Seek out the clsid for sapi4
import winreg
def find_sapi4_clsid() -> str:
"""
Search the Windows registry for the SAPI 4 CLSID.
Returns:
str: The CLSID for SAPI 4 if found, else raises an exception.
"""
sapi4_key_path = r"SOFTWARE\WOW6432Node\Microsoft\Speech\Voices\Tokens"
@willwade
willwade / comsapi4test.py
Created November 30, 2024 19:05
Com surrogate technique
import comtypes.client
# SAPI 4 CLSID for the voice
SAPI4_CLSID = "{EEE78591-FE22-11D0-8BEF-0060081841DE}"
def list_sapi4_voices():
"""List available SAPI 4 voices."""
try:
sapi4 = comtypes.client.CreateObject(SAPI4_CLSID)
voices = sapi4.GetVoices()

Idea is to bridge to 32 bit stuff with 64 bit python

Compile the DLL

1.	Use a 32-bit version of Visual Studio to compile the code as a 32-bit DLL.
2.	Set the project to build a DLL:
•	Open Project Properties > Configuration Properties > General.
•	Set Configuration Type to Dynamic Library (.dll).
3.	Specify the output architecture:
•	Under Configuration Properties &gt; Linker &gt; Advanced, set Target Machine to MachineX86 for 32-bit.
@willwade
willwade / midcontroller-demo.swift
Last active November 25, 2024 16:50
Midi-Switch controller
import UIKit
class ViewController: UIViewController {
var midiController: MIDIController?
override func viewDidLoad() {
super.viewDidLoad()
// Initialize the MIDI controller
midiController = MIDIController()
@willwade
willwade / DotNetSpeech.py
Last active November 6, 2024 12:56
A very rough untested attempt at a .net driver for speech synth
import clr
import threading
import queue
import time
from System.Speech.Synthesis import SpeechSynthesizer, SpeakCompletedEventArgs
clr.AddReference("System.Speech")
class DotNetSpeech:
def __init__(self, proxy):