Skip to content

Instantly share code, notes, and snippets.

View willwade's full-sized avatar
🌏
Working on dasher and a lot of fun aac stuff.

will wade willwade

🌏
Working on dasher and a lot of fun aac stuff.
View GitHub Profile
@willwade
willwade / Project-Abstract-Methodology.md
Last active October 2, 2025 08:38
Details on NHS CARM

Project Abstract and Methodology

Title

Building a Unified AAC Research Data Infrastructure for the NHS

Abstract

Specialised AAC services across the NHS hold valuable data on the people they support, the interventions provided, and the technology prescribed. However, this data is fragmented across local SQL databases, Word/PDF case notes, and file storage systems. This fragmentation makes it difficult to answer critical national questions such as:

  • Who are the clients currently using AAC?
  • What is the distribution of diagnoses (e.g., cerebral palsy GMFCS III–V, MND bulbar vs spinal onset)?
@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()