timidity.cfg(5) File Formats Manual timidity.cfg(5)

timidity.cfg - فایل پیکربندی TiMidity++

فایل timidity.cfg محیط‌های زمان اجرای timidity(1) را توصیف می‌کند: مانند مسیر فونت‌های صوتی (soundfont)، پیکربندی سازها و غیره.
برنامه TiMidity++ در هنگام راه‌اندازی و پیش از پردازش هرگونه گزینه‌ای به دنبال فایل پیکربندی timidity.cfg می‌گردد. اگر این فایل قابل دسترسی نباشد و مسیر کتابخانه با گزینه -L در خط فرمان تغییر کند، پس از پردازش تمام گزینه‌ها، فایل پیش‌فرض مجدداً در مسیر کتابخانه جدید جستجو خواهد شد، مگر آنکه فایل پیکربندی دیگری با گزینه -c مشخص شده باشد.
فایل‌های پیکربندی، نگاشت برنامه‌های MIDI به فایل‌های سازها را تعریف می‌کنند. می‌توان چندین فایل را مشخص کرد که دستورات موجود در فایل‌های بعدی، مقادیر فایل‌های پیشین را بازنویسی خواهند کرد.

هنگامی که نویسه‌های الفبایی-عددی یا زیرخط `_' پس از علامت دلار `$' بیایند، آن رشته به عنوان متغیر در نظر گرفته شده و در حین پردازش فایل پیکربندی به رشته دیگری تبدیل می‌شود. نام متغیر می‌تواند درون پرانتز یا آک getUserلاد نیز قرار گیرد تا از نویسه بعدی تفکیک شود.

برای مثال:
$variable
${variable} # همان $variable است

در حال حاضر دستوری برای تعریف متغیر جدید تعبیه نشده است. متغیر تعریف‌نشده به رشته تهی تبدیل می‌شود.
تنها متغیری که به عنوان یک متغیر استاندارد تعریف شده مورد زیر است:

$basedir
دایرکتوری محل قرارگیری فایل پیکربندی را نشان می‌دهد. عمدتاً توسط دستوراتی که مسیر مشخص می‌کنند جهت تعیین مسیر نسبی از فایل تنظیمات به کار می‌رود.
هنگامی که ممکن است فاصله‌ای در $basedir وجود داشته باشد، لازم است آن را درون "" قرار دهید.

برای مثال:
در /usr/local/share/timidity/timidity.cfg
dir $basedir/inst # مبدا /usr/local/share/timidity/inst

عبارات زیر می‌توانند در فایل پیکربندی استفاده شوند:

دایرکتوری directory را همانند گزینه -L در خط فرمان به مسیر جستجو اضافه می‌کند.
فایل‌های آرشیو نیز مجاز هستند.

برای مثال:
dir /usr/local/share/timidity/inst/foo.zip#
bank 0
0 bar.pat
1 baz.pat
2 zoo.pat

در ابتدا dir نام فایل آرشیو را (همراه با `#` در انتهای آن) برای مسیر فایل‌های پچ همانند نام دایرکتوری مشخص می‌کند (در این مثال /usr/local/share/timidity/inst/foo.zip). برنامه TiMidity++ در صورتی که نویسه پایانی عبارت `#` باشد تشخیص می‌دهد که مسیر یک فایل آرشیو است و فایل‌های موجود در آن آرشیو را نیز می‌خواند. در مثال قبلی فایل‌های پچ bar.pat، baz.pat و zoo.pat موجود در foo.zip نیز لود می‌شوند.

یک فایل پیکربندی دیگر را خوانده و سپس به پردازش فایل جاری ادامه می‌دهد.
شماره ساز/صدا را از number تا number+128 تنظیم و نمایش می‌دهد. اگر progbase 1 مشخص شود، شماره‌های بعدی به عنوان اعداد بین 1 تا 128 تنظیم و نمایش داده می‌شوند.
بانک صدایی را که باید تغییر کند انتخاب می‌کند. نگاشت‌های پچ پس از آن بر این بانک صوتی اعمال خواهند شد. شما می‌توانید یک نگاشت خاص را با تعیین هر یک از موارد زیر به عنوان MapID1 هدف قرار دهید: gm2، sc55، sc88، sc88pro، sc8850، xg و xgsfx64.
مجموعه سازهای کوبه‌ای (درام‌ست) مورد نظر را برای تغییر انتخاب می‌کند. نگاشت‌های پچ پس از آن بر این درام‌ست اثر خواهند گذاشت. می‌توانید با تعیین هر یک از موارد زیر به عنوان MapID2 نقشه خاصی را مشخص کنید: gm2drum، sc55drum، sc88drum، sc88prodrum، sc8850drum، xgdrum و xgsfx126.


مشخص می‌کند که شماره برنامه MIDI در بانک صدا یا درام‌ست جاری باید با استفاده از فایل پچ نواخته شود. اگر file یک SoundFont باشد، ساز مشخص با bank، prog و key در قالب number %font استخراج می‌شود. اگر file داده‌های صوتی خطی AIFF یا WAV باشد، شماره برنامه MIDI با قالب number %sample تعیین می‌شود. گزینه‌ها می‌توانند هر یک از موارد زیر باشند:
میزان بلندی صدای ساز را به اندازه amplification درصد تقویت می‌کند. در صورت عدم تعیین مقدار، هنگام بارگیری ساز به طور خودکار تعیین خواهد شد.
نت ثابت MIDI مورد استفاده هنگام نواختن ساز را مشخص می‌کند. اگر note برابر با 0 باشد، ساز با هر نتی که رویداد Note On تحریک‌کننده آن داشته باشد نواخته خواهد شد. برای سازهای کوبه‌ای، در صورت عدم تعیین مقدار در فایل پیکربندی، مقدار پیش‌فرض فایل پچ استفاده می‌شود.
تنظیم جهت‌گیری و تعادل باند چپ/راست (panning) پیش‌فرض ساز. مقدار panning می‌تواند left، right، center، یا عددی صحیح بین -100 تا 100 باشد که به ترتیب نمایانگر منتهی‌الیه چپ و منتهی‌الیه راست است. در صورت عدم تعیین مقدار، پیش‌فرض فایل پچ اعمال می‌شود. توجه داشته باشید کنترل‌های panning درون فایل‌های MIDI این مقدار را بازنویسی می‌کنند.
فرکانس پایه ساز را تنظیم می‌کند. مقدار tune=1 فرکانس را به اندازه 1 نیم‌پرده بالاتر می‌برد. از آنجا که مقادیر کسری و اعشاری برای tuning مجاز است، کوک دقیق مانند tune=-0.2 نیز امکان‌پذیر است. هنگامی که دو یا چند نمونه صوتی وجود دارد، آرگومان‌های بعدی می‌توانند مقادیر متفاوتی را جداگانه تعیین کنند.
نرخ ADSR ساز را تنظیم می‌کند. هر مقدار می‌تواند عددی صحیح بین 0 تا 255 باشد. زمانی که تنها نرخ پایداری (sustain) را تنظیم می‌کنید:

6 GUS/hrpschrd.pat rate=::60

قابل استفاده است. هنگامی که فقط می‌خواهید زمان حمله (attack) سریع‌تر شود:

6 GUS/hrpschrd.pat rate=255

قابل استفاده خواهد بود. هنگامی که شامل دو یا چند نمونه صوتی باشد، آرگومان‌های پس از آرگومان دوم می‌توانند مقادیر متفاوتی را مشخص کنند.

آفست ADSR ساز را تنظیم می‌کند. هر مقدار می‌تواند عددی صحیح بین 0 تا 255 باشد. قالب آن همانند rate= است.
به طور پیش‌فرض اطلاعات حلقه (loop) و پوش (envelope) از سازهای کوبه‌ای حذف می‌شود. پوش‌های با شکل نامتعارف نیز به طور خودکار از سازهای ملودیک حذف می‌شوند. گزینه keep= برای جلوگیری از حذف داده‌های حلقه یا پوش به کار می‌رود. برای نمونه سازهای کوبه‌ای سوت کوتاه و بلند (شماره‌های ۷۱ و ۷۲ استاندارد General Midi) نیاز دارند تا عبارت `keep=loop keep=env' در فایل پیکربندی آن‌ها قید شود.
حذف اجباری اطلاعات حلقه یا پوش از تمامی پچ‌های ساز، یا حذف دنباله (tail)، یعنی تمام داده‌های پس از حلقه تکرار. برخی سازهای متفرقه داده‌های زائدی پس از لوپ دارند که با صدای تق‌تق در هنگام نواختن مشخص می‌شود، بنابراین افزودن گزینه strip=tail کیفیت صدا را به شکل چشمگیری بهبود می‌بخشد.
ترمولو (tremolo) ساز را تنظیم می‌کند. هر مقدار می‌تواند عددی صحیح بین 0 تا 255 باشد. قالب آن مشابه rate= است. پارامتر sweep_increment زمان تا شروع ترمولو است، control_ratio نرخ تغییر تقویت و depth عمق تغییرات دامنه صدا است.
ویبراتو (vibrato) ساز را تنظیم می‌کند. هر مقدار می‌تواند عددی صحیح بین 0 تا 255 باشد. قالب آن مشابه rate= است. پارامتر sweep_increment زمان تا شروع ویبراتو، phase_increment نرخ تغییر فرکانس و depth عمق تغییرات فرکانس است.
نت استاندارد ساز را برای کوک گام (scale tuning) مشخص می‌کند. برای مثال sclnote=60 نت میانی C را به عنوان نت مبنا برای کوک مقیاس قرار می‌دهد. در صورت وجود دو یا چند نمونه داده، آرگومان‌ها از مورد دوم به بعد مقادیر مجزا دریافت می‌کنند.
ضریب کوک گام ساز را بر حسب سنت (cent) تنظیم می‌کند. برای مثال scltune=50 گام‌های نیم‌پرده را معادل 50 سنت قرار می‌دهد.
توضیحات comment را تعیین می‌کند.

رفتار تغییر پوش مدولاسیون ساز را تنظیم می‌کند. قالب و مقادیر اساساً همانند پوش صدا (volume envelope) هستند. به جز در برخی فونت‌های صوتی، حتی در صورت تنظیم این گزینه اتفاق خاصی رخ نمی‌دهد.
پیروی پوش دامنه صدا از کلید نت (key follow) را مشخص می‌کند. بر پایه note=60 زمان پوش را بر اساس نت تغییر می‌دهد. واحد آن cent/key+- است. برای نمونه envkeyf=100 یعنی با بالا رفتن به اندازه ۱ اکتاو، زمان attack دو برابر خواهد شد. قالب مشابه rate= است.
پیروی پوش دامنه از شدت ضربه (velocity follow) را مشخص می‌کند. بر پایه velocity=64 زمان پوش را طبق شدت ضربه تغییر می‌دهد. واحد آن cent/velocity+- است. برای مثال envvelf=100 بدین معناست که زمان attack در velocity=127 به میزان ۳۸ برابر خواهد شد.
پیروی پوش مدولاسیون از کلید نت را تعیین می‌کند. بر پایه note=60 زمان پوش را متناسب با نت تغییر می‌دهد. واحد آن cent/key+- است.
پیروی پوش مدولاسیون از شدت ضربه را مشخص می‌کند. بر پایه velocity=64 زمان پوش را متناسب با شدت تغییر می‌دهد. واحد آن cent/velocity+- است.
میزان عمق تغییر گام/کوک (pitch) بر اساس ترمولو را تعیین می‌کند. اثر آن همانند ویبراتو است اما در سیستم دیگری عمل می‌کند. واحد آن cent+- است و قالب آن مشابه rate= است.
عمق تغییر فرکانس قطع (cutoff) بر اساس ترمولو را مشخص می‌کند. می‌تواند افکت موسوم به growl را ایجاد کند. واحد و قالب مشابه trempitch= است.
عمق تغییر گام ساز طبق پوش مدولاسیون را تعیین می‌کند. می‌تواند به صورت موقت افزایش گام را فقط برای مرحله حمله (attack) شبیه‌سازی کند.
عمق تغییر فرکانس قطع مطابق پوش مدولاسیون را تعیین می‌کند.
مقدار استاندارد فرکانس قطع ساز را تنظیم می‌کند. واحد آن هرتز (Hz) است و قالبی مشابه rate= دارد.
میزان Q (رزونانس یا تشدید) ساز را مشخص می‌کند. واحد آن cB است و قالبی شبیه به rate= دارد.
پیروی فیلتر ساز از کلید نت را تنظیم می‌کند. بر مبنای note=60 فرکانس قطع را نسبت به نت تغییر می‌دهد. واحد آن cent/key+- است. برای مثال fckeyf=100 یعنی تغییری همگام با تغییر گام ایجاد می‌کند.
پیروی فیلتر از شدت ضربه را مشخص می‌کند. بر مبنای velocity=127 فرکانس قطع را مطابق سرعت ضربه تغییر می‌دهد. واحد آن cent+- است. در ساوندفونت‌ها مقدار -2400 مقداری مشخصه به شمار می‌آید.
پیروی رزونانس ساز از شدت ضربه را مشخص می‌کند. بر مبنای velocity=0 رزونانس را بر اساس ضربه تغییر می‌دهد. واحد آن cB+- است.
هنگامی که یک برنامه MIDI ظاهر شود که به هیچ فایل سازی نگاشت نشده است، این فایل به عنوان جایگزین پخش خواهد شد.
ساز موجود به عنوان صدای هر نگاشت GS/XG اختصاص می‌یابد. موارد gm2، sc55، sc88، sc88pro، sc8850، xg و xgsfx64 می‌توانند برای MapID1 استفاده شوند.
ساز درام موجود به عنوان درام هر نقشه GS/XG تخصیص می‌یابد. موارد gm2drum، sc55drum، sc88drum، sc88prodrum، sc8850drum، xgdrum و xgsfx126 می‌توانند برای MapID2 استفاده شوند.
خواندن کل یک ساوندفونت. پارامتر options می‌تواند هر یک از موارد زیر باشد:
ترتیب جستجوی ساز را تعیین می‌کند. اگر order=0 باشد، ابتدا ساوندفونت خوانده می‌شود و سپس نمونه‌های ناموجود در GUS/patch جستجو می‌شوند. در صورت order=1، پس از خواندن پچ‌های GUS، ساوندفونت جستجو خواهد شد.
میزان تقویت صدای کل ساوندفونت را بر حسب درصد amplification تعیین می‌کند. مقدار پیش‌فرض 100% است.
مشخص می‌کند که فیلتر پایین‌گذر (LPF) در ساوندفونت فعال (1) باشد یا غیرفعال (0). پیش‌فرض فعال است.
مشخص می‌کند که رزونانس در ساوندفونت فعال (1) باشد یا غیرفعال (0). پیش‌فرض فعال است.
ساوندفونت هدف را از حافظه پاک و آزاد می‌کند.
از جستجوی ساوندفونت برای bank و prog جلوگیری می‌کند. اگر نمونه درام‌ست باشد، بانک برابر با 128، درام‌ست برابر با prog و شماره کلید key خواهد بود.
ترتیب جستجوی سازها را به صورت جداگانه تعیین می‌کند. قالب آن مانند font exclude است.

دستورات زیر تنها در جدیدترین نسخه‌های TiMidity++ در دسترس هستند:

#extension altassign program1 program2 ...
تخصیص جایگزین (alternate assign) را برای درام‌ست تنظیم می‌کند. برای مثال اگر بخواهید سنج‌های های‌هت (نت‌های شماره 42، 44 و 46) در drumset 0 نسبت به یکدیگر به طور انحصاری نواخته شوند، تعیین کنید:

drumset 0
altassign 42 44 46

دقت داشته باشید که تخصیص جایگزین drumset 0 به صورت پیش‌فرض فعال است.

#extension comm program comment
توضیحات comment را برای شماره صدای program تعیین می‌کند. این توضیحات در نوار نشانگر هنگامی که TiMidity++ با گزینه‌های -int یا -iTt اجرا شود نمایش داده می‌شوند.
#extension timeout program second
مقدار انقضای زمان (time-out) برنامه program را مشخص می‌کند. اگر نت‌های نواخته‌شده با شماره صدای program برای مدت بیش از second ثانیه معلق بمانند، TiMidity++ آن نت‌ها را خاتمه می‌دهد.
#extension copydrumset drumset
تمامی تنظیمات drumset را در درام‌ست جاری کپی می‌کند.
#extension copybank bank
تمامی تنظیمات بانک bank را در بانک جاری کپی می‌کند.
#extension copymap to-MapID from-MapID
تمامی تنظیمات بانک‌های تعریف‌شده برای نقشه from-MapID را در نقشه to-MapID کپی می‌کند.
#extension HTTPproxy hostname:port
پروکسی پروتکل HTTP را مشخص می‌کند. مقادیر hostname و port مربوط به میزبان پروکسی هستند.
#extension FTPproxy hostname:port
پروکسی پروتکل FTP را مشخص می‌کند. مشابه HTTP است.
#extension mailaddr your-mail-address
آدرس ایمیل کاربر را مشخص می‌کند. این آدرس در صورت دسترسی TiMidity++ به فایلی از طریق FTP به سرور مربوطه ارسال خواهد شد.
#extension opt option
مقدار گزینه‌های زمان بوت و اجرا را تنظیم می‌کند.
#extension undef progno
تعریف صدای progno در بانک صدای جاری را لغو می‌کند.
#extension legato progno {0|1}
مشخص می‌کند که آیا ویژگی legato بر روی progno فعال (1) باشد یا غیرفعال (0).
#extension level progno tva_level
مقدار استاندارد تغییر تقویت صدا را در زمان پردازش Drum Instrument TVA Level در NRPN تعیین می‌کند. تا زمانی که این پارامتر در زمان پخش مشخص نشود، بلندی صدا تحت تاثیر قرار نخواهد گرفت. مشخص کردن progno به شکل گروهی با `,' یا [start]-[end] مجاز است. در صورت حذف شروع و پایان، مقادیر 0 و 127 در نظر گرفته می‌شوند.
#extension damper progno {0|1}
مشخص می‌کند که آیا redamper و half-damper در progno فعال (1) یا غیرفعال (0) باشند.
#extension playnote progno note
فرکانس پخش نت را به note تنظیم می‌کند. اگر فرکانس پخش توسط GS SysEx Play Note مشخص شود، گام صدا بر اساس این مقدار تغییر می‌یابد. تعریف گروهی برای progno مجاز است.

برای مثال:
drumset 0
#extension playnote -37,39,44-46,55-60

#extension delaysend progno level

#extension chorussend progno level

#extension reverbsend progno level
سطح ارسال (send level) را در زمان فعال بودن افکت بخش درام تنظیم می‌کند. مقدار اولیه تمامی آن‌ها 127 است. اگر حداقل یکی از افکت‌های delay، chorus یا reverb تنظیم شود، افکتی که به عنوان صدا تنظیم نشده باشد مقدار پیش‌فرض 0 خواهد گرفت. تعیین گروهی سازها برای progno امکان‌پذیر است.
#extension rnddelay progno msec
به ازای هر بار تولید صدا، تاخیری تصادفی و کمتر از حداکثر msec میلی‌ثانیه اعمال می‌کند. توزیع مقدار تصادفی بر پایه نویز صورتی (نوسان 1/f) است نه نویز سفید.

این عبارات #extension با کاراکتر `#' آغاز می‌شوند که پرچم توضیح (کامنت) در نسخه‌های قدیمی TiMidity (نسخه 0.2i یا قدیمی‌تر) بوده است؛ بنابراین این دستورات به عنوان خطوط توضیحی در نظر گرفته می‌شوند.
نسخه‌های جدید TiMidity++ عبارت #extension را به عنوان نویسه فاصله در نظر می‌گیرند، بنابراین می‌توانید آن را نادیده بگیرید یا حذف کنید.

اگر نام فایلی به کاراکتر `|' (کد اسکی 0x7c) ختم شود، با آن نام فایل مانند یک دستور برخورد می‌شود و خروجی آن دستور به عنوان آرگومان‌های عبارات بررسی می‌شود.
دستور source command| باعث می‌شود خروجی command به آرگومان دستور source تبدیل شود. این امر برای انتخاب تنظیمات TiMidity++ با توجه به محیط بسیار مناسب است. علاوه بر این اگر فاصله‌ای مانند command | در میان باشد، در هنگام خواندن فایل تنظیمات تفکیک شده و دیگر به عنوان دستور تلقی نخواهد شد. این قابلیت در تمامی بخش‌هایی که امکان تعیین نام فایل وجود دارد کاربرد دارد.

timidity 'cat fild.mid|'

از خروجی دستور cat fild.mid می‌خواند.

/etc/timidity.cfg
/usr/local/share/timidity/timidity.cfg

timidity(1), lsmidiprog(1), mididump(1), patinfo(1), sf2text(1), wav2pat(1)

حق نشر (C) 1999-2004 Masanao Izumo <iz@onicos.co.jp>
حق نشر (C) 1995 Tuukka Toivonen <tt@cgs.fi>

نسخه اولیه توسط Tuukka Toivonen <tt@cgs.fi> تا زمان انتشار نسخه TiMidity-0.2i توسعه داده شد. توسعه وی به دلیل مشغله کاری متوقف گردید.

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است (نسخه ۲ یا در صورت تمایل هر نسخه جدیدتر) بازتوزیع کرده یا تغییر دهید.

این برنامه به امید مفید واقع شدن توزیع شده است، اما بدون هیچ‌گونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا تناسب برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.

شما باید همراه با این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت به نشانی Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA بنویسید.

جدیدترین نسخه بر روی صفحه TiMidity++ در دسترس است:

نشانی وب https://sourceforge.net/projects/timidity

April 25 2004 2.13.0