Skip to content

Instantly share code, notes, and snippets.

View edsu's full-sized avatar

Ed Summers edsu

View GitHub Profile
#!/usr/bin/env python3
"""
Extract the final mixed track from a Tascam DAW backup disk image.
Finds the audio start offset by detecting the end of the FAT region, then
scans for silence gaps to locate track boundaries and extracts the last track
(the stereo or mono mix) as a WAV file.
Usage:
python3 extract_mix.py <backup.bin> [output.wav]

Claude Code Chat Transcript

Topic: Recovering audio from a Tascam DAW backup disk image


User: it looks like backup.bin may be from a tascam DAW in early 2000s. is there any way to recover this audio without access to the machine that created it?

Assistant: Let me start by examining the file to understand what we're working with.

(examined directory listing, README.md, backup.cue, hexdump.txt, convert.sh)

00000000 92 35 96 39 02 78 79 4b 00 00 00 00 00 00 00 01 |.5.9.xyK........|
00000010 00 00 00 01 00 00 08 00 00 00 00 60 00 00 1d 48 |...........`...H|
00000020 00 00 00 01 00 00 02 55 00 00 05 14 00 00 00 00 |.......U........|
00000030 00 00 05 13 00 00 05 14 00 00 00 01 00 00 00 14 |................|
00000040 00 00 00 01 37 00 00 00 00 57 46 da 57 48 45 52 |....7....WF.WHER|
00000050 45 20 45 56 45 52 20 20 00 00 00 00 00 00 00 14 |E EVER ........|
00000060 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 |................|
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00002750 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff |................|

Conversation: HN Thread on Claude Opus 4.7


User: hey, can you summarize this hacker news thread? https://news.ycombinator.com/item?id=47793411?foo=barlksjlkjslkj

Assistant: Here's the summary of that Hacker News thread (same thread from your follow-up message too):

Article: Anthropic released Claude Opus 4.7, with "adaptive thinking" as its default (and only) thinking mode.

@edsu
edsu / 0000-0003-1279-3709.json
Last active March 24, 2026 19:44
curl --location --header 'Accept: application/ld+json' https://orcid.org/0000-0003-1279-3709
{
"@context": "http://schema.org",
"@type": "Person",
"@id": "https://orcid.org/0000-0003-1279-3709",
"mainEntityOfPage": "https://orcid.org/0000-0003-1279-3709",
"name": "Timothy J Berners-Lee",
"givenName": "Timothy",
"familyName": "Berners-Lee",
"alumniOf": {
"@type": "Organization",
@edsu
edsu / cloudflare_crawl.py
Last active March 12, 2026 17:25
A simple example of using Cloudflare's Crawl API endpoint to crawl a website and gather the results.
#!/usr/bin/env python3
# This is a simplistic Python program that will use Cloudflare's Crawl API [1]
# to crawl a website, and then fetch the results to the filesystem once the job
# is completed.
#
# You run it like so:
#
# uv run crowdflare_crawl.py https://example.com
#
@edsu
edsu / qids.py
Last active March 10, 2026 16:35
look for deleted wikidata QIDs
#!/usr/bin/env python3
# stream wikidata ntriples dumps for two snapshots and look for QIDs that have been deleted.
import os
def main():
qids_before = get_qids("https://dumps.wikimedia.org/wikidatawiki/entities/20260123/wikidata-20260123-lexemes-BETA.nt.gz")
print(f"before: {len(qids_before)}")
@edsu
edsu / table.md
Created November 19, 2025 18:38
table.md
column before after
title 891351 (93%) 804262 (99.9%)
pub_year 893340 (99.8%) 803930 (99.9%)
open_access 589300 (65.8%) 618291 (76.8%)
apc 265024 (29.6%) 274282 (34.0%)
types 894525 (99.9%) 804498 (100%)
publisher 638311 (71.3%) 588595 (73.15%)
doi 553661 (61.8%) 563544 (70.0%)
@edsu
edsu / authorship-counts.csv
Last active November 18, 2025 17:49
OpenAlex changes in number of authorships pre/post the switch to Walden.
walden pre-walden walden-authors pre-walden-authors
https://api.openalex.org/W105472354 https://api.openalex.org/W105472354?data-version=1 1 0
https://api.openalex.org/W107410459 https://api.openalex.org/W107410459?data-version=1 10 0
https://api.openalex.org/W108850305 https://api.openalex.org/W108850305?data-version=1 3 0
https://api.openalex.org/W110028034 https://api.openalex.org/W110028034?data-version=1 3 0
https://api.openalex.org/W111570961 https://api.openalex.org/W111570961?data-version=1 4 0
https://api.openalex.org/W113490272 https://api.openalex.org/W113490272?data-version=1 7 0
https://api.openalex.org/W1139073521 https://api.openalex.org/W1139073521?data-version=1 4 0
https://api.openalex.org/W115477810 https://api.openalex.org/W115477810?data-version=1 9 0
https://api.openalex.org/W1161001478 https://api.openalex.org/W1161001478?data-version=1 36 0
import requests
import json
print(len(requests.get("https://api.openalex.org/w4223476900").json()["authorships"]))
print(len(requests.get("https://api.openalex.org/w4223476900?data-version=1").json()["authorships"]))