بعض النظرية التي أعرفها عن الصوت - الصوت هي:
موجة ، التذبذبات ، التذبذبات المثبطة ، موجة يمكن وصفها من وجهة نظر الفيزياء ، يمكن وصف الموجة من وجهة نظر الرياضيات.
قم بتنزيل واختبار البرنامج
نظرًا لأننا نمثل نموذجًا على جهاز كمبيوتر ، يتم وصف موجتنا باستخدام تسلسل (سلسلة فورييه) من البايتات (الأرقام من -128 إلى 127 والصفر) ، أي مجموعة من البايتات.
أفضل وصف للمعادلة الاهتزازية بواسطة دالة SIN.
موافق ، سيكون الأمر بسيطًا جدًا إذا قمنا بتشغيل وظيفة SIN عبر الصفيف.
لذلك ، مسترشدة بمقالات حول وصف جهاز المزج Yamaha ، كتبت الخوارزمية التالية:
1. باستخدام وظيفة SIN ، يتم إنشاء موجة رئيسية أو نمذجة ، فيما يلي صيغة قد تكون مفيدة للمطورين الآخرين:
for(int k = 0; k < SoundLabVisual.player.data.length;k++){ double sinusoid = amplitude1 * Math.sin(2 * (3.14/1 ) * k * frequency1 + faza); }
حيث:
السعة 1 - السعة
تردد 1 - تردد التذبذب
فزة - المرحلة الأولى من التذبذبات
2. باستخدام دالة SIN الثانية ، يتم إنشاء موجة رئيسية ، حيث تكون قيمة الموجة الأولى هي:
لقطة شاشة للبرنامج

لقد قمت بتحميل أصوات الاختبار في برنامج lmms.
استمع mp3سيتم تنفيذ خوارزمية أخرى ستعمل على القنوات ، إذا أمكن ، سأكتب عنها في المقالة الثانية.
تحديث:
وفقًا لتعليقات المعلقين ، يمكن الآن مضاعفة الخوارزميات بأنفسهم وفيما بينهم.
if(jCheckBox8.isSelected()){ sinusoid = (a1 + (sinusoid * Math.sin( (c1 * (double)k) * frequency2Double + d1 ))) * (a1 + (sinusoid * Math.sin( (c1 * (double)k) * frequency2Double + d1 ))); }else{ sinusoid = a1 + (sinusoid * Math.sin( (c1 * (double)k) * frequency2Double + d1 )); }
التحديث 2: تم تحديث البرنامج ، والآن يمكن خلط الموجة مع الصوت.