سؤال

أحتاج إلى تنفيذ أ مركب wavetable في نواة ARM Cortex-M3.أبحث عن أي كود أو أدوات لمساعدتي في البدء.

أنا على علم تنفيذ AVR هذا.لقد قمت بالفعل بتحويله إلى الموافقة المسبقة عن علم منذ فترة.الآن أنا أبحث عن شيء مماثل، ولكن يبدو أفضل قليلا.

سيكون رمز ANSI C رائعًا.أي مقتطفات من التعليمات البرمجية (C أو C++)، أو عينات، أو أدوات، أو مجرد معلومات عامة ستكون موضع تقدير كبير.

شكرًا.

هل كانت مفيدة؟

المحلول

تعد مجموعة أدوات التجميع (STK) ممتازة، ولكنها تستخدم لغة C++ فقط:

http://ccrma.stanford.edu/software/stk/

قد تكون قادرًا على استخراج كود مركب wavetable من STK بالرغم من ذلك.

نصائح أخرى

اثنان من مُركّبات wavetable مفتوحة المصدر FluidSynth و TiMidity.

يمكن تغيير أي مركب ARM، وهو الأفضل، إلى ماسح الموجات في أقل من يوم واحد.إن مسح الموجة من الملفات أو توليدها رياضيًا هو تقريبًا نفس الشيء من حيث الصوت، حيث يوفر WT مجموعات ضخمة من أشكال الموجات بدون تكلفة معالجة، فأنت بحاجة إلى الموجات، وكود مذبذب WT نفسه يتكون من 20 سطرًا.لذا قم بتغيير مقبض الشكل الموجي الخاص بك من 3 إلى 100 للإشارة إلى WAV الذي تقرأه، استخدم منحدرًا/عدادًا لقراءة ملفات WAV (كمصفوفات).وزن ثابت.

من خلال 7 سنوات من الخبرة في التوليف، أوصي بتغيير 20 سطرًا من وظيفة المذبذب في التوليف المفضل لديك لتكييفه مع قراءة صفائف الموجات.يستخدم WT 20 سطرًا فقط من المنطق، أما باقي المُركِّب فهو أكثر أهمية:LFO، والمرشحات، ومعلمات الإدخال، والذاكرة المحددة مسبقًا ...استخدم التوليف المفضل لديك بدلاً من ذلك وابحث عن مكتبة موجة WT كملفات ومجلدات WAV، واستبدل مذبذبات التوليف المفضلة لديك بوظائف WT، وسيبدو الصوت كما هو تقريبًا، ولكن تكاليف معالجة أقل.

يستخدم الموالفة عادةً وظائف Sin وSqr وSaw وAntialiased OSC للموجة...

يستخدم توليف جدول الموجات حوالي 20 سطرًا من التعليمات البرمجية في قاعدته، و10/20/100 دي إس من الموجات، ويتم أخذ عينات من كل موجة عند كل أوكتاف بشكل مثالي.إذا كان بإمكانك الحصول على مكتبة صوتية قابلة للموجة، فيمكن أن يحتوي السِنثس على حلقات فقط، وتغيرات في درجة الصوت، والأصوات، ويمكن أن تحتوي السِنثس الاحترافية أيضًا على أوكتاف متعدد لخلط الأوكتافات.

الدالة WT=

  • تحميل ملفات WAV إلى صفائف N
  • تغيير الشكل الموجي = حدد صفيف الشكل الموجي من قائمة WAV
  • قراءة مجموعة الموجي عند هرتز المطلوب

وظيفة الموجات الضوئية =

  • crossfade بين موجتين وتعيين xfade إلى LFO، أي.جيب وxfade.

المغلف، المرشح، السعة، وجميع الوظائف الأخرى مستقلة عن وظيفة توليد الموجة في جميع التركيبات.

تذكر أن أقوى أداة صوتية نفسية لمركبات الصوت هي الانحراف عن النغمة الرقمية للملاحظات، وتسمى تناغم التناغم، والطابع الصوتي لمركبات الصوت يأتي في الغالب من الجوقة والإيقاع المتناغم.

WT هي إما فترات فردية من موجات المقاطع الأطول، في تركيبات أكثر تقدمًا.من السهل جدًا كتابة العناصر ذات الفترة الفردية في التعليمات البرمجية.يتم أخذ عينات WT المتقدمة لكل أوكتاف مع موجات تدوم فترات N، حتى 2-3 ثوانٍ، أي.البيانو، وهذا يعني أنهم يغيرون جودة الصوت من خلال الأوكتافات، لذلك يتم تداخل نغمات WT المعقدة في كل أوكتاف مع تسجيلات أوكتاف متعددة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top