Frekans Başlangıç Atölyesi

Türkçe açıklamalı tanımlar, kodlar ve örnek müzik rehberi

Frekans Youtube School: https://www.youtube.com/@frekanskodlama

Hazırlanma tarihi: 14 Haziran 2026

Kapsam: Bu doküman, Frekans’ın Başlangıç sayfası ve buradan yönlenen Atölye bölümlerindeki kavramları Türkçe olarak toparlar. Kod blokları eğitim amaçlı örneklerdir; açıklamalar Türkçe yorum ve pratik kullanım notlarıdır.

Çalıştırma: Frekans REPL veya dokümantasyondaki interaktif kod alanında kodu seçip Ctrl+Enter ile çal/güncelle, Ctrl+. ile durdur. macOS kullananlar çoğu tarayıcıda Ctrl yerine Command değil, dokümanda belirtildiği gibi Ctrl kombinasyonunu deneyebilir.

Müzik türü yorumları: En alttaki örnek değerlendirmeleri dinleme analizinden değil; kod başlıkları, tempo, sample/synth seçimi ve ritim yapısından çıkarılmış tahmini karakter açıklamalarıdır.

Kaynaklar

  • Başlangıç / Hoş geldin: /workshop/getting-started/

  • İlk Sesler: /workshop/first-sounds/

  • İlk Notalar: /workshop/first-notes/

  • İlk Efektler: /workshop/first-effects/

  • Kalıp Efektleri: /workshop/pattern-effects/

  • Atölye Özeti: /workshop/recap/

  • Ek kaynak: Sesler: /learn/sounds/

İçindekiler

  • Frekans nedir?

  • Mini notasyon sözlüğü

  • Temel fonksiyon ve efekt sözlüğü

  • Atölye kod kütüphanesi: İlk Sesler

  • Atölye kod kütüphanesi: İlk Notalar

  • Atölye kod kütüphanesi: İlk Efektler

  • Atölye kod kütüphanesi: Kalıp Efektleri

  • Atölye Özeti hızlı haritası

  • En alt bölüm: örnekler ve ürettikleri müzik

1. Frekans nedir?

Frekans, tarayıcıda kod yazarak müzik üretmeye yönelik canlı kodlama ortamıdır. Atölye dokümantasyonu Frekans’ı Tidal Cycles pattern dilinin JavaScript portu olarak tanımlar; JavaScript veya Tidal Cycles bilmeden de başlangıç yapılabilir.

Temel kullanım alanları: gerçek zamanlı canlı kodlama, algoritmik kompozisyon, müzik ve kod öğretimi, MIDI/OSC üzerinden başka müzik sistemlerine esnek sequencer olarak bağlanma.

Atölyenin öğretim sırası: önce ses/sample ve davul, sonra notalar/gamlar, sonra audio efektleri ve en sonda Tidal/Frekans’a özgü pattern efektleri.

Örnek 1: Elektronik / House Beat

Hissiyat: Elektro / House groove hissi.

setcps(132/60/4)
$: sound("bd ~ [~ bd] ~ bd ~ [~ bd] ~")
.gain("0.95 0.65 0.85 0.7")
$: sound("~ cp ~ cp")
.gain("0.55 0.75")
$: sound("hh:2!16")
.gain("0.25 0.55 0.35 0.75 0.3")
.degradeBy(0.18)
.fast("<1 1 2 1>")
.rib(731, 1)
$: note("c2 ~ [g1 bb1] ~ eb2 ~ [g1 c2] ~")
.sound("sawtooth")
.lpf("<450 700 500 900>")
.gain(0.65)

Örnek 2: French House / Disco House Hissi

Hissiyat: French House / Disco House hissi.

setcps(124/60/4)

$: sound("bd!4")
.gain(0.9)

$: sound("~ cp ~ cp")
.gain(0.55)

$: sound("hh:2!8")
.gain("0.25 0.6 0.35 0.75")
.fast("<1 1 2 1>")

$: sound("oh ~ oh ~")
.gain(0.35)

$: note("c2 c2 eb2 g2")
.sound("sawtooth")
.lpf("<500 900 650 1100>")
.gain(0.6)

Örnek 3: Breakbeat / Jungle Başlangıcı

Hissiyat: The Prodigy, Chemical Brothers, eski breakbeat ve jungle enerjisi.

setcps(160/60/4)

$: sound("bd ~ bd [~ bd] ~ bd ~ [bd ~]")
.gain("0.95 0.75 0.8 0.65")

$: sound("~ sn ~ sn [~ sn] ~ sn ~")
.gain("0.55 0.8 0.45 0.75")

$: sound("hh:2!16")
.gain(rand.range(0.2, 0.75))
.degradeBy(0.28)
.rib(913, 1)

$: note("c2 ~ c2 eb2 ~ g1 ~ bb1")
.sound("sawtooth")
.lpf("<350 700 500 900>")
.gain(0.7)

2. Mini notasyon sözlüğü

Mini notasyon, Frekans/Tidal tarzı ritim ve pattern dilidir. String içinde boşluk, köşeli/açılı parantez, çarpma, bölme ve virgül gibi küçük işaretlerle karmaşık müzikal zaman ilişkileri yazılır.

KavramSözdizimiNe işe yarar?Kısa örnek
SekansboşlukÖğeleri sırayla çalar; bir cycle içine sığdırılır.sound(“bd bd sd hh”)
Sample numarası:xAynı ses adındaki farklı sample dosyasını seçer. Numara verilmezse çoğu durumda :0 gibi düşünülür.sound(“hh:0 hh:1 hh:2 hh:3”)
Sus- veya ~O noktada ses çalmaz; ritmik boşluk oluşturur.sound(“metal - jazz jazz:1”)
Dönüşümlü seçim<…>Her cycle içinde sıradaki öğeyi seçer; öğe ekleyip çıkarırken tempo sabit kalır.sound(“<bd hh rim oh bd rim>“)
Alt sekans[…]İçerideki öğeleri kendi küçük zaman dilimine sıkıştırır.sound(“bd wind [metal jazz] hh”)
İç içe alt sekans[[…]]Alt sekans içinde alt sekans kurar; derin ritmik gruplama sağlar.sound(“bd [metal [jazz [sd cp]]]“)
Hızlandırma*nÖğeyi veya grubu n kat hızlandırır/çoğaltır.sound(“bd sd2 cp3”)
Yavaşlatma/nSekansı n cycle içine yayar; melodiyi veya formu uzatır.note(“[c a f e]/2”)
Paralel katman,Aynı pattern içinde birden fazla katmanı eşzamanlı çalar.sound(“bd2, hh2 [hh oh]“)
Uzatma@nÖğenin süresini n birim uzatır.note(“c@3 e”)
Çoğaltma!nAynı event’i n kez tekrarlar; * ile benzer duyulabilir ama event mantığı farklıdır.note(“c!3 e”)
Çok satırlı pattern...Uzun ritimleri daha okunabilir yazmak için backtick kullanır.sound(bd*2, - cp, / - - - oh, hh*4)

3. Temel fonksiyon ve efekt sözlüğü

Bu bölüm, atölye boyunca geçen fonksiyonları tek sözlükte toplar. Ayrıntılı, çalıştırılabilir örnekler sonraki kod kütüphanesi bölümlerindedir.

Fonksiyon / işaretNe işe yarar?Kısa örnek
sound(…) / s(…)Adı verilen sample veya synth seslerini tetikler. s, atölye örneklerinde sound için kısa kullanımdır.sound(“bd sd”) / s(“sawtooth square”)
bank(…)Davul makinesi veya sample bankası seçer; bd/sd/hh gibi kısa adların karakterini değiştirir.sound(“bd sd”).bank(“RolandTR909”)
n(…)Sample numarası veya scale degree yazmak için kullanılır; sound veya scale ile birleşir.n(“0 1 4 2”).sound(“jazz”)
note(…)Pitch’i sayı veya nota harfiyle belirler.note(“b g e c”).sound(“piano”)
scale(…)n değerlerini bir gamın dereceleri olarak yorumlar.n(“6 4 2 0”).scale(“C:minor”).sound(“piano”)
setcpm(…)Cycle per minute değerini ayarlar; tempo kontrolüdür.setcpm(45); sound(“bd sd [~ bd] sd”)
$:Ayrı satırlardaki patternleri paralel çalmak için kanal açar.$: s(“bd sd”) / $: note(“c eb g”)
lpf(…)Alçak geçiren filtre: yüksek frekansları kısar; küçük değer daha boğuk, büyük değer daha parlak duyulur.note(“c2 c3 c2 c3”).s(“sawtooth”).lpf(“400 2000”)
vowel(…)Sesin formant/ünlü karakterini değiştirir; a/e/i/o gibi ağız benzeri renkler verir.note(“c3 eb3 g3”).s(“sawtooth”).vowel(“<a e i o>“)
gain(…)Ses yüksekliği/dinamik vurgularını pattern olarak kontrol eder.s(“hh*16”).gain(“[.25 1]*4”)
attack/decay/sustain/releaseADSR zarfı: sesin giriş, düşüş, sürdürme seviyesi ve kapanışını şekillendirir..attack(.1).decay(.1).sustain(.25).release(.2)
adsr(“a:d:s:r”)ADSR değerlerini kısa string gösterimiyle yazar..adsr(“.1:.1:.5:.2”)
delay(…)Yankı/tekrar efekti. delay(“a:b:c”) biçiminde a=seviye, b=zaman, c=feedback olarak kullanılır.s(“bd rim bd cp”).delay(.5)
room(…)Reverb/oda hissi ekler; değer büyüdükçe mekan hissi artar.s(“bd rim bd cp”).room(.5)
pan(…)Sesi sol-sağ stereo alanına yerleştirir. 0 sol, 1 sağ gibi düşünülebilir.s(“bd rim bd cp”).pan(“0 1”)
speed(…)Sample playback hızını değiştirir; negatif değer ters yönde çalabilir.s(“bd rim bd cp”).speed(“<1 2 -1 -2>“)
fast(…) / slow(…)Pattern hızını Mini notasyon dışından değiştirir. Mini notasyon’da benzeri * ve / operatörleridir.sound(“bd*4,~ rim ~ cp”).slow(2)
sine, saw, square, tri, rand, perlinSinyal kaynaklarıdır; efektleri düz adımlar yerine sürekli veya rastlantısal modüle eder.sound(“hh*16”).gain(sine)
range(min,max)Sinyalin 0-1 aralığını başka bir aralığa ölçekler.sound(“hh*16”).lpf(saw.range(500, 2000))
rev()Patterni ters sırada çalar.n(“0 2 4 6”).scale(“C:minor”).rev()
jux(fn)Patterni sol/sağ iki kopyaya ayırır; sağ kopyaya verilen fonksiyonu uygular.n(“0 2 4 6”).scale(“C:minor”).jux(rev)
add(…)Notalara veya sayılara değer ekler; transpozisyon ve varyasyon üretir.n(“0 2 4 6”.add(“<0 1 2 1>“)).scale(“C:minor”)
ply(n)Her eventi n kat hızlandırır/katlar.s(“bd sd”).ply(“<1 2 3>“)
off(time, fn)Patternin kopyasını belirli süre kaydırır ve kopyaya fonksiyon uygular.s(“bd sd, hh*4”).off(1/8, x=>x.speed(2))

4. Davul kısaltmaları ve ses seçimi

Atölyede kullanılan standart davul kısaltmaları aşağıdaki gibidir. Bunlar farklı bankalarla başka karakterlere bürünür.

KısaltmaAnlamı
bdbass drum / kick
sdsnare drum
rimrim shot
hhhi-hat
ohopen hi-hat
ltlow tom
mtmiddle tom
hthigh tom
rdride cymbal
crcrash cymbal

Örnek bankalar: AkaiLinn, RhythmAce, RolandTR808, RolandTR707, RolandTR909, ViscoSpaceDrum. Banka değiştikçe aynı pattern farklı davul makinesi karakteriyle çalar.

5. Atölye kod kütüphanesi: İlk Sesler

Bu bölüm ses çalma, sample numarası, davul bankası ve Mini notasyon ritim yapılarını açıklar.

İlk ses

Ne işe yarar: casio adlı hazır sesi çalar; canlı kodlama alanının en basit örneğidir.

sound("casio")

Hazır ses adları

Ne işe yarar: Atölyede deneyebileceğin kısa sample adlarını gösterir.

insect wind jazz metal east crow casio space numbers

Sample numarası seçme

Ne işe yarar: casio sesinin ikinci sample’ını seçer; numaralar 0’dan başlar.

sound("casio:1")

Temel davul sesleri

Ne işe yarar: Bass drum, hihat, snare ve open hihat sıralı çalar.

sound("bd hh sd oh")

Davul bankası seçme

Ne işe yarar: Aynı bd/hh/sd/oh patternini Roland TR-909 karakteriyle çalar.

sound("bd hh sd oh").bank("RolandTR909")

Basit sekans

Ne işe yarar: Boşlukla ayrılan sesleri sırayla çalar.

sound("bd hh sd hh")

Daha uzun sekans

Ne işe yarar: Cycle içine daha çok öğe sıkıştırıldığı için ritim daha yoğun/hızlı algılanır.

sound("bd bd hh bd rim bd hh bd")

Her cycle içinde bir öğe

Ne işe yarar: Açılı parantezle her cycle’da yalnızca sıradaki öğeyi çalar.

sound("<bd bd hh bd rim bd hh bd>")

Açılı parantez + hızlandırma

Ne işe yarar: <…> yapısını *8 ile hızlandırır; öğe sayısı değişse bile temel tempo hissi sabit kalır.

sound("<bd bd hh bd rim bd hh bd>*8")

Tempo ayarı setcpm

Ne işe yarar: Cycle-per-minute değerini ayarlar; burada 90 BPM/4 benzeri cycle temposu kullanılır.

setcpm(90/4)
sound("<bd hh rim hh>*8")

Sus ekleme

Ne işe yarar: - karakteri o adımda ses çalmamasını sağlar.

sound("bd hh - rim - bd hh rim")

Alt sekans

Ne işe yarar: [hh hh] ve [hh bd] gibi gruplar kendi süresine sıkışır.

sound("bd [hh hh] sd [hh bd] bd - [hh sd] cp")

Öğe hızlandırma

Ne işe yarar: hh2 veya hh3 gibi ifadeler ilgili öğeyi hızlandırır/çoğaltır.

sound("bd hh*2 rim hh*3 bd [- hh*2] rim hh*2")

Alt sekansı hızlandırma

Ne işe yarar: Köşeli parantezli grupların tamamını *2 veya *1.5 ile hızlandırır.

sound("bd [hh rim]*2 bd [hh rim]*1.5")

Aşırı hızlandırma

Ne işe yarar: Çok yüksek çarpanlar ritmi pitch benzeri hızlı tekrara dönüştürür.

sound("bd hh*32 rim hh*16")

İç içe alt sekans

Ne işe yarar: [[rim rim] hh] gibi derin grupla karmaşık vuruş kurar.

sound("bd [[rim rim] hh] bd cp")

Paralel katman

Ne işe yarar: Virgül iki patterni aynı anda çalar: hihat dizisi ve bd/casio dizisi.

sound("hh hh hh, bd casio")

Çoklu paralel katman

Ne işe yarar: Birden fazla virgülle üç katmanı aynı anda yürütür.

sound("hh hh hh, bd bd, - casio")

Alt sekans içinde paralel

Ne işe yarar: Köşeli parantez içinde virgül kullanarak aynı zaman diliminde iki ses çalar.

sound("hh hh hh, bd [bd,casio]")

Çok satırlı pattern

Ne işe yarar: Backtick ile uzun patterni satırlara böler; okunabilirlik artar.

sound(`bd*2, - cp,
- - - oh, hh*4,
[- casio]*2`)

Sample numarasını doğrudan yazma

Ne işe yarar: jazz sesinin farklı sample numaralarını tek tek sound içinde belirtir.

sound("jazz:0 jazz:1 [jazz:4 jazz:2] jazz:3*2")

n ile sample numarası seçme

Ne işe yarar: Aynı sample seçimini daha okunur biçimde n fonksiyonuyla yapar.

n("0 1 [4 2] 3*2").sound("jazz")

Mini notasyon özeti: sekans

Ne işe yarar: Bölüm özeti için verilen düz sıralama örneği.

sound("bd bd sd hh")

Mini notasyon özeti: sample numarası

Ne işe yarar: Farklı hihat sample numaralarını gösterir.

sound("hh:0 hh:1 hh:2 hh:3")

Mini notasyon özeti: suslar

Ne işe yarar: metal ve jazz sample’ları arasında sus kullanır.

sound("metal - jazz jazz:1")

Mini notasyon özeti: dönüşümlü seçim

Ne işe yarar: Açılı parantezle her cycle’da başka davul sesi seçer.

sound("<bd hh rim oh bd rim>")

Mini notasyon özeti: alt sekans

Ne işe yarar: wind, metal, jazz ve hh sesleriyle alt grup örneği verir.

sound("bd wind [metal jazz] hh")

Mini notasyon özeti: iç içe alt sekans

Ne işe yarar: İç içe sample gruplarıyla derin yapı örneği verir.

sound("bd [metal [jazz [sd cp]]]")

Mini notasyon özeti: hızlandırma

Ne işe yarar: sd ve cp seslerini farklı hızlarda çoğaltır.

sound("bd sd*2 cp*3")

Mini notasyon özeti: paralel

Ne işe yarar: Kick ve hihat katmanlarını eşzamanlı çalar.

sound("bd*2, hh*2 [hh oh]")

Fonksiyon özeti: sound

Ne işe yarar: Verilen adlardaki sesleri çalar.

sound("bd sd [- bd] sd")

Fonksiyon özeti: bank

Ne işe yarar: Patternin ses bankasını değiştirir.

sound("bd sd [- bd] sd").bank("RolandTR909")

Fonksiyon özeti: setcpm

Ne işe yarar: Tempo ayarlayıp davul patternini çalar.

setcpm(45); sound("bd sd [- bd] sd")

Fonksiyon özeti: n

Ne işe yarar: jazz sample’ları için sample numarası patterni verir.

n("0 1 4 2 0 6 3 2").sound("jazz")

5.1 İlk Sesler bölüm sonu örnekleri

Temel rock ritmi

Ne işe yarar: Rock backbeat iskeleti: kick/snare iki kez, hihat sekizlik akış.

setcpm(100/4)
sound("[bd sd]*2, hh*8").bank("RolandTR505")

Klasik house

Ne işe yarar: Dört vuruş kick, clap ve hihat yerleşimiyle house/techno temel kalıbı.

sound("bd*4, [- cp]*2, [- hh]*4").bank("RolandTR909")

We Will Rock You

Ne işe yarar: İki kick + clap ile stomp-clap stadyum ritmi kurar.

setcpm(81/2)
sound("bd*2 cp").bank("RolandTR707")

Yellow Magic Orchestra - Firecracker

Ne işe yarar: Compurhythm benzeri davul/süs perküsyon patterniyle synth-pop/electro hissi verir.

setcpm(120/2)
sound("bd sd, - - - hh - hh - -, - perc - perc:1*2")
.bank("RolandCompurhythm1000")

16-step sequencer taklidi

Ne işe yarar: Dört satırlı 16 adımlı step sequencer mantığını Frekans mini-notation ile gösterir.

setcpm(90/4)
sound(`
[-  -  oh - ] [-  -  -  - ] [-  -  -  - ] [-  -  -  - ],
[hh hh -  - ] [hh -  hh - ] [hh -  hh - ] [hh -  hh - ],
[-  -  -  - ] [cp -  -  - ] [-  -  -  - ] [cp -  -  - ],
[bd -  -  - ] [-  -  -  bd] [-  -  bd - ] [-  -  -  bd]
`)

Bir örnek daha

Ne işe yarar: TR-808 bankasıyla daha farklı bir 16-step elektro/hip-hop davul groove’u.

setcpm(88/4)
sound(`
[-  -  -  - ] [-  -  -  - ] [-  -  -  - ] [-  -  oh:1 - ],
[hh hh hh hh] [hh hh hh hh] [hh hh hh hh] [hh hh -  - ],
[-  -  -  - ] [cp -  -  - ] [-  -  -  - ] [~  cp -  - ],
[bd bd -  - ] [-  -  bd - ] [bd bd - bd ] [-  -  -  - ]
`).bank("RolandTR808")

Sıradan olmayan davullar

Ne işe yarar: Davul yerine jazz, insect, crow, metal, space ve wind sample’larıyla deneysel perküsyon dokusu kurar.

setcpm(100/2)
s(`jazz*2,
insect [crow metal] - -,
- space:4 - space:1,
- wind`)

6. Atölye kod kütüphanesi: İlk Notalar

Bu bölüm pitch, nota harfleri/sayıları, octave, gam, uzun sekanslar, @, ! ve paralel pattern kanallarını açıklar.

Sayılarla nota

Ne işe yarar: MIDI benzeri pitch numaralarıyla piyano notaları çalar.

note("48 52 55 59").sound("piano")

Harflerle nota

Ne işe yarar: c-e-g-b gibi nota harflerini piyano sesine bağlar.

note("c e g b").sound("piano")

Bemoller

Ne işe yarar: db, eb, gb, ab, bb ile siyah tuşlara erişir.

note("db eb gb ab bb").sound("piano")

Diyezler

Ne işe yarar: c#, d#, f#, g#, a# ile siyah tuşlara erişir.

note("c# d# f# g# a#").sound("piano")

Oktav seçimi

Ne işe yarar: c2, e3, g4, b5 gibi oktav numarasıyla perde aralığını belirler.

note("c2 e3 g4 b5").sound("piano")

Notanın sesini değiştirme

Ne işe yarar: Aynı notaları piano yerine başka synth/sample sesleriyle çalabilir.

note("36 43, 52 59 62 64").sound("piano")

Sesler arasında geçiş

Ne işe yarar: note patterni ve sound patterni birleşerek farklı adımlarda farklı sesler duyurur.

note("48 67 63 [62, 58]")
.sound("piano gm_electric_guitar_muted")

Sesleri üst üste bindirme

Ne işe yarar: Virgül ile piano ve muted electric guitar aynı notalarda birlikte çalar.

note("48 67 63 [62, 58]")
.sound("piano, gm_electric_guitar_muted")

/ ile uzatma

Ne işe yarar: Dört notalı bas dizisini 4 cycle’a yayar; her nota uzar.

note("[36 34 41 39]/4").sound("gm_acoustic_bass")

<…> ile cycle başına nota

Ne işe yarar: Her cycle’da sıradaki bas notasını çalar.

note("<36 34 41 39>").sound("gm_acoustic_bass")

Cycle başına sekans

Ne işe yarar: Her cycle’da farklı ikili bas hareketi çalar ve her ikiliyi *4 ile hızlandırır.

note("<[36 48]*4 [34 46]*4 [41 53]*4 [39 51]*4>")
.sound("gm_acoustic_bass")

Melodik dönüşüm

Ne işe yarar: 60 sabit kalırken ikinci nota <63 62 65 63> arasında değişir.

note("60 <63 62 65 63>")
.sound("gm_xylophone")

Davulda dönüşümlü seçim

Ne işe yarar: Snare ve clap arasında dönüşümlü seçim yapar.

sound("bd*4, [~ <sd cp>]*2, [~ hh]*4")
.bank("RolandTR909")

Scale ile güvenli nota seçimi

Ne işe yarar: n değerlerini C minor gam dereceleri olarak yorumlar; uyumlu notalar üretir.

setcpm(60)
n("0 2 4 <[6,8] [7,9]>")
.scale("C:minor").sound("piano")

Scale patterni otomasyonu

Ne işe yarar: Gamı C major ve D mixolydian arasında pattern olarak değiştirir.

setcpm(60)
n("<0 -3>, 2 4 <[6,8] [7,9]>")
.scale("<C:major D:mixolydian>/4")
.sound("piano")

@ ile uzatma

Ne işe yarar: c notasını 3 birim, eb notasını 1 birim uzun çalar.

note("c@3 eb").sound("gm_acoustic_bass")

Shuffle / üçlemeli swing

Ne işe yarar: Her vuruşta ilk notayı iki, ikincisini bir birim uzun tutarak shuffle hissi verir.

setcpm(60)
n("<[4@2 4] [5@2 5] [6@2 6] [5@2 5]>*2")
.scale("<C2:mixolydian F2:mixolydian>/4")
.sound("gm_acoustic_bass")

! ile çoğaltma

Ne işe yarar: c notasını iki kez çoğaltır; diğer grup içinde alternatif melodiler üretir.

setcpm(60)
note("c!2 [eb,<g a bb a>]").sound("piano")

Nota özeti: yavaşlatma

Ne işe yarar: c-a-f-e notalarını 2 cycle’a yayar.

note("[c a f e]/2")

Nota özeti: dönüşümlü seçim

Ne işe yarar: c ve a’dan sonra e/g arasında dönüşümlü seçim yapar.

note("c a f <e g>")

Nota özeti: uzatma

Ne işe yarar: c notasını üç birim uzatır.

note("c@3 e")

Nota özeti: çoğaltma

Ne işe yarar: c notasını üç kez çoğaltır.

note("c!3 e")

Fonksiyon özeti: note

Ne işe yarar: Harf notalarını piano ile çalar.

note("b g e c").sound("piano")

Fonksiyon özeti: scale

Ne işe yarar: Scale degree değerlerini C minor gamına dönüştürür.

n("6 4 2 0").scale("C:minor").sound("piano")

Fonksiyon özeti: $:

Ne işe yarar: İki pattern kanalını paralel çalar.

$: s("bd sd")
$: note("c eb g")

6.1 İlk Notalar bölüm sonu örnekleri

Klas bas yürüyüşü

Ne işe yarar: Minor synth-bass yürüyüşü; lpf ile koyu/filtreli karakter.

note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("gm_synth_bass_1")
.lpf(800) // <-- we'll learn about this soon

Klas melodi

Ne işe yarar: C minor gamında synth string melodisi; rest’lerle boşluklu ve döngüsel yapı.

n(`<
[~ 0] 2 [0 2] [~ 2]
[~ 0] 1 [0 1] [~ 1]
[~ 0] 3 [0 3] [~ 3]
[~ 0] 2 [0 2] [~ 2]
>*4`).scale("C4:minor")
.sound("gm_synth_strings_1")

Klas davullar

Ne işe yarar: 909 davul bankasıyla house/electronic groove.

sound("bd*4, [~ <sd cp>]*2, [~ hh]*4")
.bank("RolandTR909")

Üç patterni paralel çalma

Ne işe yarar: Bas, melodi ve davulu $: kanallarıyla aynı anda çalar; tam aranjman iskeleti oluşur.

$: note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("gm_synth_bass_1").lpf(800)

$: n(`<
[~ 0] 2 [0 2] [~ 2]
[~ 0] 1 [0 1] [~ 1]
[~ 0] 3 [0 3] [~ 3]
[~ 0] 2 [0 2] [~ 2]
>*4`).scale("C4:minor")
.sound("gm_synth_strings_1")

$: sound("bd*4, [~ <sd cp>]*2, [~ hh]*4")
.bank("RolandTR909")

7. Atölye kod kütüphanesi: İlk Efektler

Bu bölüm filtre, vowel, gain, ADSR, delay, room, pan, speed ve sinyal tabanlı modülasyonları açıklar.

Alçak geçiren filtre

Ne işe yarar: Sawtooth bas dizisindeki parlaklığı lpf(800) ile kısar.

note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("sawtooth").lpf(800)

Patternli lpf

Ne işe yarar: Filtre cutoff değerini ritmik pattern olarak 200 ve 1000 arasında değiştirir.

note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("sawtooth").lpf("200 1000 200 1000")

Vokal filtresi

Ne işe yarar: Chord benzeri notalara a/e/i/o formant hareketi ekler.

note("<[c3,g3,e4] [bb2,f3,d4] [a2,f3,c4] [bb2,g3,eb4]>")
.sound("sawtooth").vowel("<a e i o>")

Gain ile dinamik

Ne işe yarar: Hihat sesini [.25 1] şeklinde vurgulu/az vurgulu çalar; kick/snare patterni altta sürer.

$: sound("hh*16").gain("[.25 1]*4")

$: sound("bd*4,[~ sd:1]*2")

Küçük tune

Ne işe yarar: Hihat, davul, filtreli bass ve vowel melodiyi aynı anda birleştirir.

$: sound("hh*8").gain("[.25 1]*4")

$: sound("bd*4,[~ sd:1]*2")

$: note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("sawtooth").lpf("200 1000 200 1000")

$: note("<[c3,g3,e4] [bb2,f3,d4] [a2,f3,c4] [bb2,g3,eb4]>")
.sound("sawtooth").vowel("<a e i o>")

ADSR zarfı

Ne işe yarar: Synth sesin girişini, düşüşünü, sürdürme seviyesini ve kapanışını ayrı ayrı ayarlar.

note("c3 bb2 f3 eb3")
.sound("sawtooth").lpf(600)
.attack(.1)
.decay(.1)
.sustain(.25)
.release(.2)

ADSR kısa yazım

Ne işe yarar: Aynı envelope mantığını tek adsr stringiyle yazar.

note("c3 bb2 f3 eb3")
.sound("sawtooth").lpf(600)
.adsr(".1:.1:.5:.2")

Gecikme

Ne işe yarar: Gitar benzeri nota patterni ve davul vuruşlarına delay ekler.

$: note("[~ [<[d3,a3,f4]!2 [d3,bb3,g4]!2> ~]]*2")
.sound("gm_electric_guitar_muted").delay(.5)

$: sound("bd rim").bank("RolandTR707").delay(".5")

Oda / yankı

Ne işe yarar: Accordion melodisine geniş oda/reverb karakteri verir.

n("<4 [3@3 4] [<2 0> ~@16] ~>")
.scale("D4:minor").sound("gm_accordion:2")
.room(2)

Küçük dub parçası

Ne işe yarar: Gecikmeli gitar/davul ve reverbli accordion ile dub hissi üretir.

$: note("[~ [<[d3,a3,f4]!2 [d3,bb3,g4]!2> ~]]*2")
.sound("gm_electric_guitar_muted").delay(.5)

$: sound("bd rim").bank("RolandTR707").delay(.5)
$: n("<4 [3@3 4] [<2 0> ~@16] ~>")
.scale("D4:minor").sound("gm_accordion:2")
.room(2).gain(.5)

Küçük dub parçası + bas

Ne işe yarar: Dub eskizine sawtooth/triangle bas katmanı ekleyerek parçayı tamamlar.

$: note("[~ [<[d3,a3,f4]!2 [d3,bb3,g4]!2> ~]]*2")
.sound("gm_electric_guitar_muted").delay(.5)

$: sound("bd rim").bank("RolandTR707").delay(.5)

$: n("<4 [3@3 4] [<2 0> ~@16] ~>")
.scale("D4:minor").sound("gm_accordion:2")
.room(2).gain(.4)
$: n("[0 [~ 0] 4 [3 2] [0 ~] [0 ~] <0 2> ~]/2")
.scale("D2:minor")
.sound("sawtooth,triangle").lpf(800)

Panlama

Ne işe yarar: numbers sample’larını soldan sağa doğru stereo konumlara dağıtır.

sound("numbers:1 numbers:2 numbers:3 numbers:4")
.pan("0 0.3 .6 1")

Hız

Ne işe yarar: Davul sample playback hızını ileri/geri ve farklı hızlarda değiştirir.

sound("bd rim [~ bd] rim").speed("<1 2 -1 -2>").room(.2)

slow fonksiyonu

Ne işe yarar: Patternin tamamını Mini notasyon dışında yavaşlatır.

sound("bd*4,~ rim ~ cp").slow(2)

Mini notasyon ile hız patterni

Ne işe yarar: fast/slow mantığının Mini notasyon’daki * kullanımına denk gelen örneği.

sound("[bd*4,~ rim ~ cp]*<1 [2 4]>")

Sine ile modülasyon

Ne işe yarar: Hihat gain değerini sine dalgasıyla sürekli dalgalandırır.

sound("hh*16").gain(sine)

Range ile lpf modülasyonu

Ne işe yarar: Saw dalgasını 500-2000 aralığına ölçekleyip filtreyi hareket ettirir.

sound("hh*16").lpf(saw.range(500, 2000))

Yavaş sine filtre hareketi

Ne işe yarar: Sawtooth bas dizisinde lpf değerini sine dalgasıyla 100-2000 arasında yavaşça gezdirir.

note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("sawtooth")
.lpf(sine.range(100, 2000).slow(4))

Efekt özeti: lpf

Ne işe yarar: Filtre değerini 400 ve 2000 arasında değiştirir.

note("c2 c3 c2 c3").s("sawtooth").lpf("<400 2000>")

Efekt özeti: vowel

Ne işe yarar: Sawtooth notalara vowel karakteri verir.

note("c3 eb3 g3").s("sawtooth").vowel("<a e i o>")

Efekt özeti: gain

Ne işe yarar: Hihat’ta dinamik vurgu patterni yaratır.

s("hh*16").gain("[.25 1]*2")

Efekt özeti: delay

Ne işe yarar: Davul dizisine delay ekler.

s("bd rim bd cp").delay(.5)

Efekt özeti: room

Ne işe yarar: Davul dizisine reverb ekler.

s("bd rim bd cp").room(.5)

Efekt özeti: pan

Ne işe yarar: Davul dizisini sol/sağ konumlarda çalar.

s("bd rim bd cp").pan("0 1")

Efekt özeti: speed

Ne işe yarar: Davul sample hızlarını patternle değiştirir.

s("bd rim bd cp").speed("<1 2 -1 -2>")

Efekt özeti: signal

Ne işe yarar: saw sinyalini gain kontrolüne bağlar.

s("hh*16").gain(saw)

Efekt özeti: range

Ne işe yarar: saw sinyalini 200-4000 aralığına taşıyıp lpf’ye uygular.

s("hh*16").lpf(saw.range(200,4000))

8. Atölye kod kütüphanesi: Kalıp Efektleri

Bu bölüm Frekans/Tidal’a daha özgü pattern dönüşümlerini açıklar: ters çalma, jux, add, ply ve offset kopyalar.

rev

Ne işe yarar: jazz sample patternini ters sırada çalar.

n("0 1 [4 3] 2 0 2 [~ 3] 4").sound("jazz").rev()

jux(rev)

Ne işe yarar: Patternin bir kopyasını sağ kanalda ters çalar; stereo call-response etkisi verir.

n("0 1 [4 3] 2 0 2 [~ 3] 4").sound("jazz").jux(rev)

jux eşdeğeri

Ne işe yarar: jux(rev) davranışını iki $: kanalıyla açıkça gösterir.

$: n("0 1 [4 3] 2 0 2 [~ 3] 4").sound("jazz").pan(0)
$: n("0 1 [4 3] 2 0 2 [~ 3] 4").sound("jazz").pan(1).rev()

jux görselleştirme

Ne işe yarar: Sol ve sağ kopyaları farklı renklerle görselleştirir.

$: n("0 1 [4 3] 2 0 2 [~ 3] 4").sound("jazz").pan(0).color("cyan")
$: n("0 1 [4 3] 2 0 2 [~ 3] 4").sound("jazz").pan(1).color("magenta").rev()

Çoklu tempo

Ne işe yarar: Aynı piano patternini slow değerleri 0.5, 1 ve 1.5 olan üç hızda üst üste bindirir.

note("c2, eb3 g3 [bb3 c4]").sound("piano").slow("0.5,1,1.5")

Çoklu tempo eşdeğeri

Ne işe yarar: Üç tempolu kopyayı ayrı kanallar ve renklerle açıklar.

$: note("c2, eb3 g3 [bb3 c4]").s("piano").slow(0.5).color('cyan')
$: note("c2, eb3 g3 [bb3 c4]").s("piano").slow(1).color('magenta')
$: note("c2, eb3 g3 [bb3 c4]").s("piano").slow(1.5).color('yellow')

add

Ne işe yarar: c2 ve eb3/g3 notalarına patternli transpozisyon ekler.

setcpm(60)
note("c2 [eb3,g3] ".add("<0 <1 -1>>"))
.color("<cyan <magenta yellow>>").adsr("[.1 0]:.2:[1 0]")
.sound("gm_acoustic_bass").room(.5)

add zincirleme

Ne işe yarar: Aynı notalara iki kez add uygulayarak daha çok varyasyon üretir.

setcpm(60)
note("c2 [eb3,g3]".add("<0 <1 -1>>").add("0,7"))
.color("<cyan <magenta yellow>>").adsr("[.1 0]:.2:[1 0]")
.sound("gm_acoustic_bass").room(.5)

add + scale

Ne işe yarar: C minor gam derecelerine add ile chord/arıza benzeri ek dereceler verir.

n("0 [2 4] <3 5> [~ <4 1>]".add("<0 [0,2,4]>"))
.scale("C5:minor").release(.5)
.sound("gm_xylophone").room(.5)

Stack zamanı

Ne işe yarar: Xylophone, acoustic bass ve jazz sample jux katmanını birlikte çalar.

$: n("0 [2 4] <3 5> [~ <4 1>]".add("<0 [0,2,4]>"))
.scale("C5:minor")
.sound("gm_xylophone")
.room(.4).delay(.125)
$: note("c2 [eb3,g3]".add("<0 <1 -1>>"))
.adsr("[.1 0]:.2:[1 0]")
.sound("gm_acoustic_bass")
.room(.5)
$: n("0 1 [2 3] 2").sound("jazz").jux(rev)

ply

Ne işe yarar: Her eventi ikiye katlar; davul patternini daha sık çalar.

sound("hh hh, bd rim [~ cp] rim").bank("RolandTR707").ply(2)

ply eşdeğeri

Ne işe yarar: ply(2) yerine her öğeye *2 yazarak benzer sonucu açıklar.

sound("hh*2 hh*2, bd*2 rim*2 [~ cp*2] rim*2").bank("RolandTR707")

off

Ne işe yarar: Orijinal patternin 1/16 cycle kaydırılmış, add(4) uygulanmış kopyasını çalar.

n("0 [4 <3 2>] <2 3> [~ 1]"
.off(1/16, x=>x.add(4))
//.off(1/8, x=>x.add(7))
).scale("<C5:minor Db5:mixolydian>/2")
.s("triangle").room(.5).dec(.1)

İç içe off

Ne işe yarar: Davul patternine kaydırılmış hızlı/düşük gain kopya ve onun içinde vowel modülasyonu ekler.

s("bd sd [rim bd] sd,[~ hh]*4").bank("CasioRZ1")
.off(2/16, x=>x.speed(1.5).gain(.25)
.off(3/16, y=>y.vowel("<a e i o>*8")))

Kalıp özeti: rev

Ne işe yarar: Scale patternini ters çalar.

n("0 2 4 6 ~ 7 9 5").scale("C:minor").rev()

Kalıp özeti: jux

Ne işe yarar: Scale patternini stereo ikiye böler, sağ tarafı ters çalar.

n("0 2 4 6 ~ 7 9 5").scale("C:minor").jux(rev)

Kalıp özeti: add

Ne işe yarar: Scale degree patternine döngüsel transpozisyon ekler.

n("0 2 4 6 ~ 7 9 5".add("<0 1 2 1>")).scale("C:minor")

Kalıp özeti: ply

Ne işe yarar: Davul patternindeki eventleri 1/2/3 kat hızlarda çoğaltır.

s("bd sd [~ bd] sd").ply("<1 2 3>")

Kalıp özeti: off

Ne işe yarar: Davul/hihat patternine kaydırılmış speed(2) kopyası ekler.

s("bd sd [~ bd] sd, hh*8").off(1/16, x=>x.speed(2))

9. Atölye Özeti hızlı haritası

Atölyenin özeti aşağıdaki beş alana ayrılır. Bu tablo çalışma sırasında hangi kavramın hangi problem için kullanılacağını hızlıca bulmak için hazırlanmıştır.

AlanKapsadığı sözdizimi/fonksiyonlarNe zaman kullanılır?
Mini notasyonspace, :x, -, ~, [], [[]], *, /, <>, @, !, ,Ritim, sus, örnek numarası, grupla, hızlandır/yavaşlat, paralel ve süre/tekrar işlemlerini tek string içinde yazar.
Seslersound/s, bank, nSample/synth çalma, drum machine bankası seçme ve sample numarası seçme.
Notalarnote, n+scale, $:Pitch üretme, scale degree ile tonal kontrol ve paralel pattern kanalları.
Ses efektlerilpf, vowel, gain, delay, room, pan, speed, signals, rangeSes rengini, mekansallığı, dinamikleri ve sürekli modülasyonları kontrol eder.
Kalıp Efektlerisetcpm, fast, slow, rev, jux, add, ply, offTempo, hız, ters çalma, stereo varyasyon, transpozisyon, event çoğaltma ve kaydırılmış kopya üretir.

10. Pratik tarifler: hangi amaca hangi yapı?

AmaçYapıÖrnek
Basit beat yapmaksound + Mini notasyon + banksound(“bd*4, [- cp]*2, [- hh]*4”).bank(“RolandTR909”)
Melodi yazmaknote veya n + scalen(“0 2 4 <6 7>“).scale(“C:minor”).sound(“piano”)
Parçayı katmanlamak$: kanalları$: s(“bd*4”) / $: note(“c eb g”).sound(“piano”)
Daha organik dinamizmgain patterni veya signals(“hh*16”).gain(“[.25 1]*4”)
Parlaklık/koyuluklpf + range/sinenote(“c2 c3”).s(“sawtooth”).lpf(sine.range(100,2000).slow(4))
Stereo hareketpan veya juxn(“0 1 2 3”).s(“jazz”).jux(rev)
Echo/kanondelay veya offs(“bd sd, hh*4”).off(1/8, x=>x.speed(2))

11. Örnekler ve ne tür müzik ürettikleri

Bu bölüm özellikle istenen en alt bölümdür. Tür/karakter açıklamaları, kodun kullandığı ritim, ses bankası, synth/sample ve efektlerden çıkarılmış pratik yorumlardır.

ÖrnekÜrettiği müzik türü / karakterNeden böyle duyulur?
Temel rock ritmiBasit rock backbeatKick/snare çiftleri ve sürekli hihat, klasik rock davul iskeleti verir.
Klasik houseHouse/techno temel kalıbıbd*4 dört vuruş kick, clap ve hihat yerleşimiyle dans müziği temel patterni oluşturur.
We Will Rock YouStomp-clap arena ritmiİki kick + clap yapısı Queen parçasındaki bedensel/stadyum ritmini taklit eder.
Yellow Magic Orchestra - FirecrackerSynth-pop/electro esintili drum-machine grooveCompurhythm bankası ve perc hareketleri YMO benzeri retro elektronik ritim hissi verir.
16-step sequencer taklidiKlasik drum-machine/step sequencer beatDört satırlı 16 adım mantığıyla kick, clap, hihat ve open-hat yerleşimi kurar.
Bir örnek daha808 electro/hip-hop/techno beatTR-808 bankası, yoğun hihat ve clap/kick yerleşimiyle elektronik davul groove’u verir.
Sıradan olmayan davullarDeneysel sample-percussion / sound collageJazz, insect, crow, metal, space ve wind sample’ları davul gibi kullanılır; alışılmadık perküsyon dokusu üretir.
Klas bas yürüyüşüMinor synth bass grooveC-Bb-F-Eb çevrimi ve filtreli synth bass karanlık/dans edilebilir temel sağlar.
Klas melodiMinor synth-string melodi/padC minor scale degree melodisi ve boşluklu yapı, elektronik melodik katman oluşturur.
Klas davullar909 house drumsTR-909 bankası, four-on-the-floor ve clap/snare alternation ile house davul katmanı üretir.
Üç patterni paralel çalmaLayered minor electronic sketchBassline, string melody ve 909 drums birleşince kısa bir elektronik parça iskeleti oluşur.
Küçük tuneFilter/vowel synth grooveGainli hihat, kick/snare, filtreli bass ve vowel synth katmanlarıyla elektropop/acid benzeri eskiz üretir.
Küçük dub parçasıDub/reggae esintili elektronik eskizGecikmeli gitar/davul, geniş reverbli akordeon ve D minor yapı dub alanı yaratır.
Küçük dub parçası + basTamamlanmış dub/electronic grooveDub iskeletine sawtooth/triangle bas eklenerek daha dolu alt frekanslı parça hissi verir.
rev / jux jazzStereo ters sample pattern / glitch-jazzJazz sample patterninin ters kopyası sağa alınır; canlı kodlama performansına uygun stereo varyasyon üretir.
Çoklu tempo pianoPolyrhythmic/ambient piano textureAynı piano patterninin üç farklı yavaşlıkta üst üste binmesi fazlı/poliritmik doku verir.
add + scale xylophoneGenerative melodic minimalismScale derecelerine patternli eklemeler ve xylophone sesi, tekrarlı ama değişken melodik yapı üretir.
Pattern stackGenerative electronic jamXylophone, acoustic bass ve jux edilmiş jazz sample birleşimiyle Tidal/Frekans tarzı algoritmik jam çıkarır.
ply drumsDaha yoğun drum fill / roll hissiEventleri çoğaltarak patterni sıklaştırır, fill veya roll benzeri etki verir.
off examplesEcho/canon/glitch percussionKaydırılmış ve modifiye edilmiş kopyalar ritmik kanon, echo veya glitch hissi üretir.

Bitti - Frekans atölye kodlarını çalıştırırken küçük değişiklikler yaparak dinlemek en iyi öğrenme yoludur.