1️⃣ آدرسینگ مستقیم پارامتر با Python

ساده‌ترین و شفاف‌ترین روش

op('noise1').par.amplitude = 0.5

یا:

op('/project1/geo1').par.tx = 2

📌 نکته:

  • par. فقط برای پارامترهاست

  • بدون par. می‌ری سراغ متغیرهای داخلی مثل bypass


2️⃣ آدرسینگ با Attribute (مثل bypass، cook، active)

این‌ها پارامتر نیستند، بلکه Property هستن.

op('geo1').bypass = True
op('moviefilein1').cook = False

3️⃣ آدرس‌دهی نسبی و مطلق

آدرس مطلق

op('/project1/base1/null1')

آدرس نسبی

op('null1')
op('../null1')
op('./geo1')

📌 برای پروژه‌های بزرگ همیشه نسبی بنویس (پروژه‌ات قابل جابه‌جایی می‌مونه)


4️⃣ Expression در پارامترها (بدون Python Script)

مثلاً داخل پارامتر Scale بنویسی:

op('chop1')['chan1']

یا:

op('null1').par.tx

📌 این روش Live هست و دائم آپدیت می‌شه


5️⃣ لینک پارامتر به پارامتر (Reference)

Right Click → Copy Parameter

Right Click → Paste References

نتیجه:

op('null1').par.tx

📌 بهترین روش برای Rig و کنترل مرکزی


6️⃣ آدرسینگ با CHOP (Export)

مثلاً:

  • LFO → Null → Export → tx

یا با کد:

op('geo1').par.tx = op('null1')['chan1']

📌 CHOP Export برای پروژه‌های Real-time عالیه


7️⃣ آدرسینگ با DAT (Table / Text)

مثلاً از Table DAT مقدار بخونیم:

op('geo1').par.tx = float(op('table1')[0,0])

یا Text DAT:

value = me.fetch('speed', 1)
op('geo1').par.ty = value

8️⃣ آدرسینگ با op() + wildcard

مثلاً همه‌ی Geoها:

for g in ops('geo*'):
g.par.scale = 0.5

یا:

for o in ops('/project1/*'):
o.bypass = True

9️⃣ آدرسینگ با Parent / Child

خیلی تمیز برای سیستم‌های ماژولار:

parent().par.speed
me.parent().par.enable

یا:

op('../controller').par.intensity

🔟 آدرسینگ با Custom Parameters

پارامتر سفارشی بساز → اسمش مثلاً Intensity

op('geo1').par.tx = op('../controller').par.Intensity

📌 این روش قلب طراحی سیستم‌های حرفه‌ایه


1️⃣1️⃣ آدرسینگ Event-based (Callbacks)

مثلاً Button COMP:

def onValueChange(channel, sampleIndex, val, prev):
op('geo1').par.tx = val * 5
return

📌 وقتی نمی‌خوای Live لینک باشه، بلکه Event-driven باشه


1️⃣2️⃣ آدرسینگ با Store / Fetch

برای دیتاهای Global یا موقت:

op('base1').store('speed', 2.5)

و بعد:

speed = op('base1').fetch('speed', 1)
op('geo1').par.tz = speed

جمع‌بندی ذهنی (خیلی مهم)

روش Live کنترل‌پذیری مصرف CPU
Python مستقیم ⭐⭐⭐ کم
Expression ⭐⭐ متوسط
CHOP Export ⭐⭐⭐⭐ کم
Reference ⭐⭐⭐⭐ خیلی کم
Event ⭐⭐⭐⭐⭐ کم