# الدليل المختصر لـ Strudel

> Strudel في صفحة وحدة: رموز mini-notation، دوال النوتات والوقت والتنويع والمؤثرات، الإشارات، وأسماء الطبول والآلات.

أكثر أجزاء كود Strudel اللي بترجع لها، في صفحة وحدة. الصفوف اللي تبدأ بنقطة دوال تضيفها على النمط، وتتسلسل ورا بعض: `s("bd*4").gain(.8).room(.3)`. جديد على الكود؟ ابدأ بـ [الدرس الأول](https://shawarma.studio/ar/learn/tutorial).

## الترميز المصغّر (mini-notation)

النص اللي داخل علامات التنصيص. كل شي داخل زوج علامات واحد ينعزف في دورة وحدة.

| تكتب | وش يسوّي |
| --- | --- |
| `s("bd sd hh sd")` | الخطوات اللي بينها مسافات تتقاسم الدورة بالتساوي. |
| `s("bd ~ sd -")` | سكتة. ~ و - الاثنين يعنون صمت في هذي الخطوة. |
| `s("bd [sd sd] hh")` | الأقواس المربعة تحط كذا خطوة في خطوة وحدة. |
| `s("bd <sd cp>")` | الأقواس الزاوية تشغّل عنصر واحد في كل دورة، بالدور. |
| `s("bd*4, hh*8")` | الفاصلة تشغّل الأنماط مع بعض في نفس الوقت. |
| `s("hh*8")` | كرر خطوة وسرّعها: ثمان هاي هات في مساحة وحدة. |
| `s("[bd sd hh cp]/2")` | بطّئ مجموعة: تاخذ دورتين، bd sd وبعدها hh cp. |
| `s("bd!3 sd")` | كرر خطوة بدون ما تضغطها: مثل bd bd bd sd. |
| `s("bd@3 sd")` | طوّل خطوة: bd تاخذ ثلاث أرباع الدورة. |
| `s("hh*16?")` | احذف كل خطوة عشوائيًا، نص الوقت. |
| `s("bd(3,8)")` | إيقاع إقليدي: 3 ضربات موزعة على 8 خطوات. |
| `s("bd(3,8,2)")` | نفسه، بس مدوَّر بخطوتين. |
| `s("hh:2")` | اختر تسجيل ثاني للصوت، والعدّ يبدأ من 0. |
| `n("0 .. 7").scale("C4:major").s("piano")` | مدى من الأرقام: 0 1 2 3 4 5 6 7. |
| `s("{bd sd hh}%4")` | بوليميتر: لوب من 3 خطوات على شبكة من 4 في الدورة. |
| `s("bd [sd\|cp\|rim]")` | اختر وحدة من الخيارات عشوائيًا في كل دورة. |

## الأصوات والنوتات

| تكتب | وش يسوّي |
| --- | --- |
| `s("bd sd")` | شغّل الأصوات بأسمائها. `sound()` هي نفس الدالة. |
| `note("c3 e3 g3")` | شغّل النوتات باسمها والأوكتاف (c3 هي الدو اللي تحت دو الوسطى). |
| `note("48 52 55")` | نوتات بأرقام MIDI: 60 هي دو الوسطى. |
| `note("[c3,e3,g3]")` | كورد: نوتات بينها فواصل داخل أقواس. |
| `n("0 2 4").scale("D4:dorian")` | درجات سلّم، والعدّ من 0. |
| `.s("piano")` | اختر الآلة اللي تعزف النوتات. |
| `.s("sawtooth")` | سينثات جاهزة: sawtooth و square و triangle و sine و supersaw. |
| `.n("<0 1 2>")` | اختر تسجيل من العيّنة برقمه. |

## دمج الأنماط

| تكتب | وش يسوّي |
| --- | --- |
| `stack(a, b)` | شغّل الأنماط مع بعض في نفس الوقت. |
| `cat(a, b)` | نمط واحد في كل دورة، بالدور. |
| `seq(a, b)` | حط الأنماط في دورة وحدة، واحد ورا الثاني. |
| `arrange([4, a], [8, b])` | ترتيب: a لمدة 4 دورات، وبعدها b لمدة 8. |
| `.struct("x ~ x x")` | شغّل النمط على خطوات x بس. |
| `.euclid(3, 8)` | شغّل على إيقاع إقليدي. |
| `.mask("1 0 1 1")` | اسكت الخطوات اللي تحت 0. |

## الوقت

| تكتب | وش يسوّي |
| --- | --- |
| `setcpm(30)` | السرعة بالدورات في الدقيقة. مع 4 ضربات في الدورة، الدورات = BPM / 4. |
| `setcps(0.5)` | السرعة بالدورات في الثانية. 0.5 هي الافتراضية (120 BPM على 4/4). |
| `.fast(2)` | اعزف بضعف السرعة. |
| `.slow(2)` | اعزف بنص السرعة. |
| `.rev()` | اعزف كل دورة بالعكس. |
| `.ply(2)` | اعزف كل خطوة مرتين. |
| `.swing(4)` | سوينق: أخّر كل حدث ثاني في كل ربع. |
| `.off(1/8, x => x.add(note(12)))` | أضف نسخة متأخرة شوي ومتغيّرة. |
| `.iter(4)` | كل دورة، ابدأ ربع أبعد داخل النمط. |
| `.palindrome()` | اعزف للأمام، وبعدها بالعكس، دورة ودورة. |

## التنويع

| تكتب | وش يسوّي |
| --- | --- |
| `.lastOf(4, x => x.fast(2))` | غيّر آخر دورة من كل 4 دورات. |
| `.firstOf(4, x => x.rev())` | غيّر أول دورة من كل 4 دورات. `every()` هي نفسها. |
| `.sometimes(x => x.speed(2))` | غيّر تقريبًا نص الأحداث، عشوائيًا. |
| `.often(...) / .rarely(...)` | نفسها، لتقريبًا 75% أو 25% من الأحداث. |
| `.degradeBy(.3)` | احذف تقريبًا 30% من الأحداث عشوائيًا. |
| `.jux(rev)` | شغّل النمط على اليسار، ونسخة متغيّرة على اليمين. |

## تشكيل الصوت

| تكتب | وش يسوّي |
| --- | --- |
| `.gain(.8)` | مستوى الصوت. 1 هو الكامل؛ خلّ الطبقات تحته. |
| `.lpf(800)` | فلتر low-pass: يقص الحدّة فوق 800 Hz. `.lpq()` يضيف رنين. |
| `.hpf(300)` | فلتر high-pass: يقص الغلاظة تحت 300 Hz. |
| `.room(.5)` | كمية الصدى (ريفيرب). `.size()` تحدد حجم القاعة. |
| `.delay(.3)` | كمية الإيكو. `.delaytime()` و `.delayfeedback()` يشكّلونه. |
| `.pan("0 1")` | مكان الصوت بين السماعتين، 0 يسار و 1 يمين. |
| `.speed(2)` | سرعة تشغيل العيّنة: 2 أوكتاف لفوق، و -1 يشغّلها بالعكس. |
| `.crush(4)` | Bit crusher: كل ما قل الرقم صار الصوت أخشن. |
| `.shape(.5)` | تشويه (distortion)، من 0 إلى 1. |
| `.vowel("a")` | فلتر حروف علّة: a e i o u. |
| `.attack(.1).release(.5)` | الغلاف: دخول وخروج تدريجي. وفيه بعد `.decay()` و `.sustain()`. |

## الحركة

الإشارات تتغيّر بنعومة خلال الدورة. استخدمها في أي مكان يقبل رقم.

| تكتب | وش يسوّي |
| --- | --- |
| `sine` | موجة ناعمة من 0 إلى 1 وترجع. وفيه بعد cosine. |
| `saw` | تطلع من 0 إلى 1، وبعدها تنط راجعة. |
| `tri / square` | موجات مثلثية ومربعة. |
| `rand / perlin` | قيم عشوائية، متقطعة أو ناعمة. |
| `.range(300, 2000)` | حوّل الإشارة لمدى معيّن. |
| `.slow(8)` | خلّ الحركة تاخذ 8 دورات. |
| `.segment(16)` | حوّل الإشارة لـ 16 خطوة في الدورة. |

## أسماء الأصوات

استخدمها مع `s()`. طبول وآلات كثيرة لها كذا تسجيل، والرقم يختار واحد منها: `hh:2`.

**طبول**

`bd` `sd` `hh` `oh` `cp` `rim` `lt` `mt` `ht` `cr` `rd` `cb` `sh`

**سينثات**

`sawtooth` `square` `triangle` `sine` `supersaw` `white` `pink` `brown`

**آلات مسجّلة**

`piano` `oud` `ney` `darbuka` `kalimba` `marimba` `vibraphone` `glockenspiel` `harp` `conga` `bongo` `tambourine` `framedrum` `cajon`

**طبول يد**

`darbuka_doum` `darbuka_tek` `darbuka_ka` `darbuka_slap` `riq_jingle` `riq_doum` `riq_tek` `bongo_high` `bongo_low` `bongo_mute` `conga_high` `conga_low` `conga_mute` `conga_open`

**أصوات بشرية**

`voice` `voice_ah` `voice_eh` `voice_ee` `voice_oh` `voice_oo` `voice_words`

**General MIDI**

`gm_epiano1` `gm_acoustic_guitar_nylon` `gm_electric_bass_finger` `gm_synth_bass_1` `gm_string_ensemble_1` `gm_choir_aahs` `gm_trumpet` `gm_flute` `gm_pad_warm` `gm_lead_2_sawtooth` `gm_sitar` `gm_koto`

للأمثلة المشروحة على هذي كلها، شوف [أنماط الطبول](https://shawarma.studio/ar/learn/drum-patterns) و [الألحان النموذجية](https://shawarma.studio/ar/learn/examples).

## جرّبه في Shawarma

Shawarma محرر موسيقى كل لحن فيه كود. لحنك يشتغل ويعيد نفسه؛ اطلب من المساعد تغيير بكلام عادي، اسمعه، واحتفظ فيه بس إذا عجبك. أو عدّل الكود بنفسك، مثل ما في هذا الدليل. المحرر مجاني، مع 5 ردود من المساعد للتجربة؛ وPro يبدأ بـ7 أيام مجانًا.

[ابدأ مجانًا مع Google](https://shawarma.studio/auth/google?return=%2Far) [شوف الأسعار](https://shawarma.studio/ar/pricing)

---

الصفحة: https://shawarma.studio/ar/learn/cheat-sheet
