Skip to content

Instantly share code, notes, and snippets.

View antoinevg's full-sized avatar
🦋

antoinevg

🦋
View GitHub Profile
#!/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 / 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:

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 / 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
#!/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