Skip to content

Instantly share code, notes, and snippets.

View crashingbooth's full-sized avatar

Jeff Holtzkener crashingbooth

  • Toronto, Canada
View GitHub Profile
setcps 0.53
do
let p1 = lpf (range 50 6000 (slow 4 sine)) # lpq 0.3
let p2 = lpf (range 50 6000 (slow 4 sine)) # lpq 0.6
let p3 = lpf (range 50 6000 (slow 3 saw)) # lpq (range 0.3 0.7 (slow 3.5 saw))
let shift = (|+ up "<0!4 -3!4>")
let d10_0 = superimpose (hurry "t")
$ inside 8 (every 7 (jux ("h" <~)))
@crashingbooth
crashingbooth / track1.tidal
Created March 3, 2021 11:47
problem seqP code
setcps 0.53
do
let p1 = lpfq (range 50 6000 (slow 4 sine)) 0.3
let p2 = lpfq (range 50 6000 (slow 4 sine)) 0.6
let p3 = lpfq (range 50 6000 (slow 3 saw)) (range 0.3 0.7 (slow 3.5 saw))
let shift = (|+ up "<0!4 -3!4>")
let d10_0 = si (hurry "t")
$ inevery 8 7 (jux press)
@crashingbooth
crashingbooth / ABLLinkManager.swift
Created April 19, 2018 01:34 — forked from cemolcay/ABLLinkManager.swift
Swift 4.0 port for LinkKit iOS of Ableton Link
//
// ABLLinkManager.swift
//
// Created by Cem Olcay on 5.03.2018.
// Copyright © 2018 cemolcay. All rights reserved.
//
import Foundation
import AVFoundation
@crashingbooth
crashingbooth / BresenhamEuclideanSnippet.md
Created March 5, 2018 01:24
Bresenham Implementation of Euclidean Rhythm Generator
func bresenhamEuclidean(onsets: Int, pulses: Int) -> [Int] {
    let slope = Double(onsets) / Double(pulses)
    var result = [Int]()
    var previous: Int? = nil
    for i in 0..<pulses {
        let current = Int(floor(Double(i) * slope))
        result.append(current != previous ? 1 : 0)
        previous = current
 }
func generateEuclidean(onsets: Int, pulses: Int) -> [Int] {
    let front:[[Int]] = Array(repeating: [1], count: onsets)
    let back:[[Int]] = Array(repeating: [0], count: pulses - onsets)
    return euclidRecursive(front: front, back: back).flatMap {$0}
}

private func euclidRecursive (front: [[Int]], back: [[Int]]) -> [[Int]] {
 var back = back