آهنگسازی الگوریتمی

آهنگسازی الگوریتمی، تکنیکی برای استفاده از الگوریتم‌ها برای ساخت موسیقی است. الگوریتم‌ها (یا در پایین‌ترین سطح، مجموعه‌ای از قواعد رسمی) سده‌ها است که برای ساخت موسیقی استفاده شده‌اند؛ برای مثال روش‌هایی که برای طرح‌ریزی صدا در کنترپوان غربی استفاده می‌شود، می‌توانند به طرح‌ریزی الگوریتمی کاهش پیدا کنند. این اصطلاح، برای استفاده از روش قراردادی و رسمی برای ساخت موسیقی بدون مداخله انسان با معرفی روال‌های تصادفی یا استفاده از رایانه‌ها رزرو شده‌است.
یک تمایز اساسی بین آهنگسازانی که از روش‌های مجهول (مثل روش تصادفی) برای ساخت موسیقی استفاده می‌کنند و آن‌هایی که از روال‌هایی که نتایج قطعی تولید می‌کنند استفاده می‌کنند، امکان دادن یک ورودی ثابت به الگوریتم است.
بسیاری از الگوریتم‌های که ارتباط موزیکال فوری و بی واسطه ندارند، توسط آهنگسازان به عنوان یک الهام خلاق برای موسیقی شان استفاده می‌شوند. الگوریتم‌های مانند برخال‌ها، L-systemها، مدل‌های آماری و داده‌های اختیاری (مانند اشکال آماری، مختصات جغرافیایی) به تفاسیر موسیقایی مشروعیت می‌بخشند. موفقیت یا شکست این روال‌ها به عنوان منابعی برای موسیقی خوب به‌طور گسترده‌ای وابسته به سیستم نگاشتی است که برای ترجمه اطلاعات غیر موزیکال به یک جریان داده موزیکال، توسط آهنگسازان مورد استفاده قرار می‌گیرد.

مدل‌های آهنگسازی الگوریتمی

یک متد جامع برای طبقه‌بندی الگوریتم‌های آهنگسازی در گروه‌های مختلف وجود ندارد. یک راه برای این انجام کار نگاه کردن به روش‌هایی است که یک الگوریتم در فرایند آهنگسازی شرکت می‌کند. نتایج این پردازش می‌تواند به دو مرحله تقسیم شود: ۱) موسیقی ساخته شده توسط کامپیوتر ۲) موسیقی ساخته شده با کمک رایانه.

وقتی که الگوریتم قادر است که در طول ایجاد فرایند قدرت انتخاب داشته باشد، موسیقی می‌تواند توسط رایانه ساخته شود. راه دیگر برای طبقه‌بندی الگوریتم‌های آهنگسازی، آزمودن نتایج فرایندهای آهنگسازی قطعات موسیقی است. الگوریتم‌ها می‌توانند هم ۱)اطلاعات نت‌ها (نت موسیقی برگه‌ای) را برای سایر آلات موسیقی فراهم کنند وهم ۲) یک روش مستقل برای ترکیب صداها (اجرای آهنگ) فراهم آورند.

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

یکی از تقسیم‌بندی‌های مفصل شامل ۶ مدل نسبتاً هم‌پوشانی شده‌است:
 •  مدل‌های ریاضی
 •  سامانه‌های مبتنی بر دانش
 •  گرامر
 •  روش‌های تکاملی
 •  سامانه‌های یادگیری
 •  سامانه‌های ترکیبی

مدل‌های ریاضی

مدل‌های ریاضی مبتنی بر معادلات ریاضی و پیشامدهای تصادفی هستند. متعارف‌ترین روش برای ساخت آهنگ‌ها از طریق ریاضی، فرایندهای تصادفی است. در مدل‌های تصادفی یک قطعه موسیقی به عنوان نتیجه متدهای غیرقطعی ساخته می‌شود. فرایند آهنگسازی تا اندازه‌ای با استفاده از توزین احتمال رویدادهای تصادفی توسط آهنگساز، کنترل می‌شود. مثال‌های برجسته‌ای از الگوریتم‌های تصادفی، زنجیر مارکوف و کاربردهای مختلف توزیع نرمال می‌باشند. الگوریتم‌های تصادفی اغلب باهمدیگر به همراه دیگر الگوریتم‌ها در فرایندهای تصمیم‌گیری استفاده می‌شوند.

موسیقی همچنین از طریق نمودهای طبیعت ساخته می‌شود. این مدل‌های بی نظم آثاری موسیقائی از الهامات موزون و ناموزون طبیعت می‌سازند. برای مثال از سال ۱۹۷۰ برخال‌ها به عنوان مدلی برای آهنگسازی‌های الگوریتمی مورد مطالعه قرار گرفتند.
به عنوان مثالی برای آثار قطعی از طریق مدل‌های ریاضی، دائرةالمعارف آن‌لاین توالی اعداد صحیح، یک انتخاب را برای اجرای یک توالی عددی به عنوان موسیقی فراهم می‌نماید. (این دائرةالمعارف هر عدد صحیح را بر روی یک کی برد موسیقی ۸۸ کلید با محاسبه پیمانه عددی۸۸ به یک نت موسیقی تبدیل می‌کند)

سیستم‌های مبتنی بر دانش

یک راه برای ساخت آثار موسیقی، مجزا کردن کد یک ژانر موزیکال و استفاده از این کد برای استفاده در یک اثر مشابه‌است. سیستم‌های مبتنی بر دانش برپایه مجموعه‌ای از آرگومان‌های ازپیش ساخته که می‌توانند برای ساخت آثار هنری جدید با سبک و ژانر مشابه استفاده شوند، عمل می‌کنند. معمولاً این کار با استفاده از مجموعه‌ای از آزمایش‌های و قوانین که نیاز هست برای ساخت موسیقی به وقوع بپیوندند، به انجام می‌رسد.

گرامر

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

متدهای تکاملی

متدهای تکاملی آهنگسازی بر پایه الگوریتم‌های ژنتیک هستند. آثار موسیقی با استفاده از مفاهیم فرایند تکاملی ساخته می‌شوند. از طریق تغییرات وانتخاب‌های طبیعی راه حل‌های مختلفی در جهت ایجاد یک قطعه موسیقی مناسب استنتاج می‌شوند. واکنش‌های تکراری الگوریتم‌ها راه حل‌های بد را حذف می‌کند و راه حل‌های جدیدی را ایجاد می‌کنند. نتایج پردازش‌ها توسط یک کارشناس (یک بخش حیاتی الگوریتم که کیفیت آثار موسیقی ایجادشده را کنترل می‌کند) نظارت می‌شوند.

سامانه‌های یادگیری

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

سامانه‌های ترکیبی

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

کاربردها

تکنیک‌های الگوریتمیک در تعدادی از سیستم‌ها که برای اجرای مستقیم موسیقی درنظرگرفته شده‌اند، با استفاده از تکنیک‌های الگوریتمیک برای تولید ابتکاراتی با بی‌نهایت متغیر بر روی یک نت ازپیش تعیین شده به کارگرفته می‌شوند.

یک نمونه اولیه در سال ۱۹۸۲، بازی رایانه‌ای Ballblazer برای شرکت Lucasfilm Games بود. جایی که رایانه بر روی یک نت جاز که توسط متخصص موسیقی بازی‌ها، Peter Langston ساخته شده، تعبیه شده‌است. بعدها در آن شرکت که اخیراً به اسم LucasArts نام‌گذاری مجدد شده‌است، یک موتور الگوریتمیک برای بازی Dark Forces تولید شد. سیستم‌های تولید موسیقی مشابه، توجهاتی را به آهنگسازان برجسته به وجود آورد. Brian Eno تعدادی آثار هنری را برای سیستم تولید موسیقی SSEYO's Koan پدیدآورده که تغییرات محدودی برای صفحات وب و دستگاه‌های موبایل را به وجود آورد.