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.
| Kavram | Sözdizimi | Ne işe yarar? | Kısa örnek |
|---|---|---|---|
| Sekans | boşluk | Öğeleri sırayla çalar; bir cycle içine sığdırılır. | sound(“bd bd sd hh”) |
| Sample numarası | :x | Aynı 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 | /n | Sekansı 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 | !n | Aynı 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şaret | Ne 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/release | ADSR 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, perlin | Sinyal 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ısaltma | Anlamı |
|---|---|
| bd | bass drum / kick |
| sd | snare drum |
| rim | rim shot |
| hh | hi-hat |
| oh | open hi-hat |
| lt | low tom |
| mt | middle tom |
| ht | high tom |
| rd | ride cymbal |
| cr | crash 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 soonKlas 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.
| Alan | Kapsadığı sözdizimi/fonksiyonlar | Ne zaman kullanılır? |
|---|---|---|
| Mini notasyon | space, :x, -, ~, [], [[]], *, /, <>, @, !, , | Ritim, sus, örnek numarası, grupla, hızlandır/yavaşlat, paralel ve süre/tekrar işlemlerini tek string içinde yazar. |
| Sesler | sound/s, bank, n | Sample/synth çalma, drum machine bankası seçme ve sample numarası seçme. |
| Notalar | note, n+scale, $: | Pitch üretme, scale degree ile tonal kontrol ve paralel pattern kanalları. |
| Ses efektleri | lpf, vowel, gain, delay, room, pan, speed, signals, range | Ses rengini, mekansallığı, dinamikleri ve sürekli modülasyonları kontrol eder. |
| Kalıp Efektleri | setcpm, fast, slow, rev, jux, add, ply, off | Tempo, 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 yapmak | sound + Mini notasyon + bank | sound(“bd*4, [- cp]*2, [- hh]*4”).bank(“RolandTR909”) |
| Melodi yazmak | note veya n + scale | n(“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 dinamizm | gain patterni veya signal | s(“hh*16”).gain(“[.25 1]*4”) |
| Parlaklık/koyuluk | lpf + range/sine | note(“c2 c3”).s(“sawtooth”).lpf(sine.range(100,2000).slow(4)) |
| Stereo hareket | pan veya jux | n(“0 1 2 3”).s(“jazz”).jux(rev) |
| Echo/kanon | delay veya off | s(“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ü / karakter | Neden böyle duyulur? |
|---|---|---|
| Temel rock ritmi | Basit rock backbeat | Kick/snare çiftleri ve sürekli hihat, klasik rock davul iskeleti verir. |
| Klasik house | House/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 You | Stomp-clap arena ritmi | İki kick + clap yapısı Queen parçasındaki bedensel/stadyum ritmini taklit eder. |
| Yellow Magic Orchestra - Firecracker | Synth-pop/electro esintili drum-machine groove | Compurhythm bankası ve perc hareketleri YMO benzeri retro elektronik ritim hissi verir. |
| 16-step sequencer taklidi | Klasik drum-machine/step sequencer beat | Dört satırlı 16 adım mantığıyla kick, clap, hihat ve open-hat yerleşimi kurar. |
| Bir örnek daha | 808 electro/hip-hop/techno beat | TR-808 bankası, yoğun hihat ve clap/kick yerleşimiyle elektronik davul groove’u verir. |
| Sıradan olmayan davullar | Deneysel sample-percussion / sound collage | Jazz, 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 groove | C-Bb-F-Eb çevrimi ve filtreli synth bass karanlık/dans edilebilir temel sağlar. |
| Klas melodi | Minor synth-string melodi/pad | C minor scale degree melodisi ve boşluklu yapı, elektronik melodik katman oluşturur. |
| Klas davullar | 909 house drums | TR-909 bankası, four-on-the-floor ve clap/snare alternation ile house davul katmanı üretir. |
| Üç patterni paralel çalma | Layered minor electronic sketch | Bassline, string melody ve 909 drums birleşince kısa bir elektronik parça iskeleti oluşur. |
| Küçük tune | Filter/vowel synth groove | Gainli hihat, kick/snare, filtreli bass ve vowel synth katmanlarıyla elektropop/acid benzeri eskiz üretir. |
| Küçük dub parçası | Dub/reggae esintili elektronik eskiz | Gecikmeli gitar/davul, geniş reverbli akordeon ve D minor yapı dub alanı yaratır. |
| Küçük dub parçası + bas | Tamamlanmış dub/electronic groove | Dub iskeletine sawtooth/triangle bas eklenerek daha dolu alt frekanslı parça hissi verir. |
| rev / jux jazz | Stereo ters sample pattern / glitch-jazz | Jazz sample patterninin ters kopyası sağa alınır; canlı kodlama performansına uygun stereo varyasyon üretir. |
| Çoklu tempo piano | Polyrhythmic/ambient piano texture | Aynı piano patterninin üç farklı yavaşlıkta üst üste binmesi fazlı/poliritmik doku verir. |
| add + scale xylophone | Generative melodic minimalism | Scale derecelerine patternli eklemeler ve xylophone sesi, tekrarlı ama değişken melodik yapı üretir. |
| Pattern stack | Generative electronic jam | Xylophone, acoustic bass ve jux edilmiş jazz sample birleşimiyle Tidal/Frekans tarzı algoritmik jam çıkarır. |
| ply drums | Daha yoğun drum fill / roll hissi | Eventleri çoğaltarak patterni sıklaştırır, fill veya roll benzeri etki verir. |
| off examples | Echo/canon/glitch percussion | Kaydı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.