این میانجی دستوری است که میتواند در ارائهدهنده میزبانی رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیهساز آنلاین ویندوز یا شبیهساز آنلاین MAC OS اجرا شود.
برنامه:
نام
midge - فایل midi را از توضیحات متنی موسیقی تولید کنید
خلاصه
میانه [گزینه ها] [نام فایل]
شرح
میانه یک فایل midi نوع 1 را از توضیحات متنی موسیقی تولید می کند. میانه آن را می گیرد
ورودی از stdin مگر اینکه نام فایل مشخص شده است.
OPTIONS
-h or --کمک
نمایش متن راهنما
- نسخه or --ضمانتنامه یا --در باره
نمایش اطلاعات نسخه و مجوز
-v or -- پرحرف
خروجی مفصل را در stdout چاپ کنید.
-d or - رفع اشکال
خروجی اشکال زدایی را روی stdout چاپ کنید (حالت پرحرفی را به طور خودکار تنظیم می کند).
-q or --ساکت
ساکت. بدون استدآوت
-o پرونده or -- outfile پرونده
خروجی Midi به پرونده. در غیر این صورت به a.out.mid
-c or --بررسی
فقط ورودی را بررسی کنید. بدون خروجی midi
-u or - حلقهها را باز میکند
قبل از تجزیه همه بلوکهای تکراری را باز کنید و کد منبع بازشده را در a ذخیره کنید
فایل جدید (*.long.mg). در صورت نیاز باید به صورت خودکار تنظیم شود.
-U or --no-unroll-save
منبع unrolled را در فایل ذخیره نکنید.
-R or --بدون تنظیم مجدد
رویداد «تنظیم مجدد همه کنترلها» را در شروع آهنگها وارد نکنید.
-t BPM or -- سرعت BPM
تنظیم سرعت به BPM ضربان در دقیقه، مقدار اصلی تنظیم شده در فایل ورودی.
-b مراحل or -- پله های خم شدن مراحل
تعداد گامها در هر نت چهارم را برای نحو خم ساده تنظیم کنید.
--ناامن
برای اجرای کد Perl از Safe.pm استفاده نکنید % eval بلوک
-s عدد or -- دانه عدد
استفاده کنید عدد به عنوان بذر برای مولد اعداد تصادفی.
-S [مقیاس [ریشه]] or - مقیاس نمایش [مقیاس [ریشه]]
فهرست یادداشت ها در مقیاس شروع از ریشه. اگر ریشه حذف شده است از c4 استفاده شده است. اگر مقیاس is
حذف شده، فهرستی از مقیاس های پشتیبانی نشان داده شده است.
-I مسیر or --عبارتند از مسیر
اضافه کردن مسیر شامل مسیرها می توان چندین بار مشخص کرد یا مسیر می تواند یک لیست باشد
با دو نقطه یا کاما از هم جدا می شوند.
INPUT زبان
نمونه فایل منبع برای پخش مقیاس E.
================شروع فایل=======================
# این خط یک نظر است
@سر { # باید دقیقاً 1 بخش @head وجود داشته باشد
# امضای زمان را تنظیم کنید
$time_sig 4/4
# سرعت را در BPM تنظیم کنید
سرعت $ 120
} # انتهای بخش @head
@body { # باید دقیقاً 1 بخش @body وجود داشته باشد
# یک آهنگ موسیقی را در کانال 1 شروع کنید
# چندین آهنگ می توانند از یک کانال استفاده کنند
channel 1 {
# پچ را روی بیس الکتریکی تنظیم کنید
$patch 34
# یادداشت. برای توضیح به زیر مراجعه کنید
/l4/e3 # نت چهارم e در اکتاو سوم
f+ # f تیز اکتاو همان طول
# استفاده از `-برای تخت
g+ ab # بقیه یادداشت ها
c+4 d+ e # اکتاو در c تغییر می کند
} # پایان مسیر
} # انتهای بخش @body
======================== پایان فایل=====================
نمونههای بیشتری در فهرست نمونهها/ آرشیو گنجانده شده است.
در ادامه مطلب یک پارامتر ضروری است و [name] یک پارامتر اختیاری است.
یادداشت.
فرمت یادداشت به این صورت است: [/گزینه ها/]<نام>[+|-][نت های هشتگانه موسیقی]
La /گزینه ها/ بخش می تواند شامل موارد زیر باشد:
l[صورت کسر:]
طول یادداشت را روی (صورت کسر یا یک) تقسیم بر مخرج. یعنی l4 = یک چهارم
نت، l1 = نت کامل، l3:4 = نت 3/4 (3 نت ربع گره خورده است). یک حروف بزرگ `L' شاید
در عوض برای تشخیص آن از "1" استفاده می شود.
r
تعداد دفعات تکرار یادداشت را تنظیم می کند. مثلا
/l8r16 /
طول نت را 1/8 می کند و نت را 16 بار تکرار می کند.
a
نت نت را روی سرعت تنظیم می کند (حمله)
d
سرعت نت نت را خاموش می کند (واپاشی)
z[+|-] [%]
یادداشت را با عدد کلیک های میدی مقادیر مثبت نت را دیر و منفی می نوازند
ارزش ها آن را زود بازی می کنند. اگر عدد به دنبال یک «%´ کاراکتر به صورت درصد در نظر گرفته می شود
از طول نت فعلی مقادیر افست هستند نه توسط یادداشت های بعدی به ارث رسیده است.
Z[+|-] [%]
همانطور که در بالا `zگزینه ´ اما یک مقدار تصادفی استفاده می شود. اگر عدد منفی یا مثبت است
(علامت جمع ضروری)، مقداری بین صفر و عدد استفاده می شود. اگر علامتی وجود نداشته باشد، الف
مقدار بین مثبت و منفی عدد استفاده می شود.
گزینه offset با آن کار نخواهد کرد rگزینه epeat note، اما همین اثر می تواند باشد
به دست آمده با استفاده از a ٪تکرار مسدود کردن.
نتها را نمیتوان به عقب برگرداند (یعنی زود پخش شود) مگر اینکه قبل از آنها استراحت داده شود. به
کار در مورد این من اضافه شده است $کوتاه کنید کلمه کلیدی، در زیر توضیح داده شده است. همچنین ببینید $ unquantise.
نام نام نت است. [اگ] ضروری.
+ تیز.
- تخت.
نت های هشتگانه موسیقی اکتاو میدی یعنی. [1-11]. اگرچه اکثر نرم افزارهای midi از 0 برای کمترین استفاده می کنند
اکتاو، من از 1 برای سازگاری با کانال های MIDI و نام ابزار استفاده کرده ام که
هر دو از 1 به حساب می آیند.
اگر مشخص نشده باشد، طول، اکتاو، حمله و فروپاشی از قبلی به ارث می رسد
توجه داشته باشید.
در آهنگ درام به جای نام نت ها می توان از نام مستعار استفاده کرد. به عنوان مثال، برای گرفتن یک
به جای «کلاه سلام» را باز کنیدf+3'می توانید استفاده کنید'hh_o'. برای مشاهده لیست کامل README.drums
نام مستعار
استراحت می کند.
بقیه به صورت یادداشت نوشته می شوندr'، با /گزینه ها/ همانطور که برای یادداشت ها، اما تنها با
گزینه های طول و تکرار استفاده می شود. مقدار طول از note به rest و vice به ارث می رسد
برعکس
میله ها
نماد لوله (`|) می تواند برای نشان دادن میله ها استفاده شود. طول میله ها بررسی نمی شود -
این فقط برای اجازه دادن به فایل های منبع خواناتر است. میله ها را می توان با ضمیمه a شماره گذاری کرد
عدد به نماد لوله آنها ممکن است با خط زیر از هم جدا شوند اما نه با فاصله.
مثال نوار ساده: | cdef | gabc
نمونه های نوار شماره گذاری شده: |1 cdef |2 gabc
|_1 cdef |_2 gabc
قوام میله ها را می توان با استفاده از $bar_strict کلمه کلیدی در @سر
بخش. این یک خطا یا اخطار می دهد مگر اینکه همه آهنگ ها دارای تعداد نوار و یکسان باشند
نوارهای شماره گذاری شده به طور همزمان در هر آهنگ ظاهر می شوند:
$bar_strict هشدار دادن # یک پیام هشدار برای نوارهای ناسازگار چاپ کنید.
$bar_strict خطا # با یک پیام خطا برای نوارهای ناسازگار خارج شوید.
کلمات کلیدی سطح بالا
@سر { محتوا }
باید دقیقا یکی باشه @سر بخش. برای توضیحات زیر را ببینید محتوا.
@body { محتوا }
باید دقیقا یکی باشه @body بخش. برای توضیحات زیر را ببینید محتوا.
کلمات کلیدی در @سر بخش.
$time_sig
La b مقدار باید یکی از 4، 8، 16، 32، 64 باشد.
سرعت $
t سرعت در BPM است.
هر دو $time_sig و سرعت $ همچنین در بلوک کانال @ مجاز هستند (در زیر توضیح داده شده است).
$title
عنوان آهنگ را روی عنوان. اگر عنوان حاوی فضاهایی است که باید داخل دوتایی باشد
نقل قول ها
وضوح $
تعداد کلیکهای میانی در هر نت سهماهه را روی آن تنظیم میکند n. پیش فرض 96 است.
کلمات کلیدی در @body بخش.
٪تعريف كردن { یادداشت }
دنباله ای از را تعریف کنید یادداشت ها، اختصاص آن به نام برای یادآوری در یک آهنگ موسیقی تعریف شده است
توالی ها با استفاده از موارد زیر استفاده می شوند:
~[/transpose/]
در یک آهنگ برای گنجاندن دنباله نام، منتقل شده توسط انتقال نیم صداها قبلا
توالی های تعریف شده را می توان در موارد بعدی استفاده کرد ٪تعريف كردن بلوک ها برای مثال:
٪تعريف كردن a_riff { a3 a c4 d }
٪تعريف كردن d_riff { d4 dfg }
٪تعريف كردن main_riff { ~a_riff ~d_riff }
اگرچه ما میتوانیم با جابجایی اولین ریف برای ساختن به همان نتیجه برسیم
دومین:
٪تعريف كردن a_riff { a3 a c4 d }
٪تعريف كردن main_riff { ~a_riff ~a_riff/ 5 / }
تعريف كردن بلوکها همچنین ممکن است شامل بلوکهای تکراری، بلوکهای خم و $volume/patch/reverb و غیره باشند.
channel [نام] { محتوا }
شروع یک آهنگ midi در کانال عدد، نام ابزار را به صورت اختیاری تنظیم کنید نام. اگر
نام حاوی فضاهایی است که باید داخل گیومه های دوتایی باشد.
محتوا می تواند شامل یادداشت ها، استراحت ها، توالی های تعریف شده قبلی و موارد زیر باشد
کلید واژه ها:
$time_sig
امضای زمان آهنگ را تغییر میدهد (بر همه آهنگها تأثیر میگذارد). در b ارزش باید یکی از
4، 8، 16، 32، 64.
سرعت $
سرعت آهنگ را تغییر می دهد (بر همه آهنگ ها تأثیر می گذارد). t در BPM است.
$patch [[bank_LSB،]bank_MSB،]
شماره پچ را برای این کانال تنظیم کنید عدد or نام. جایی که عدد از 1 تا 128 است و
نام یک نام مستعار است که در README.patches تعریف شده است. به صورت اختیاری شماره بانک را انتخاب کنید bank_MSB.
به صورت اختیاری شماره بانک LSB را انتخاب کنید bank_LSB (برای کیبوردهای MIDI خارجی استفاده می شود). هر مقدار
باید در محدوده 1-128 باشد.
$bank [LSB،]
شماره بانک را انتخاب کنید موسسات خدمات مالی. تنظیم اختیاری مقدار LSB (برای midi خارجی استفاده می شود
صفحه کلید) به LSB. هر دو مقدار باید در محدوده 1-128 باشند.
طول $ [n:]
تنظیم طول یادداشت پیش فرض مقدار با همان قالبی که در گزینه های یادداشت مشخص شده است، مشخص می شود.
$کوتاه کنید
هر یادداشت را کوتاه کنید عدد کلیکهای MIDI، برای ایجاد فضایی برای جابجایی یادداشتها به عقب.
$ unquantise [+|-] [%]
برای هر نت یک افست تصادفی اعمال کنید. عدد همان معنی را دارد که برای Z گزینه یادداشت
در بالا.
اکتاو دلار
اکتاو پیش فرض را روی عدد
حجم $
میزان صدای آهنگ را روی عدد
حمله $
حمله یادداشت را روی عدد
پوسیدگی دلار
واپاشی یادداشت را روی عدد
$ Reverb
عمق ریورب را روی عدد در کانال فعلی
کر $
عمق کر را روی عدد در کانال فعلی
$ pan
مقدار pan را روی عدد. 0 سمت چپ است 127 سمت راست است.
مقادیر حجم، حمله، واپاشی، ریورب، کر و پان باید اعداد صحیح از 0 تا 127 باشد.
آنها همچنین می توانند به عنوان یک محدوده مشخص شوند (به عنوان مثال `8-64')، در این صورت یک مقدار تصادفی در داخل
محدوده استفاده می شود.
%pan_all { ارزش یادداشت ... }
مقدار پان را برای هر نمونه بعدی تنظیم می کند توجه داشته باشید در مسیر فعلی این هست
عمدتاً برای حرکت درام کیت در نظر گرفته شده است، اما می تواند در مسیر دیگری استفاده شود. ارزش می تواند
یک عدد صحیح یا یک محدوده (به عنوان مثال `8-64'). چندگانه توجه داشته باشید ارزش جفت مجاز است اگر دو یادداشت
با مقادیر مختلف pan_all به طور همزمان هر اتفاقی ممکن است رخ دهد پخش می شود.
برای تأثیرگذاری روی هر یادداشت در کانال با محدوده، از « استفاده کنید*"یا"هر' برای توجه داشته باشید.
/r4/روش تکرار یادداشت ها با این گزینه کار نمی کند، اما همان اثر
می توان با استفاده از یک بلوک تکرار به دست آورد.
نشانگر $
یک رویداد نشانگر را اضافه می کند متن همانطور که محتوای آن است. اگر متن حاوی فاصله هایی است که باید نقل قول شود
با استفاده از کاراکترهای دو نقل قول
٪تکرار { یادداشت }
تکرار یادداشت ها عدد بار. یادداشت ها می تواند شامل یادداشت ها، استراحت ها، توالی های از پیش تعریف شده و موارد دیگر باشد
٪تکرار بلوک
% خم شدن { رویداد ... }
بازی توجه داشته باشید و چرخ زمین را به روشی که توسط چندگانه توصیف شده است حرکت دهید واقعهs، که دارند
فرمت زیر:
[n:] <+|->
جایی که n و d زمان از شروع یادداشت یا از رویداد قبلی را مشخص کنید
همان فرمت طول نت، و ارزش مقداری است که باید نت را توسط (معلوم
یا علامت منفی لازم است). با محدوده پیشفرض چرخش گام +/- 2 نیمتون یک مقدار
از 32 برابر است با یک نیم صدا. توجه داشته باشید که میزان خمش نسبی است. حداکثر
انباشته مقدار خمش مثبت یا منفی 64 است.
به عنوان مثال موارد زیر:
%bend a3 { 4+32 4-32 2+0 }
نت a3 را برای نت 1/4 پخش می کند، یک لحن کامل را به مدت 1/4 خم می کند و سپس به a3 برمی گردد و
برای نت 1/2 نگه می دارد.
$bend_range
محدوده چرخش را به +/- تغییر می دهد عدد. این حداکثر خمش را به بالا و پایین تنظیم می کند، بنابراین اگر
روی 4 تنظیم شده است، مقدار خمش 64، 4 نیمتون را به سمت بالا و 64- به 4 خم میشود.
نیم صداها محدوده پیشفرض برای اکثر دستگاههای MIDI 2 نیمتنی است.
$pitch
مقدار چرخ گام را روی وال. این را می توان همراه با یادداشت جداگانه استفاده کرد
و رویدادها را یادداشت کنید (به زیر "یادداشت های همزمان" مراجعه کنید) تا خمش پیچیده ایجاد کنید
اثرات بر خلاف % خم شدن نحو بالا، این کار را انجام می دهد نه چرخ زمین را به حالت خنثی بازنشانی کنید
موقعیت (64)
با این نحو می توان پیچ های ساده تری ایجاد کرد:
/l8/e4=>g4=>e4
این از e4 به g4 خم می شود و به صورت گام های خطی در طول مدت یک به e4 برمی گردد
نت هشتم بهطور پیشفرض 16 گام در طول مدت نت سه ماهه وجود دارد (8 مرحله در این
به عنوان مثال)، اما یک مقدار متفاوت را می توان با استفاده از سوئیچ خط فرمان '-b' تنظیم کرد. هر عددی
از نت ها می توان استفاده کرد، اما اولی باید مقدار طول داشته باشد و هر کدام باید
دارای مقدار اکتاو هستند.
٪انتخاب کنید [زمان] { وزن کردن آیتم ... }
که در آن زمان یک مقدار طول در قالب [n:] است. همان چیزی که در گزینه های طول استفاده می شود،
با «ل» حذف شده است.
If زمان مشخص نشده است:
یکی را انتخاب کن آیتم از یک لیست، جایی که هر کدام آیتم می تواند یک یادداشت، استراحت یا ریف از پیش تعریف شده باشد و
هر مورد یک وزن که مشخص می کند چقدر احتمال دارد انتخاب شود. مثلا:
%choose { 2 a3 4 c5 3 e4 1 g3 }
به a3 20% شانس، c5 - 40% می دهد. e4 - 30٪ و g3 - 10٪ هر مورد باید وزن گیری داشته باشد
مقیاس های زیر را نیز ببینید.
if زمان مشخص شده است:
چندتایی را انتخاب کنید آیتمs از لیست تا طول زمان. اگر همه آیتمs خیلی طولانی است
برای پایان دادن به ریف دقیقا در زمان، باقیمانده با استراحت پر می شود. هنگامی که انتخاب استفاده می شود
به این ترتیب هر نت یا استراحت باید یک مقدار طول داشته باشد و هر ریف از پیش تعریف شده استفاده شده باید
دارای طول ثابت (یعنی نت اول باید مقدار طول داشته باشد)، و طول آن
کل ریف باید در بلوک انتخاب با همان قالبی که برای یادداشت ها مشخص شده است، مشخص شود. برای
مثال:
%define riff_1 { /l2/a3 /l4/b c4 } # ریف 1 بار طول دارد
٪انتخاب کنید 4:1 {# 4 نوار را انتخاب کنید
1 /l8/d4 3 /l8/e4 2 /l4/g4 1 /l1/~riff_1
}
If زمان is 0 or - سپس midge به دنبال بلوکی از فرم می گردد:
ریتم { n[:d] ... }
که به عنوان یک سری از مقادیر طول نت در نظر گرفته می شود که برای آنها گام ها از بین انتخاب می شوند
فهرست توکن های دیگر از طریق آن ها عبور داده می شوند، بنابراین می توانید یادداشت های خاص، ریف های از پیش تعریف شده را وارد کنید
یا استراحت می کند هر نشانه ای در بلوک که با زیرخط شروع می شود، با عبور داده می شود
خط زیر حذف شد برای مثال به examples/tutorial/choose_scale.mg مراجعه کنید.
راه دیگر برای تعیین لیست یادداشت ها/وزن بندی ها با مقیاس کلمه کلیدی:
مقیاس جزئی /l8/g4-6 [وزن ...]
این یک مقیاس G Minor را از اکتاو 4 تا 6 انتخاب می کند (یعنی g4 تا g6). مقدار طول
اگر از بلوک ریتم استفاده می کنید، ضروری نیست. اگر -6 یک اکتاو منفرد حذف شده است
استفاده شده.
بلوک وزن وزن نت ها را به ترتیب مشخص می کند. در صورت حذف همه وزنه ها هستند
برابر. برای ingore یک یادداشت از وزن 0 استفاده کنید، اما وجود دارد باید برای هر نت وزنی باشد
اگر بلوک اصلا وجود داشته باشد.
La -S سوئیچ می تواند برای نشان دادن یادداشت ها در یک مقیاس یا لیستی از مقیاس های پشتیبانی شده استفاده شود.
٪زنجیر {
شروع کنید
note1 [ وزن وزن ... ]
...
ریتم [ طول وزن ... ] or ریتم { طول ... } }
یک ساختار زنجیره ای تعریف کنید که در آن برای هر نت یک لیست وزنی از نت ها وجود دارد که ممکن است
آن را دنبال کنید یک نقطه شروع به طور تصادفی از بین تمام یادداشت های استفاده شده انتخاب می شود یا با آن مشخص می شود
la شروع کلمه کلیدی و سپس یادداشت های بعدی از لیست مناسب تا a انتخاب می شوند
طول کل زمان.
La ریتم کلمه کلیدی دو شکل دارد: با استفاده از کروشه های مربع «[]»، یک لیست وزنی از یادداشت ها
طول ها را می توان تعریف کرد که به صورت تصادفی انتخاب می شوند. با استفاده از پرانتز «{}»، فهرستی از
مقادیر طول را می توان تعریف کرد که به ترتیب استفاده می شود (تکرار در صورت لزوم). به
فقط یک بار از طریق بلوک ریتم بازی کنید، تنظیم کنید زمان به 0 or -. در این مورد ریتم
بلوک به همان روشی که در بالا توضیح داده شد تجزیه می شود ٪انتخاب کنید با زمان تنظیم شده روی صفر در
کلمه کلیدی بار می تواند به عنوان مترادف برای استفاده شود ریتم.
La شروع کلمه کلیدی یادداشتی را مشخص می کند که هنگام استفاده از زنجیره از آن شروع شود. اگر شروع is
حذف، یادداشت شروع به طور تصادفی انتخاب می شود.
راه دیگر تعریف یادداشت ها در a زنجیر بلوک استفاده از یکی از مقیاس های ساخته شده است. سپس
وزنها به شکل ماتریس مشخص میشوند، با یک ردیف برای هر نت «از» (یک
برای هر نت مقیاس) و یک ستون برای هر نت «به». نمونه ای از این فرم می تواند
در فایل examples/tutorial/chain_scale.mg یافت می شود
برای استفاده از بلوکهای انتخاب یا زنجیره، فایل باید با گزینه unroll-loops کامپایل شود
(هنگامی که یک بلوک انتخاب یا زنجیره پیدا می شود به طور خودکار تنظیم می شود). این گزینه ذخیره می کند
کد منبع را در یک فایل جدید باز کرده است، بنابراین اگر خروجی خوبی تولید کند، یک فایل جدید خواهید داشت
کپی دقیقی که می توانید بدون از دست دادن مسیر تولید شده، تغییرات دیگری در آن ایجاد کنید.
توجه داشته باشید که بلوکهای انتخاب و زنجیره نمیتوانند در داخل یک %define یا داخل یک انتخاب یا دیگری قرار بگیرند
بلوک زنجیره ای
% eval { کد پرل }
بلوکی از کد Perl را اجرا کنید و بلوک %eval را با مقداری که از Perl برگردانده شده است جایگزین کنید
کد
% eval - { کد پرل }
یک بلوک از کد پرل را بدون خواندن مقدار بازگشتی اجرا کنید.
کد پرل در صورت وجود با استفاده از ماژول Safe با :base_core، :base_math و
:base_mem مجاز است. اگر Safe.pm در دسترس نیست یا مجوزهای بیشتری مورد نیاز است --unsafe
گزینه باعث می شود که midge بلوک های %eval را در فرآیند perl خودش اجرا کند.
کلمات کلیدی در هر نقطه از منبع مجاز هستند.
٪عبارتند از
شامل مطالب پرونده انگار در آن نقطه از منبع نوشته شده باشند
فایل. باید در یک خط از خود در فایل منبع باشد.
یادداشت های همزمان
منعطف ترین راه برای پخش همزمان نت ها استفاده از آهنگ های جداگانه است (می توانید استفاده کنید
همان کانال/پچ)، یا با استفاده از رویدادهای یادداشت روشن و یادداشت خاموش جداگانه (به زیر مراجعه کنید).
با این حال، یک راه ساده تر با برخی محدودیت ها وجود دارد. مثلا: ( c e g ) بازی خواهیم کرد
نت های c، e و g به طور همزمان، یک آکورد C ایجاد می کنند. طول همه به طور همزمان
نتها همان نتهای اول هستند (که با مقدار طول خود یا یک تعیین میشوند
از اعلان یادداشت قبلی، استراحت یا طول $ به ارث رسیده است.
یکی از راه های استفاده از آن برای ساخت آکورد به شرح زیر است:
٪تعريف كردن خردسال { ( c e- g ) } # مینور را به سی مینور تعریف کنید
٪تعريف كردن عمده { ( c e g ) } # ماژور را به سی ماژور تعریف کنید
٪تعريف كردن 7th { ( c e g b- ) } # 7th را c-7th تعریف کنید
سپس می توانید در آهنگ های موسیقی خود از موارد زیر استفاده کنید:
$length 4 $octave 4 # طول و اکتاو پیشفرض را تنظیم کنید
~ سرگرد # سی ماژور بازی کنید
~کوچک/9/ # a-minor بازی کنید
~هفتم/7/ # f-7th را بازی کنید
برای اینکه آکوردها به صدا درآیند، از استروم می توان از کلمه کلیدی استفاده کرد:
$Strum 5
با این کار فاصله بین هر نت در آکوردهای بعدی 5 کلیک میدی تنظیم می شود.
برای ایجاد الگوهای پیچیده نتهای همزمان در یک مسیر، نتها و نتها را از هم جدا کنید
می توان از رویدادهای خاموش استفاده کرد. اینها مانند نت های معمولی مشخص می شوند، اما با a +
برای یادداشت در و الف - برای یادداشت آماده شده است. گزینه های طول و تکرار نمی توانند
مورد استفاده قرار گیرد. طول نت های وارد شده به این روش با قرار دادن استراحت یا موارد دیگر کنترل می شود
یادداشت بین رویدادهای یادداشت روشن و یادداشت خاموش. به عنوان مثال:
+c4 /l4/r +er +g /l2/r -c -e -g
c4 را پخش می کند و نگه می دارد، بعد از نت 1/4 پخش می شود و e4 را نگه می دارد و بعد از نت 1/4 دیگر پخش می شود
و g4 را نگه می دارد و هر سه را بعد از یک نت 1/2 دیگر آزاد می کند.
دوقلوها
در حالی که می توان با انتخاب طول نت مناسب، تاپل ها ایجاد کرد، اما می توانند
به روشی مرسوم تر با استفاده از ٪ تاپلت کلمه کلیدی:
٪ تاپلت n:d { یادداشتها... }
نقش n یادداشت ها در فضای d. یادداشت ها می تواند حاوی هر چیزی باشد که در یک بلوک @channel مجاز است.
سپس مقادیر یادداشت به طور خودکار تغییر می کنند تا توپلت ایجاد شود. مثلا:
%tuplet 5:3 { /l8/e4 fgfe }
پنج نت هشتم را در فاصله سه می نوازد. دوقلوها را می توان در هر عمقی لانه کرد. دیدن
examples/tutorial/tuplet.mg برای مثال. میج انجام می دهد نه بررسی کنید که طول موسیقی
داخل بلوک توپلت درست است.
کلیدها
اگر می خواهید فایل midi خود را به یک ویرایشگر نشانه گذاری وارد کنید، باید کلید را تنظیم کنید.
این کار با:
کلید $ [+|-][m]
جایی که نام ag، +|- تیز و مسطح هستند و m جزئی است. اگر کل قطعه داخل بماند
همان کلیدی که می توانید آن را در قسمت @head تنظیم کنید، در غیر این صورت می تواند در هر جایی از a ظاهر شود
بخش @channel، و همه آهنگها را تحت تأثیر قرار میدهد.
اگر به نتنویسی منظم موسیقی عادت دارید و میخواهید نتها بهطور خودکار تیز یا صاف باشند
بسته به کلید، از $key_strict در عوض کلمه کلیدی برای دریافت نت طبیعی از =
علامت، به عنوان مثال در G، f= یک f طبیعی را بازی می کند. در $key_strict کلمه کلیدی فقط در
بخش @head. کلید را هنوز می توان با استفاده از معمولی تغییر داد کلید $ کلمه کلیدی.
$ctrl
تنظیم شماره کنترلر تعداد به وال.
$rpn [num-msb،] [,val-lsb]
کنترلر rpn را تنظیم کنید تعداد به وال
$nrpn [num-msb،] [,val-lsb]
کنترلر nrpn را تنظیم کنید تعداد به وال
% کلمه به کلمه { بایتی... }
یک رشته از بایت ها را در فایل midi قرار دهید. هر یک بایتوال می تواند به صورت اعشاری باشد (0-255)
یا هگز (0x00-0xFF). کلمه کلیدی بایت می تواند به جای استفاده شود تحت اللفظی.
چاپ $
چاپ متن به stdout. اگر متن حاوی فاصله هایی است که باید با استفاده از دو گیومه نقل قول شود (").
از midge آنلاین با استفاده از خدمات onworks.net استفاده کنید