Skip to content

Instantly share code, notes, and snippets.

View antoinevg's full-sized avatar
🦋

antoinevg

🦋
View GitHub Profile
#!/usr/bin/env python3
# pylint: disable=unused-wildcard-import, wildcard-import
#
# This file is part of Facedancer.
#
import logging
from facedancer import *
from facedancer import main
@antoinevg
antoinevg / top.py
Created February 12, 2024 14:22
Using Amaranth RFC #16 Registers
import sys
from amaranth import *
from amaranth.build import Attrs, Pins, Platform, Resource, Subsignal
from amaranth.utils import bits_for
from amaranth.lib.wiring import Component, In, Out, connect
from amaranth_soc import csr, wishbone
from amaranth_soc.csr.wishbone import WishboneCSRBridge

Professional Audio Over Ethernet Redux

Audio over ethernet is a large space. Folk have tried to skin this CAT (groan) in many ways and on many network layers including layer-1 (custom MAC), layer-2 (raw ethernet frames), layer-3/4 (UDP/RTP/etc.).

For my purposes I'm mainly interested in a layer 2/3 implementation that can run on >= 400 MHz bare-metal with a cycle or two left over for happy-joy-joy DSP fun-times.

Smuggling audio frames over the Internet is not a main focus for me because there's already a most excellent solution to that problem which is easy to implement on even smollish microcontrollers.

So, of the ~50 or so implementations out there, for the purpose of this discussion, we can probably reduce it down to the two (and maaaaybe a 1/2) protocols that have gotten some commercial traction over the years.

@antoinevg
antoinevg / synth_history.md
Created August 18, 2022 14:33
A biased, over-simplified, totally inaccurate and mostly made-up history of the synth industry

@bitshiftmask wrote:

If any folks out there are looking into building some kind of audio synth device, something bigger/beefier than a eurorack module, maybe in the league of an OP-1 or a Digitone (or similar), I'd love to see what a 1GHz core and a DSP core could do with some async magic :D

I've kind of given up building synths for lent, but here is my TED talk about the commercial aspect:

#!/usr/bin/env python3
import os
import shutil
import subprocess
dir = '<your projects root>'
print('Cleaning rust projects in ' + dir + ' and all its subfolders.')
@antoinevg
antoinevg / irdest-braü.md
Created January 19, 2022 15:33
Irdest Braü

Irdest Braü

Install Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Install Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Keybase proof

I hereby claim:

  • I am antoinevg on github.
  • I am antoinevg (https://keybase.io/antoinevg) on keybase.
  • I have a public key ASAgPV7eWY0FD9HbDUZzyfuE0DLU__ejieTLbIOu1MmirQo

To claim this, I am signing this object:

@antoinevg
antoinevg / toolkit.md
Last active February 17, 2021 06:39
Legacy instructions for Toolkit

Apple and Google's security decisions are having knock-on effects for locally hosted web apps that have made it impractical to continue supporting the toolkit:

  • Apple's Gatekeeper and Notarisation frameworks don't support Python apps
  • The war on cookies and other blanket applications of content restriction has destroyed our ability to reliably run a local webserver and serve the app to the browser.

That said, it may still be possible to get the Toolkit running with a bit of effort:

Activity Monitor

@antoinevg
antoinevg / toolkit_uninstall.md
Created August 17, 2020 06:52
Uninstalling the Trigger Toolkit

Mac

  1. Delete the TriggerToolkit app from your Applications folder.
  2. Run: rm -rf ~/Library/Trigger\ Toolkit

Windows

  1. Run the uninstaller.
  2. Make sure the following directory has been deleted:

Adapted from:

https://github.com/MabezDev/xtensa-rust-quickstart

Like this:

# - deps ------------------------------------------------------------------

sudo port install ninja