Skip to content

Instantly share code, notes, and snippets.

@kasbah
kasbah / cmd.lst
Created November 28, 2011 22:41
Scripts and lists to generate midi command reference for sooperlooper
[cmd] insert
It inserts new input in place, but always one "cycle" length... QuantizeMode and RoundMode have effects similar to Multiply.
**
*Ending with a RECORD press it ends the operation immediately and resets the cycle length to the whole loop.
***
****
[cmd] multiply
This similar to overdub, except the original loop is repeated underneath you "multiplying" the loop length until you stop it. Thus it can turn a 1 measure loop into a 2,3, etc measure loop. QuantizeMode and RoundMode affect how the overdubbing starts and stops. QuantizeMode affects when the operation begins, and RoundMode affects if the new audio continues to be added throughthe end of the current cycle after hitting the final record.<p> Keep in mind that the original loop length is a "cycle" and the loop length will be a multiple of that. You can actually make an already multiplied loop have fewer cycles when using Multiply on loops that have already been multiplied.
**
components:
schemas:
Action:
properties:
action:
type: string
data: {}
href:
type: string
id:
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@kasbah
kasbah / easy_skidl.ipynb
Created October 17, 2017 18:19
Experiment of combining Electro Grammar with SKiDL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
--- before.svg 2016-12-31 18:30:54.448500524 +0000
+++ after.svg 2016-12-31 18:51:15.784457325 +0000
@@ -371,7 +371,7 @@
<use xlink:href="#Bk4eIZtfQHx_pad-10" x="3445" y="1270"/>
<use xlink:href="#Bk4eIZtfQHx_pad-10" x="3445" y="2370"/>
<use xlink:href="#Bk4eIZtfQHx_pad-10" x="1445" y="2970"/>
- <path d="M 1585 2984 1585 2956 M 1685 2956 1685 2984 M 1785 2984 1785 2956 M 1885 2956 1885 2984 M 1985 2984 1985 2956 M 2085 2956 2085 2984 M 2185 2984 2185 2956 M 2285 2956 2285 2984 M 2385 2984 2385 2956 M 2485 2956 2485 2984 M 2645 2984 2645 2956 M 2745 2956 2745 2984 M 2845 2984 2845 2956 M 2945 2956 2945 2984 M 3045 2984 3045 2956 M 3145 2956 3145 2984 M 3245 2984 3245 2956 M 3345 2956 3345 2984 M 3320 1779 3320 1751 M 3220 1751 3220 1779 M 3120 1779 3120 1751 M 3020 1751 3020 1779 M 2920 1779 2920 1751 M 2820 1751 2820 1779 M 2720 1779 2720 1751 M 2620 1751 2620 1779 M 2520 1779 2520 1751 M 2420 1751 2420 1779 M 2320 1779 2320 1751 M 2220 1751 2220 1779 M 2120 1779 2120 1751 M 2020 175
--- before.svg 2016-12-31 18:12:20.648539920 +0000
+++ after.svg 2016-12-31 18:12:27.276539685 +0000
@@ -371,7 +371,7 @@
<use xlink:href="#Bk4eIZtfQHx_pad-10" x="3445" y="1270"/>
<use xlink:href="#Bk4eIZtfQHx_pad-10" x="3445" y="2370"/>
<use xlink:href="#Bk4eIZtfQHx_pad-10" x="1445" y="2970"/>
- <path d="M 1585 2984 1585 2956 M 1685 2956 1685 2984 M 1785 2984 1785 2956 M 1885 2956 1885 2984 M 1985 2984 1985 2956 M 2085 2956 2085 2984 M 2185 2984 2185 2956 M 2285 2956 2285 2984 M 2385 2984 2385 2956 M 2485 2956 2485 2984 M 2645 2984 2645 2956 M 2745 2956 2745 2984 M 2845 2984 2845 2956 M 2945 2956 2945 2984 M 3045 2984 3045 2956 M 3145 2956 3145 2984 M 3245 2984 3245 2956 M 3345 2956 3345 2984 M 3320 1779 3320 1751 M 3220 1751 3220 1779 M 3120 1779 3120 1751 M 3020 1751 3020 1779 M 2920 1779 2920 1751 M 2820 1751 2820 1779 M 2720 1779 2720 1751 M 2620 1751 2620 1779 M 2520 1779 2520 1751 M 2420 1751 2420 1779 M 2320 1779 2320 1751 M 2220 1751 2220 1779 M 2120 1779 2120 1751 M 2020 175

Footwork is an experimental KiCAD footprint (text) editor written in Racket. Footwork takes advantage of Lisp's code-data equivalence to offer a unique approach to PCB design: KiCAD's footprint format becomes a domain specific language embedded in the Racket programming language.

  • The interface is text-first allowing users to make arbitrary edits: their needs need not be anticipated by the user interface
  • Users still immediately see the effects of their edits through a graphical preview
  • Users can use a fully featured general purpose programming languages to generate and modify footprints
  • Traditional (mouse based) manipulation is being added as calls to scripting
  • Racket's Rosette language, an interface to SMT solvers, offers the exciting opportunity to make use of cutting edge techniques in programming synthesis for design automation

https://github.com/monostable/footwork

#lang typed/racket/gui
(require/typed
racket/sandbox
[make-evaluator
(->*
(Symbol)
(#:requires (List String))
(-> String Any))])
require: unknown module
module name: #<resolved-module-path:'#%builtin>
context...:
/usr/share/racket/collects/racket/private/pre-base.rkt: [traversing imports]
/usr/share/racket/collects/racket/private/base.rkt: [traversing imports]
/usr/share/racket/collects/syntax/module-reader.rkt: [traversing imports]
(submod /usr/share/racket/collects/racket/main.rkt reader): [traversing imports