Shawarma

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

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

الترميز المصغّر (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

للأمثلة المشروحة على هذي كلها، شوف أنماط الطبول و الألحان النموذجية.

جرّبه في Shawarma

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