[TidalCycles] SuperDirt에 SideChain Comporessor 추가

모든 사람의 인생에서 한 번은 측절선의 소리 제작에 빠질 때가 있다고 생각합니다.
https://youtu.be/xdO9SzDd3OU
안 와요?
본고는 Tidal Cycles의 음성 엔진 슈퍼 디트를 이용하여 즉흥 연주를 실현하는 인터랙티브 합창을 실현하는 방법을 소개한다.

골대


Tidal을 function으로 압축기를 적용하고 아래를 목표로 한다.
  • Tidal에서threshold 및 release
  • 제어
  • d2 및 d3
  • 등의 제어 소스 Bus 자유 지정
  • 기본값과 동일하며 번거로운 준비 없이 Boot 사용 가능
  • 사실 압축기의 설치 자체는 슈퍼디트의 hacks 폴더에 몇 가지 예가 있다
    있다adding-a-compressor.scdfiltering-dirt-output.scd 등), 이것들을 참고하면 바로 만들 수 있다.
    다만, 여러 Bus의 신호 입력 출력 관리, 모듈화할 때의 오류 등 Tidal 스마트와 협업하기는 좀 어렵다.동작 완료 확인부터 모듈화까지 순서대로 설명한다.
    실장할 때 모스 선생의 글은 개요와 절차에 대한 확인에 매우 참고 가치가 있다https://qiita.com/moxuse@github/items/8da28584e5348463af25.
    또 측면 삽입의 상세한 해설은 에이블튼의 보도가 비교적 뜨겁다https://www.ableton.com/ja/blog/sidechain-compression-part-1/.
    나의 개발 환경은 (macOS:10.13.6,Tidal:1.7.4,SuperCollider:3.11.1,Editor:Emacs)이다.

    1. Tidal에 매개변수 추가


    사운드Params.hs를 쓰는 방법과 다른 스크립트에 기술하고 시작할 때 읽는 방법 등 Tidal이 시작된 후 직접 실행하는 간단한 방법이 있다.
    table.tidal
    let compthr = pF "compthr"
        comprel = pF "comprel"
        compbus = pI "compbus"
    
    압축기로 쓰인 쓰리홀드compthr, 릴리즈comprel, 지정제어신호Buscompbus 3가지 유형이 설정됐다.pFpattern Flat(소수), pIpattern Int(정수)를 지정하거나 "0.25 0.5"처럼 도형으로 파라미터를 기술할 수 있습니다.compbus 예를 들어 d2에서 온 신호를 d1로 압축할 때
    table.tidal
    d1 $ s "padlong" # compthr 0.1 # compbus 2 -- d2を指定
    d2 $ s "bd hc sd hc"
    
    나는 이렇게 사용하려고 생각하고 있다.

    2. SuperDirt에 모듈 추가


    그런 다음 SuperDirt에 모듈을 추가합니다.나중에 시작할 때의 합병을 위해서는 다른 파일에 기술해야 하지만 적당한 곳에 보관해야 한다myEffects.scd.
    myEffects.scd
    (
    ~dirt.addModule('dirt_compressor', { |dirtEvent|
    	dirtEvent.sendSynth('dirt_compressor' ++ ~dirt.numChannels,
    		[
    			compthr: ~compthr,
    			comprel: ~comprel,
    			compbus: ~compbus,
    			out: ~out
    		]
    	)
    }, { ~compthr.notNil });
    ~dirt.orderModules(['dirt_compressor']);
    )
    
    hacks의commpressor 샘플에는 dryBus와 effectBus를 사용하는 방법이 적혀 있지만 사이드 슬라이딩 중 다른 orbit에서 신호를 얻으려면 Out로 하면 순조롭게 진행될 수 있다.11행~compthr.notNil은tidal에commpthr를 쓰기 전에 효과를 적용하지 않는 명령입니다.

    3. 효과(Synthdef) 설치


    여기도 잠시 myEffects.scd 아래 공간에 기술하다
    myEffects.scd
    (
    var numChannels =  ~dirt.numChannels;
    SynthDef("dirt_compressor" ++ numChannels, { |out, compbus, compthr=0.1, comprel=0.01, gate = 1|
    	var signal = In.ar(out, numChannels);
    	var control = In.ar(Select.kr(max(0, compbus-1), ~dirt.orbits.collect { |x| x.dryBus };), 2).sum;
    	var thrround = min(compthr, 0.99);
    	thrround = max(thrround, 0.0001);
    	signal = Compander.ar(signal, control,
    		thresh: compthr,
    		slopeBelow: 1,
            slopeAbove: 0.1,
            clampTime: 0.1,
            relaxTime: comprel
    	);
    	signal = signal * EnvGen.kr(Env.asr, gate, doneAction:2);
    	ReplaceOut.ar(out, signal);
    }, [\ir, \ir]).add;
    )
    
    4행var signal에서 효과가 있는 소리.아래var control는 사이드 인입기를 제어하는 신호, Selekt이다.krcompbus를 사용하여 Bus를 지정합니다.max(0,compbus-1) orbit는 0으로 시작하기 때문에(d1은 0, d2는 1) 직관적인 처리를 위해 -1.또한 0 또는 마이너스를 입력했기 때문에 최대값은 max로 되돌아옵니다.아래var thrround도 마찬가지로 thereshold의 설정이 잘못된 소리가 터지지 않는 방식maxmin을 반올림했다.또한 Compander는 압축기에 적용된다.이번에 Tidal부터 조작할 수 있도록 매개 변수화한 것은threshold와release에 해당하는relaxTime 두 가지로 훑어보기slopeAbove,attack에 해당하는clampTime 등 매개 변수화한 것이 흥미롭다.하지만 속도감 있는 즉흥 연주를 위해 요소를 줄이는 것도 중요하다.
    여기까지 했으면 테스트를 해보자.프로그램 시작
  • SCDSuperDirt.start
  • myEffect.scd에서 모듈에 추가된 블록과 Synthdef의 블록을 실행합니다
  • 텍스트 편집기에서 부트 Tidal, 매개변수 추가 행 실행
  • 연주
  • table.tidal
    d1 $ s "padlong" # speed (range 0.5 4 rand) # compthr "0.2" # comprel 0.01 # compbus "2"
    
    d2 $ rarely (ply 8) $ s "md [hh bd?] cp bd" # shape 0.85
    
    d3 $ s "808bd" # gain 1.1 # shape 0.8
    
    d4 $ s "casio*4" # legato 0.1
    
    d1compbus을 3, 4"2 3 4 3"로 바꾸면 이해하기 쉽다.

    4. 시작할 때 읽기 설정


    마지막으로 위의 단계를 단순화합니다. SuperDirt.start만 있으면 모든 것을 접근할 수 있습니다.시작할 때 자신의 효과를 추가하기 위해 파일을 올리는 것이 안전하지만 잘 모르기 때문에 소스에 직접 추가하는 방법(실패)을 취한다(실패).그러나 이 방법의 장점으로 임의의 시기(예를 들어 Lowpass Filter의 전/후 등)에 압축을 적용할 수 있다.서류 로딩도 가능한 분위기일 뿐, 앞으로의 과제다
    먼저 Tidal의 매개 변수 선언의 세 줄입니다. 이것은 BootTidal.hs의 맨 아래에 쓰여 있습니다.이렇게 하면 편집기의 Tidal Boot에서 자동으로 실행됩니다.

    이어 SuperDirt의 myEffects.scd 폴더에 synths에 쓰인 모듈의 추가 블록을 추가했다.여기 맨 밑에 있어요.comporessor를 초과하지 않도록 주의하십시오. (전체 블록의 끝을 표시합니다. core-modules.scd
    마지막으로 );에 적힌 Synthdef의 블록은 이 폴더myEffects.scd의 Synthdef에 배열된 블록에 추가됩니다.여기core-synths.scd에서 맨 위에 쓴 myEffects.scdvar numChannels = ~dirt.numChannels;의 첫머리에 선언이 되었으니 삭제하세요.

    이렇게 되면 오류가 없으면 core-synth.scd부터 시작하는 Tidal 부팅은 바로 사용할 수 있을 것이다.
    Tireshold를 모드화해 여러 레이어의 그룹을 만들고 테스트 때도 만진 것SuperDirt.start을 모드화해 주기별로 다른 소스에서 측면 삽입해 Tidal 특유의 가능성이 상당하다.Tidal이 익숙해지면 간단한 하드웨어처럼 구조를 빠르게 조립할 수 있고, 측면 삽입 실험도 순조롭다.

    좋은 웹페이지 즐겨찾기