Skip to content

Instantly share code, notes, and snippets.

View SpotlightKid's full-sized avatar

Christopher Arndt SpotlightKid

View GitHub Profile
moved to https://github.com/jean-emmanuel/lua_scripts/
@SpotlightKid
SpotlightKid / pmstring.dsp
Created August 6, 2024 11:26
A simple physical model of a guitar-like plucked string implemented in FAUST (Work in progress!)
declare name "PM String";
declare version "0.1";
declare author "Christopher Arndt";
declare license "MIT License";
declare description "A simple physical model of a guitar-like plucked string";
// Create a JACK/Qt app with:
//
// faust2jaqt -nvoices 6 -midi pmstring.dsp
@SpotlightKid
SpotlightKid / fbnfm_drumvoice.dsp
Last active November 19, 2024 13:42
A FAUST-based drum and percussion synth with three components: band-limited noise through a feedback delay, noise and FM
// NOTE: as-is, this does NOT work correctly with faust2lv2, since it does not support MIDI input via the "key" parameter.
// It does work with the FAUST web IDE and Faust Live, though.
declare name "FB / Noise / FM Drum Voice";
declare version "0.1";
declare author "Christopher Arndt";
declare license "MIT License";
declare description "A drum and percussion synth with three components: band-limited noise through a feedback delay, noise and FM";
@geraintluff
geraintluff / unit-range-reciprocal.hpp
Last active January 8, 2025 20:39
A map from [0-1] to an arbitrary range, specified using low/mid/high values. Pulled out from some Signalsmith Audio internal code.
class UnitRangeMapReciprocal {
double vMin, vTopFactor, vBottomFactor;
public:
UnitRangeMapReciprocal() : UnitRangeMapReciprocal(0, 0.5, 1) {}
UnitRangeMapReciprocal(double min, double mid, double max) {
vMin = min;
double k = (mid - min)/(max - mid);
vTopFactor = max*k - min;
vBottomFactor = k - 1;
}
@Michal-Szczepaniak
Michal-Szczepaniak / client.nim
Created October 20, 2021 18:17
Nim async UDP server discovery and TCP server connection
import asyncnet, asyncdispatch, nativesockets
proc discover(): Future[string] {.async.} =
let socket = newAsyncSocket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
socket.setSockOpt(OptReuseAddr, true)
socket.setSockOpt(OptReusePort, true)
socket.setSockOpt(OptBroadcast, true)
await socket.sendTo("255.255.255.255", Port(12346), $0b10)
var data = await socket.recvFrom(15)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" dir="ltr">
<head>
<title><xsl:value-of select="/rss/channel/title"/> RSS Feed</title>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1" />
<meta http-equiv="content-language" content="en_US" />
@mxmilkiib
mxmilkiib / lv2-over1200-uri-list
Last active March 9, 2025 17:21
Over 1200 LV2 plugins. Almost all are available in the AUR for Arch Linux/Manjaro/pacman distributions. Note URIs are normally only used internally in hosts.
# IFS=$'\n' arr=($(lv2ls)) && IFS=$'\n' arr2=($(lv2ls -n)) && for (( i=0; i<${#arr[*]}; ++i)); do printf "%s|%s\n" "${arr[$i]}" "${arr2[$i]}"; done | column -t -s "|"
file:///usr/lib/lv2/audio_to_audio.ingen/main.ttl audio_to_audio
file:///usr/lib/lv2/control_to_control.ingen/main.ttl control_to_control
file:///usr/lib/lv2/cv_to_cv.ingen/main.ttl cv_to_cv
file:///usr/lib/lv2/event_to_event.ingen/main.ttl event_to_event
file:///usr/lib/lv2/gen_amsynth_filte_out.ingen/main.ttl gen_amsynth_filte_out
file:///usr/lib/lv2/MonoEffect.ingen/MonoEffect.ttl Ingen Mono Effect Template
file:///usr/lib/lv2/MonoInstrument.ingen/MonoInstrument.ttl Ingen Mono Instrument Template
file:///usr/lib/lv2/StereoEffect.ingen/StereoEffect.ttl Ingen Stereo Effect Template
file:///usr/lib/lv2/StereoInstrument.ingen/StereoInstrument.ttl
declare name "StonePhaser";
declare author "JPC";
declare version "1.1";
declare license "CC0-1.0";
// Référence :
// Kiiski, R., Esqueda, F., & Välimäki, V. (2016).
// Time-variant gray-box modeling of a phaser pedal.
// In 19th International Conference on Digital Audio Effects (DAFx-16).
@ergoz
ergoz / nginx config for icecast2
Created January 7, 2019 01:47 — forked from highgain86j/nginx config for icecast2
nginx configuration for reverse-proxying icecast2 streaming server.
server {
listen 80;
listen [::]:80;
server_name radio.example.com;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
location / {
#!/usr/local/bin/dumb-init /bin/bash
set -euxo pipefail
VIDEO_URL=${VIDEO_URL:-$1}
ICECAST_URL=${ICECAST_URL:-$2}
ICECAST_DESC=${ICECAST_DESC:-Re-Stream of ${VIDEO_URL}}
ICECAST_NAME=${ICECAST_NAME:-Re-Stream}
ICECAST_WEBSITE=${ICECAST_WEBSITE:-$VIDEO_URL}