سي ساوند

Csound هي لغة برمجة حاسوبية متخصصة في مجال برمجة الصوت. سُميت بهذا الاسم لأنها مكتوبة بلغة C ، على عكس بعض اللغات السابقة لها. وهي برنامج مجاني ومفتوح المصدر ، مُرخص بموجب رخصة جنو العمومية الصغرى (LGPL) الإصدار 2.1 أو أحدث.

تاريخ

طُوِّر نظام Csound في الأصل على يد باري فيركو في مختبر الإعلام التابع لمعهد ماساتشوستس للتكنولوجيا عام 1985، [ 3 ] استنادًا إلى نظامه السابق المسمى Music 11، والذي بدوره اتبع نموذج MUSIC-N الذي بدأه ماكس ماثيوز في مختبرات بيل . واستمر تطوير Csound طوال التسعينيات والعقد الأول من القرن الحادي والعشرين، بقيادة جون فيتش في جامعة باث.

ساهم العديد من المطورين في تطوير Csound، وأبرزهم إستفان فارغا، وغابرييل مالدونادو، وروبن ويتل، وريتشارد كاربن، وإيان ماككوردي، ومايكل غوغينز، ومات إنغالز، وستيفن يي، وريتشارد بولانجر ، وفيكتور لازاريني، ويواكيم هاينتز. وقد تم تطويره على مدى سنوات عديدة، اعتبارًا من عام 2024.يحتوي على ما يقارب 1700 وحدة توليد . ومن أبرز نقاط قوته أنه معياري وقابل للتوسيع بالكامل من قبل المستخدم.

يرتبط Csound ارتباطًا وثيقًا باللغة الأساسية لامتدادات الصوت المهيكل لـ MPEG-4 ، وهي لغة أوركسترا الصوت المهيكل (SAOL).

كود Csound

يستقبل برنامج Csound ملفين نصيين مُنسقين خصيصًا كمدخلات. يصف ملف الأوركسترا طبيعة الآلات الموسيقية، بينما يصف ملف النوتة الموسيقية النوتات الموسيقية والمعايير الأخرى على طول خط زمني. يقوم Csound بمعالجة التعليمات الموجودة في هذين الملفين، ويُخرج ملفًا صوتيًا أو بثًا صوتيًا مباشرًا.

يمكن دمج ملفات الأوركسترا والنوتة الموسيقية في ملف واحد منظم باستخدام علامات لغة الترميز ( ملف CSD بامتداد .csd). إليك مثال بسيط لملف بيانات Csound موحد ينتج ملف موجة صوتية يحتوي على نغمة جيبية مدتها ثانية واحدة بتردد 1 كيلوهرتز ومعدل عينة 96 كيلوهرتز: 

<CsoundSynthesizer><CsOptions> csound -W -d -o tone.wav </CsOptions><CsInstruments> sr = 96000 ; معدل أخذ العينات. kr = 9600 ; معدل إشارة التحكم. ksmps = 10 ; عدد العينات لكل إشارة تحكم. nchnls = 1 ; عدد قنوات الإخراج.instr 1 a 1 oscil p4 , p5 , 1 ; المذبذب: p4 و p5 هما وسيطات النوتة الموسيقية، و1 هو رقم الجدول. out a 1 ; الإخراج. endin </CsInstruments><CsScore> f 1 0 8192 10 1 ; جدول يحتوي على موجة جيبية. يُنتج المولد المدمج 10 مجموع موجات جيبية، هنا موجة واحدة فقط. i 1 0 1 20000 1000 ; تشغيل ثانية واحدة من تردد 1 كيلوهرتز بسعة 20000. e </CsScore></CsoundSynthesizer>

كما هو الحال مع العديد من لغات البرمجة الأخرى، يُمكن تسهيل كتابة البرامج الطويلة في Csound باستخدام بيئة تطوير متكاملة للتحرير والمعاينة والاختبار وتصحيح الأخطاء . البيئة المدعومة رسميًا حاليًا هي CsoundQt، والتي تتميز بالعديد من الخصائص، مثل الإدراج التلقائي للتعليمات البرمجية، ومتصفح توثيق متكامل، وأدوات مدمجة للتحكم الرسومي في المعلمات في الوقت الفعلي، بالإضافة إلى زر لتشغيل التعليمات البرمجية.

سي ساوند 5

صدرت النسخة 5.01 في 18 مارس 2006، بعد 20 عامًا من الإصدار الأول لبرنامج Csound. يتوفر Csound 5 بصيغة ثنائية ومصدرية لأنظمة Linux و Microsoft Windows و macOS من مشروع SourceForge Csound. [ 4 ] وقد شهد البرنامج تحسينات وتوسعات كبيرة مقارنةً بالنسخة الأصلية، حيث تم تحويله فعليًا إلى مكتبة برمجية مزودة بواجهة برمجة تطبيقات ( API ). وقد طُوّرت له العديد من واجهات المستخدم . فإلى جانب واجهة برمجة التطبيقات الأساسية المكتوبة بلغة C ، تتوفر أيضًا واجهات برمجة تطبيقات بلغات C++ و Java و Python و Lisp و Tcl ، بالإضافة إلى واجهات أخرى، مثل واجهة Haskell التي تتيح التحكم في Csound من بيئة برمجة وظيفية بحتة .

يُتيح استخدام الإضافات إمكانيات إضافية دون تعديل كود Csound، إذ يُمكن كتابة رموز تشغيل مُخصصة كامتدادات للغة الأصلية. يدعم البرنامج واجهة برمجة تطبيقات الإضافات البسيطة لمطوري الصوت في لينكس ( LADSPA ) وواجهة توليف الصوت البرمجية القابلة للاستخدام لمرة واحدة (DSSI)، ولكن تم إزالة دعم تقنية الاستوديو الافتراضي (VST).

في التسعينيات تمت إضافة الأداء في الوقت الحقيقي عبر واجهة الآلات الموسيقية الرقمية ( MIDI )، ودعم عناصر واجهة المستخدم الرسومية ( FLTK ) ( مكونات واجهة المستخدم الرسومية مع أشرطة التمرير والمقابض وما إلى ذلك) للتحكم في الصوت في الوقت الحقيقي، ودمج واجهات رسومية مخصصة مكتوبة بلغة بايثون.

سي ساوند 6

قاد تطوير Csound 6 كلٌ من جون فيتش وستيفن يي وفيكتور لازاريني . بعد مناقشة ميزاته بالتفصيل في مؤتمر Csound الذي عُقد في هانوفر عام 2011، تم إصدار Csound 6 في يوليو 2013 وإتاحته على GitHub . [ 5 ] يتوفر Csound 6 أيضًا لنظام Android . تشمل أبرز الميزات الجديدة في Csound 6 ما يلي:

  • أصبح محلل لغة Csound، المبني على Bison / Flex، معيارًا قياسيًا. يُنشئ هذا المحلل شجرة بناء جملة مجردة يمكن الوصول إليها عبر واجهة برمجة تطبيقات Csound. بعد ذلك، يمكن تجميع هذه الشجرة إلى بيئة تشغيل Csound عالية الأداء باستخدام واجهة برمجة التطبيقات نفسها. بالتالي، بعد تجميع الشجرة، يمكن للمستخدم تعديلها برمجيًا قبل تجميعها إلى بيئة تشغيل Csound عالية الأداء. بدلاً من ذلك، يمكن للمستخدم إنشاء شجرة بناء الجملة المجردة كاملةً من لغة أخرى، ثم تجميعها إلى بيئة تشغيل Csound عالية الأداء.
  • يوجد نوع جديد مدمج من المصفوفات متعددة الأبعاد. يمكن تمرير المصفوفات إلى الأدوات ورموز العمليات. يمكن إجراء العمليات الحسابية مباشرة على المصفوفات.
  • يوجد نظام أنواع جديد يسمح باستخدام الأنواع المعرفة من قبل المستخدم في لغة Csound.
  • يمكن إعادة تجميع الأوركسترا في أي وقت، أو تجميع الآلات الموسيقية الفردية في أي وقت، أثناء الأداء المباشر. وهذا يُمكّن من "البرمجة المباشرة" الحقيقية في عروض Csound.
  • تم ترشيد وتبسيط واجهة برمجة تطبيقات Csound.
  • يستفيد برنامج Csound من أي عدد من وحدات المعالجة المركزية للمعالجة المتزامنة أثناء الأداء، وذلك دون أي تغييرات في كود البرنامج. ينتج عن ذلك تسريع كبير في معظم عمليات المعالجة في Csound. على سبيل المثال، يمكن معالجة مقطع فيديو يستغرق 100 ثانية باستخدام نواة واحدة في حوالي 50 ثانية باستخدام أربع نوى.
  • يستطيع برنامج Csound تجميع الأوركسترا والنوتات الموسيقية مباشرة من سلاسل نصية، مما يتيح استخدام Csound في البيئات التي لا يُسمح فيها بالكتابة إلى نظام الملفات.
  • يمكن جدولة أحداث تسجيل النوتات الموسيقية مثل الملاحظات لأخذ عينات في أوقات دقيقة، حتى لو تمت معالجة التركيب في مجموعات من العينات.
  • يمكن استخدام جميع رموز العمليات التي تُرجع قيمة واحدة كدوال في لغة الأوركسترا.
  • يمكن أن تكون تنسيقات ملفات تحليل الصوت مستقلة عن ترتيب البايتات.
  • يمكن أن تحتوي عبارة النتيجة الواحدة على معلمات نصية متعددة.
  • ستستخدم معظم رموز عمليات المذبذب جدول دالة الجيب الداخلي إذا تم حذف رقم الجدول.
  • يمكن ضبط خيارات سطر الأوامر برمجيًا باستخدام واجهة برمجة تطبيقات Csound.
  • تم ترشيد العديد من الأجزاء المكررة من التعليمات البرمجية داخل Csound.
  • تم إنشاء تطبيق أندرويد يوفر واجهات مستخدم رسومية قابلة للتخصيص من قبل المستخدم وتركيب خوارزمي قائم على جافا سكريبت باستخدام HTML5.

Csound للعروض الحية

حالياً، لا يمكن توليد أحداث النوتات الموسيقية أو النوتات في Csound إلا في الوقت الفعلي (على عكس الآلات الموسيقية، التي لا يمكن تعريفها إلا عند بدء تشغيل Csound؛ وقد أُزيل هذا القيد في Csound 6). يتم تعريف مجموعة معالجات الصوت وتجميعها عند التحميل، ولكن يمكن إنشاء كائنات المعالجة الفردية أو حذفها في الوقت الفعلي، ومعالجة الصوت المُدخل في الوقت الفعلي، وتوليد المخرجات أيضاً في الوقت الفعلي. يمكن تشغيل أحداث النوتات بناءً على اتصالات OSC داخل مثيل الآلة الموسيقية، أو إنشاؤها عبر MIDI، أو إدخالها إلى stdin (عن طريق الكتابة في طرفية أو إرسال عبارات نصية من برنامج آخر). يمكن تعزيز استخدام Csound 5 كأداة للأداء المباشر بمجموعة متنوعة من برامج الطرف الثالث. يمكن استخدام Live Event Sheet داخل CsoundQt لتعديل النوتة الموسيقية في الوقت الفعلي. بالإضافة إلى ذلك، يمكن استخدام واجهات لغات برمجة أخرى لكتابة نصوص Csound البرمجية. عُرضت ورقة بحثية تُفصّل استخدام مكتبة Csound مع Qt أو Pure Data في توليف الموسيقى في الوقت الفعلي في مؤتمر لينكس الصوتي لعام 2012 [ 6 ]. يسعى مشروع Ounk إلى دمج لغة بايثون مع Csound، بينما يُتيح CsoundAC إمكانية التأليف الموسيقي الخوارزمي باستخدام بايثون مع Csound كخلفية. تُغلّف حزمة Csound for Live من Audivation العديد من التعليمات البرمجية في أغلفة Max/MSP مناسبة للاستخدام في Ableton Live . [ 7 ] [ 8 ] كما تتوفر Csound لأنظمة التشغيل المحمولة (iOS، Android). [ 9 ]

جهاز كمبيوتر محمول واحد لكل طفل (OLPC)

تم اختيار نظام Csound5 ليكون نظام تطوير الصوت/الموسيقى لمشروع " حاسوب محمول لكل طفل " (OLPC) على منصة الحاسوب المحمول XO-1 . [ 10 ]

انظر أيضاً

مراجع

  1. د. ريتشارد بولانجر - ثلاثة عقود مع سي ساوند: الجذور، والنشأة، والسنوات الأولى
  2. "الإصدارات: csound/csound" . GitHub.com . تم الاطلاع عليه بتاريخ 11 فبراير 2023 .
  3. فايل، مارك (2014). جهاز المزج الموسيقي . مطبعة جامعة أكسفورد . ص 102. ISBN  978-0195394894.
  4. "Csound" . SourceForge.net . 3 مايو 2016.
  5. "Csound" . GitHub.com .
  6. يواكيم هاينتز. "الصوت كتطبيق في الوقت الحقيقي" (ملف PDF) . معهد الموسيقى الجديدة.
  7. بيتر كيرن (15 أكتوبر 2011). "موسوعة Csound For Live" . إنشاء موسيقى رقمية.
  8. سينث هيد (15 أكتوبر 2011). "Csound For Live قادم في 17 أكتوبر ويكي" . سينثتوبيا.
  9. ^ س. يي وفي. لازاريني. "Csound لنظام Android" (PDF) .
  10. "Csound على ويكي OLPC" . تم الاطلاع عليه بتاريخ 23 نوفمبر 2010 .

للمزيد من القراءة

  • بولانجر، ريتشارد تشارلز، محرر. (2000). كتاب سي ساوند: منظورات في توليف البرمجيات، وتصميم الصوت، ومعالجة الإشارات، والبرمجة . مطبعة معهد ماساتشوستس للتكنولوجيا. رقم ISBN 978-0-262-52261-8.
  • بيانكيني، ر.؛ سيبرياني، أ. (2000). الصوت الافتراضي: توليف الصوت ومعالجة الإشارات: النظرية والتطبيق باستخدام Csound . دار نشر كونتمبو ساس، رقم ISBN 88-900261-1-1.
  • بولانجر، ريتشارد تشارلز؛ لازاريني، فيكتور، محرران. (2011). كتاب برمجة الصوت . مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN 978-0-262-01446-5.هذا كتاب يتناول في معظمه برمجة الصوت مباشرة باستخدام لغة C، ولكنه يحتوي على فصلين حول برمجة رموز Csound.
  • أيكين، جيم (2013). قوة الصوت! الدليل الشامل . سينجايج ليرنينج. ISBN 978-1-4354-6005-8.