PDA

View Full Version : اجرای آهنگ از روی نت موسیقی



littledemon
چهارشنبه 24 شهریور 1389, 14:45 عصر
سلام . درود:لبخند:

برو بچه های عزیز ، یه کار شروع کردم که اول اولش یه مقدار نامفهومه برام ولی جالبه !

حتما برنامه هایی رو دیدید که یه صفحه بهتون میده شما نتهای موسیقی رو مینویسید داخلش و دکمه play رو که میزنید با صدای یک ساز مثلا (Grand Piano) براتون آهنگ مربوط به نت های نوشته شده رو پخش میکنه . برنامه هایی مثل Final یا Encore و ...

بزرگترین سوال من اینه که چطور صدای ساز ها رو دربیارم ؟:متفکر:
مثلا 10 تا نت سیاه (قابل توجه اساتید موسیقی:لبخندساده:) میگزاریم . در هر ثانیه دوتاش باید اجرا بشه . خوب حالا با صدای چی ؟ نمیدونم. فقط تنها اطلاعاتی که دارم اینه که فکر میکنم باید از بالا و پائین کردن فرکانس های صوتی یه صدایی شبیه اون نت رو درست کنم . حالا مشکل کار با فرکانس هاست که نمیدونم کجای دات نت گنجونده شده ؟

و اگه فرکانس رو بدس بیارم از طریق مثلثات(علم ریاضی همیشه باماست !) میتونم صدای دقیق هر نت رو بدست بیارم. فرمول هاشو دارم یه چیزایی ...

حالا به این انشای بنده نمره بدید ببینم چه باید بکنم :خجالت:

پس جهت توجه دوستان : اولین سوال من کار با فرکانس های صوتی در دات نت هست !

بی صبرانه منتظر نظردهی و ارائه راه حل شما هستم . ممنون

arefba
چهارشنبه 24 شهریور 1389, 15:21 عصر
با فرکانس ها خیلی سخت میشه
ولی اگه ضبط کنی خیلی ساده و خوب در میاد
من برای تبلچر گیتار یه نمونه ساختم که فوق العاده بود خیلی از آهنگ ها رو باهاش اجرا می کردم

littledemon
چهارشنبه 24 شهریور 1389, 15:26 عصر
what ? :متفکر:

اول ممنون از پاسخ !
دوم : یعنی بیام پرده به پرده مثلا گیتار رو صداهاش رو ضبط کنم و بعد صدای هر نت رو اجرا کنم ؟ کیفیت ضبط بالا میخواد و تو اهنگ هایی که مثلا با ویولون زده میشه و نیاز به پرده گیری مرکب داره ، احتمال این نمیره که برنامه دچار عارضه مرگبار هنگ بشه ؟ یا اجراش به تاخیر بیافته ؟ اخه ماجرا یکم خطرناکه :لبخند:

برنامه بنده باید به صورت Real Time این کار رو بکنه ؟ یه بردی دارم که ساخته شده و با زدن هر کلیدش نت به سیستم ارسال میشه و باید تو کامپیوتر همون موقع اجرا بشه صداش ...دقیقا مثل این کیبورد های نوازندگی (یا ارگ) !!! اون وقت این مسله یکم منو گیج کرده در مورد کارایی برنامه ...:متفکر:

donny6202
چهارشنبه 24 شهریور 1389, 16:11 عصر
از این کد استفاده کن ... یه نویز با فرکانسی که میخوای خروجی میده :



using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
public static extern bool Beep(int freq, int dur);

private void button1_Click(object sender, EventArgs e)
{
Beep(frequeny, duration);
}