ABCMATCH(1) راهنمای ابزارهای کاربر ABCMATCH(1)

abcmatch - جستجوی توالی‌های خاصی از نت‌ها در یک فایل abc متشکل از چندین قطعه موسیقی

abcmatch abc_file [-c] [-v] [-r] [-con] [-fixed nn] [-qnt] [-lev] [-a] [-ign] [-br %d] [-tp abc_reference_file] [-ver] [-pitch_hist] [-wpitch_hist] [-length_hist] [-interval_hist] [-pitch_table] [-interval_table] [reference_number]

برنامه abcmatch برای جستجوی توالی‌های خاصی از نت‌ها در یک فایل abc که از چندین قطعه موسیقی (tune) تشکیل شده است به کار می‌رود. به عنوان مثال، اگر چند میزان از یک قطعه موسیقی را می‌دانید، می‌توانید از این برنامه برای یافتن قطعه‌ای که دارای این توالی است استفاده کنید و احتمالاً آن قطعه را شناسایی نمایید.

برنامه abcmatch به مسیر فایلی که حاوی مجموعه قطعات موسیقی abc است نیاز دارد. در بسیاری از موارد، ممکن است به یک فایل الگو به نام match.abc که شامل میزان‌های مورد جستجو است نیاز باشد. در چنین مواردی، برنامه به‌طور خودکار فایل match.abc را بارگذاری کرده و سپس تک‌تک قطعات موجود در فایل بزرگ‌تر را بررسی و پویش می‌کند.

ترتیب شماره‌های مرجع در مجموعه قطعات موسیقی لزوماً متوالی نیست و ممکن است موارد تکراری متعددی وجود داشته باشد. به همین دلیل، abcmatch شماره خطی در فایل را که شماره مرجع در آن دیده شده است نیز برمی‌گرداند. اگر abcmatch موفق به تطبیق محتوای یک قطعه موسیقی با الگوی خود شود، معمولاً ۳ عدد را برمی‌گرداند: عدد اول شماره خطی است که شماره مرجع :X در آن مشاهده شده است؛ عدد دوم مقدار واقعی مرجع :X است؛ و عدد آخر تعداد تطابق‌های یافت‌شده برای آن قطعه موسیقی است.

عمدتاً برای اشکال‌زدایی (دیباگ) در مواقعی که برنامه مطابق انتظار عمل نمی‌کند استفاده می‌شوند.
شماره نسخه را چاپ کرده و سپس خارج می‌شود.
باعث می‌شود الگوریتم تطبیق از کشش و دیرند نت‌ها در یک میزان صرف‌نظر کند؛ بنابراین توالی E3/2F/D GA2 با EFD G2A تطابق خواهد یافت. این گزینه پارامتر -r را نادیده می‌گیرد، زیرا در این حالت دیگر کاربردی ندارد.
برای تولید یک هیستوگرام زیروبمی وزن‌دهی‌شده بر اساس فواصل برای هر قطعه موسیقی در فایل استفاده می‌شود. اگر این اطلاعات در یک فایل خارجی ذخیره شود، می‌توان از آن به عنوان یک پایگاه داده برای یافتن قطعاتی با توابع چگالی احتمال زیروبمی (pdf) مشابه استفاده کرد.
نحوه مدیریت تغییرات جزئی ریتم در ملودی توسط معیار تطبیق را کنترل می‌کند. گزینه -r باید همراه با یک عدد باشد که تفکیک‌پذیری و دقت زمانی را برای تطبیق مشخص می‌کند. اگر این عدد صفر باشد، نشان‌دهنده لزوم تطبیق دقیق و کامل است؛ به این معنی که طول هر نت در میزان باید دقیقاً یکسان باشد تا گزارش شود. برای مقادیر بزرگ‌تر، تطبیق با انعطاف‌پذیری بیشتری انجام می‌شود که در ادامه شرح داده شده است. طول نت‌ها به واحدهای زمانی تبدیل می‌شوند که در آن به‌طور معمول به یک نت سیاه مقدار ۲۴ اختصاص می‌یابد. بنابراین یک نت چنگ دارای مقدار ۱۲، یک نت دولاچنگ دارای مقدار ۶، یک نت سفید دارای مقدار ۴۸ و غیره است. اگر دقت زمانی ۱۲ را مشخص کنید، مقادیر زیروبمی نت‌ها فقط باید در واحدهای زمانی که مضربی از یک نت چنگ هستند با یکدیگر تطابق داشته باشند.
باعث می‌شود برنامه هنگام تطبیق، خطوط میزان را نادیده بگیرد. این قابلیت امکان تطبیق نت‌ها را میان قطعاتی با کسر میزان‌های متفاوت فراهم می‌کند. n عددی است که تعداد دقیق نت‌ها را برای تطبیق مشخص می‌کند. به عنوان مثال اگر n برابر ۴ باشد، برنامه می‌تواند:
|C E G E| .. with |C E|G E|

را تطبیق دهد. توجه داشته باشید که موتور تطبیق همچنان برای هر دو مورد قطعه و الگو، از ابتدای یک میزان معین شروع می‌کند.

تطبیق کانتور (contour matching یا خط سیر ملودی) را تعیین می‌کند. در این حالت، برنامه از سرکلید تنها برای مشخص کردن علامت‌های عَرَضی استفاده می‌کند. کانتور زیروبمی از اختلاف زیروبمی یا فاصله میان نت‌های مجاور محاسبه می‌شود.
از الگوریتم تطبیق کانتور استفاده می‌کند اما فواصل را نیز با استفاده از جدول زیر کوانتیزه (دسته‌بندی) می‌نماید:
unison and semitone    0
minor 2nd to major 2nd 1
minor 3rd to major 3rd 2
any larger interval    3

اعداد منفی نشان‌دهنده فواصل نزولی هستند.

هر قطعه موسیقی دلخواهی را به عنوان الگوی match.abc جایگزین می‌کند. هنگام استفاده از این ویژگی، کل قطعه موسیقی به عنوان یک الگو استفاده می‌شود. برنامه abcmatch الگو را با خودش تطبیق نمی‌دهد و تنها میزان‌هایی که با میزان‌های سایر قطعات مطابقت داشته باشند گزارش می‌شوند.

برنامه abcmatch فهرستی از شماره میزان‌هایی را که با الگو تطابق داشته‌اند بازمی‌گرداند.

برنامه را در حالت خلاصه اجرا می‌کند که برای شناسایی گروه‌هایی از قطعات موسیقی دارای میزان‌های مشترک طراحی شده است. در این حالت، برنامه تعداد میزان‌های قطعه مورد آزمایش را که در match.abc نیز وجود دارند شمارش می‌کند. اگر تعداد میزان‌های مشترک بزرگ‌تر یا مساوی با مقدار آستانه (threshold) باشد، برنامه قطعه موسیقی و تعداد میزان‌های مشترک را گزارش می‌دهد. برنامه تمامی قطعات موجود در فایل abc را پویش کرده و فهرستی از تمامی قطعاتی را که بیش از تعداد مشخصی میزان مشترک با الگوی match.abc دارند بازمی‌گرداند. در کاربرد واقعی، این برنامه معمولاً به صورت متوالی توسط یک اسکریپت اجرا می‌شود؛ به این ترتیب که برای هر قطعه در یک فایل abc، یک فایل الگو به نام match.abc ایجاد کرده و سپس abcmatch را اجرا می‌کند. خروجی‌ها به شکلی روی صفحه نمایش داده می‌شوند که تفسیر آن‌ها آسان باشد. کاربر کنترلی بر معیار تطبیق ندارد؛ ریتم باید دقیقاً مطابقت داشته باشد و نت‌ها برای تناسب با سرکلید انتقال گام داده می‌شوند. به عبارت دیگر، پارامتر -r مستقل از مقادیر مشخص‌شده در فهرست پارامترها عمل می‌کند.
برنامه را در حالت دیگری اجرا می‌کند که یک هیستوگرام از توزیع نت‌ها در فایل abc تولید می‌نماید. زیروبمی بر حسب واحدهای MIDI مشخص می‌شود؛ بنابراین نت دوی میانی (middle C) برابر ۶۰ است و زیروبمی‌ها در واحدهای نیم‌پرده افزایش می‌یابند. به دنبال مقدار زیروبمی، تعداد دفعات وقوع آن نت ذکر می‌شود.
برای ایجاد پایگاه داده‌ای از مجموعه‌ای از قطعات موسیقی در یک فایل جهت تحلیل‌های بعدی استفاده می‌شود.

abc2abc(1), abc2midi(1), mftext(1), midi2abc(1), midicopy(1), yaps(1)

این صفحه راهنما توسط Ross Gammon بر اساس abcmatch.txt اثر Seymour Shlien نوشته شده است.

این صفحه راهنما نسخه 1.84 برنامه abcmatch از ۲۰ مه ۲۰۲۶ را شرح می‌دهد.

20 May 2026 abcmatch