اطلاعیه

Collapse
No announcement yet.

دوستان کسی میتونه یه فرم کلی از ماهیت و برنامه ی احتمالی این پروژه به من بده؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دوستان کسی میتونه یه فرم کلی از ماهیت و برنامه ی احتمالی این پروژه به من بده؟

    سلام دوستان. اگه کسی با نگاه کردن این فیلم کوتاه، میتونه حدس بزنه برنامه ی این پروژه از چه قسمت هایی تشکیل شده و کمکم کنه یه نمونشو بسازم، بسیار سپاس گذارش میشم!
    آخه خودشون نوشتن "پروژه ی خاصی نیستش!" :eek:
    http://www.aparat.com/v/QImjS



    یکم مبانی درموردش بذارم فقط:
    + این سینتی سایزری که مشاهده کردید Polyphonic ـه. یعنی قابلیت نواختن چند نت به صورت موازی رو داره. کیبوردش هم با اسکن صفحه کلید ماتریسی فلگ هارو مقدار میده.
    + هارمونیک میتونیم اضافه کنیم. (که عامل تفاوت قائل شدن بین اصوات ساز های دیگه میشه که اصطلاحاً "طنین" یا Timbre خونده می شه).
    + دنبال کننده ی انوِلاپ خواهیم داشت که با ADSR نشونش میدن و شامل Attack, Decay, Sustain و Release میشه که اولی و آخری (ایجاد و میرایی سیگنال) رو اضافه کردن ایشون.

    پروژه ی مشابه ای هم خودم درست کردم یکم زیادی ابتداییه واس همین به کمکتون احتیاج دارم:
    + اولاً این که Monophonic ـه (دلیلش اون پایین هست)
    + دوماً 25 تا کلید داریم، درست ولی با دوتا کلید دیگه و با استعانت از یک متغیر تا ده اکتاو رو دستمون بازه سیگنال نُت رو بسازیم.
    + سیگنال خروجی متأسفانه یا خوشبختانه مربعیه (خروجی تایمر مد پیشرفته) که البته میدونم بی نهایت هارمونیک فرد داره و به طروقی میشه جداشون کرد، ولی
    متد اشتباهی برگزیدم کلّاً. طبق گفته ی سازنده ی اون پروژه، سیگنال سازی توسط یک یا چند DAC صورت گرفته. که اطلاعات زیادی نداریم.

    فرم کلی برنامه ی من:
    (با هر بار مقدار دادن رجیستر OCR و فعال/ غیر فعال سازی تایمر دوم CTC مگا32 سیگنال نهایی ساخته میشه.) کد کلید سُل دوم (کلید 19 ام) به شکل زیره:
    کد:
        while (PINA.5==0)  //SOL 2 
        {
        delay_ms(50);
          if (m==0)
          {
          OCR2=79; 
          TCCR2=0x1F;
          }
          if (m==1)
          {
          OCR2=39; 
          TCCR2=0x1F;
          }   
          if (m==2)
          {
          OCR2=79; 
          TCCR2=0x1E;
          }
          if (m==3)
          {
          OCR2=79;
          TCCR2=0x1D;
          }     
          if (m==4)
          {
          OCR2=79;
          TCCR2=0x1C;
          }
          if (m==5)
          {
          OCR2=79;
          TCCR2=0x1B;
          } 
          if (m==6)
          {
          OCR2=158;
          TCCR2=0x1A;
          } 
          if (m==7)
          {
          OCR2=76;
          TCCR2=0x1A;
          }  
          if (m==8)
          {
          OCR2=38;
          TCCR2=0x1A;
          }
        }
    اگه توجه کنید، به تعداد کلید ها while داریم که پس از فشردن تو مُد هنگ میره اصطلاحاً! بعد با ده تا If میبینه تو کدوم اکتاو قرار داریم و سیگنال نُت رو میسازه.
    میدونم کد چرتی نوشتم، ولی چیز دیگه ای به ذهنم نمی رسید خو...!
    کلاً دنبال پروژه ساده ی ارگ ساده ام که پشن های زیادی بهش اضافه کنم.



    تاحالا پست نذاشتم! لطفاً کمکم کنید! سپاس گزارم... :cry2:
    [move]ای نورچشم من سخنی هست، گوش کن ● تا ساغرت پر است، بنوشان و نوش کن[/move]
    [move]مخمور جام عشقم ساقی بده شرابی ● پر کن قدح که بی می، مجلس ندارد آبی[/move]
لطفا صبر کنید...
X