الوسائط المتعددة

 

تساعدك لوجو علي إصدار الأصوات بطرق عدة ، حيث يمكنك التحكم الوسائط والأجهزة الموجودة بجهازك بطرق عدة :

أ‌-   النغمات يمكنك إرسال الذبذبات عبر السماعة الداخلية بطرق عدة فمثلاً يمكنك أن تصدر نغمات الموسيقي عبر السماعة الداخلية باستخدام الأمر tone  و صيغته :

 

Tone frq time

وهي تصدر ذبذبة frq لمدة زمنية محددة حيث 60 = ثانية وحدة فمثلاً

Tone 37 60

 

يصدر ذبذبة ترددها 37   لمدة زمنية مقدارها ثانية  والذبذبة 537 تعبر عن نغمة دو في الوسطي في الموسيقي وثمة أمر أخر مشابه هو الأمر sound وهو يختلف عن الأمر tone في أن مدخله ليس أرقام إنما قائمة تضم عنصرين الأول يمثل الذبذبة والثاني يمثل زمن النغمة :

Sound [537 60]

 

يصدر الذبذبة 537 لمدة ثانية .

 

ولكن الأمر sound هو أمر أساسي بينما الأمر tone هو أمر مكتبة .

وباللغة العربية يمكنك كتابة :

 

صوت [537 60 ]

 

وهذا سوف يؤدي نفس الوظيفة ولكن عندما تقوم ببناء برنامج يتطلب اللغة العربية ، تظراً مشكلة الاتجاه عند عند إعادة تحرير البرنامج ، لذلك ننصح باستخدام برنامج المفكرة أو برنامج معلم html فهو يتضمن محرر للوجو وجافا و html في نفس الوقت.

 

ولوجو تمكنك من إصدار الصوت بطريقة مستمرة بالأمر soundon وهو يقبل مدخل عددي يستمر حتي تنهية بالأمر soundoff  فمثلاُ :

Soundon 537

يستمر في إصدار الذبذبة 537 حتى تنهيه بالأمر soundoff ، وكليهما أمر مكتبة .

 

والآن لدينا طريقة حديثة تمكنك في إصدار الصوت باستخدام بطاقة الصوت :

وهذا يمر عبر عدة خطوات :

أ‌-    فتح أجهزة الميدي midi بالأمر midiopen

ب‌-  استخدام الأمر midimessage  .

ت‌-  خلق الأجهزة بالأمر midiclose .

مثال :

Show midiopen

Midimessage (list 192+:chanel :istrument 0)

Midimessage (list 144+:chanel :octave+:tone :velocity)

Midiclose

 

ونلاحظ أن السطر الأول يهيئ أجهزة الميدي midi ولكن إذا كانت الأجهزة مهيئة فإنه يصدر رسالة خطأ والسطر الثاني يختار نوع الجهاز فمثلاُ البيانو من 0 إلي 7 والجيتار من 24 إلي 31  ويضم أعداد من 0 إلي 127 جهاز ولكن كما تري فصيغة السطر الثاني شبيهة بالسطر الثالث ولكن العدد 192 يؤدي لاختيار نوع الجهاز بينما العدد 144 يختار النغمة .

 

والبارامتر chanel عبارة عن رقن القناة ويأخذ عدد يتراوح بين 1 و16 ، والبارامتر istrument متغير من 0 إلي 127 أما المتغير octave فيأخذ قيم من 0 إلي 8  والنغمة تتراواح بين 15 إلي ...127 ، و الآن إذا كان لديك فكرة بالموسيقي فيمكنك أن تعزف مقطوعة موسيقية .

 

والبرنامج التالي يمكنك من عزف الموسيقي بنغماتها فمثلاً يمكنك أن تنشئ برنامج يعزف بطريقة البيسك القديمة مثلاُ :

Play [C1 C#1 D1 D#1 E1 F1 F#1 G1 G#1 A1 A#1 B1]

الذي يعزف السلم الموسيقي :

 

to ComputeTone :xx

localmake "ToneNum remainder :xx  12

op :ToneNum

end

 

to DetermineTime :xxx

localmake "gg  last :xxx

localmake "gg 1/:gg

op  :gg

end if

 

to DetermineTone :xxx

localmake "bb count :xxx

if :bb=2 [op first :xxx]

if :bb=3 [op bl :xxx]

if :bb=4 [localmake "gg word  item 3 :xxx item 4 :xxx op :gg  ]

end if

 

to play :list

localmake "nn count :list

 if :octave<0 [make "octave=0]

for [i 1 :nn][~

localmake "htone item :i :list

localmake "ttone  DetermineTone :htone

localmake "DistTone DetermineTime :htone

if :ttone="< [make "octave :octave-1]

if :ttone="< [make "octave :octave+1]

if :octave<0 [make "octave=0 ]

if :octave>8 [make "octave=8 ]

 if UpperCase(:ttone)="C  [ localmake "aa 0+:octave*12  playtone (list :aa :DistTone)  ]

if UpperCase(:ttone)="C#  [ localmake "aa 1+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="D  [ localmake "aa 2+:octave*12  playtone (list :aa  :DistTone) ]

if UpperCase(:ttone)="D#  [ localmake "aa 3+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="E  [ localmake "aa 4+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="F  [ localmake "aa 5+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="F#  [ localmake "aa 6+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="G  [ localmake "aa 7+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="G#  [ localmake "aa 8+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="A  [ localmake "aa 9+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="A#  [ localmake "aa 10+:octave*12  playtone (list :aa  :DistTone)  ]

if UpperCase(:ttone)="B  [ localmake "aa 11+:octave*12  playtone (list :aa  :DistTone)  ]

]

end

 

to playtone :list

localmake "Mtone item 1 :list

localmake "velo item 2 :list

if :velo > 1 [localmake "velo  1]

localmake "octave 144 + int(:Mtone/12)

localmake "dist int(:velo) * 127

localmake "Flist (list :octave :Mtone :dist)

show (list  :list WriteToneName :Mtone)

midimessage (:Flist)

localmake "velo int(:velo)

wait :velo*60

end

 

to WriteToneName :xx

localmake "ntone (ComputeTone :xx)

if :ntone=0 [op "C]

if :ntone=1 [op "C#]

if :ntone=2 [op "D]

if :ntone=3 [op "D#]

if :ntone=4 [op "E]

if :ntone=5 [op "F]

if :ntone=6 [op "F#]

if :ntone=7 [op "G]

if :ntone=8 [op "G#]

if :ntone=9 [op "A]

if :ntone=10 [op "A#]

if :ntone=11 [op "B]

end

 

Make "octave 5

Make "startup [SHOW midiopen]

 

   

 

ملفات الصوت والموسيقي :

تساعدك لوجو ميكروسوفت علي قراءة الملفات الصوتية وملفات الفيديو avi بالأمر playwave فمثلاً الصيغة التالية تعزف ملف الصوت المسمي tada.wav والموجود في الفهرس media في المجلد win98 :

 

playwave "c:\\win98\\media\\tada.wav 1+8

 

ولكن هذا الملف سوف يتم عزفه بطريقة مستمرة ويمكنك قطعه بالأمر

playwave [] 0

 

أو يمكنك أن تستخدم بارامتر أخر كما يلي :

playwave "c:\\win98\\media\\tada.wav 0

أو

playwave "c:\\win98\\media\\tada.wav 1

 

لاحظ الفرق بينهما من ظهور المؤشر وعودته إليك .

وعموماً صيغة الأمر هي :

Playwave wavefile flages

 

والمدخل الأول عبارة عن مسار ملف الصوت ولكن مع استخدام الرمز \\ بدلاً من الرمز / ، والمدخل الثاني يوضح كيفية العزف فمثلاُ

0                      لا تعود حتي تنتهي من تنفيذ الملف

                     ارجع  قبل أن تنهي العزف

                     استمر في القراءة حتي استخدم امر صوت آخر .

16                    لا توقف قراءة الصوت .

 

وأهم تلك البارامترات هم 0 ، 1 و8 ويمكنك أن تستخدم أكثر من قيمة معا كما بالمثال السابق

 

كما يمكنك استخدام الأمر MCI وصيغته كما يلي :

Status MCI mci-command-list

Status (MCI mci-command-list callback)

 

مثال :

to soundit

  print mci [open c:\\win98\\media\\tada.wav type waveaudio alias wa1]

  print mci [open c:\\win98\\ding.wav type waveaudio alias wa2]

  mci [seek wa1 to start]

  mci [play wa1 wait]

  repeat 2~

    [~

    mci [seek wa2 to start]~

    mci [play wa2 wait]~

    ]

  mci [close wa1]

  mci [close wa2]

  end

 

والآن ماذا عن ملفات الفيديو

to opdFile

  op dialogfileopen "*.avi "

 end

to video

localmake "a opdFile

print sentence [opened video on channel] mci (sentence [open] :a [type avivideo alias video])

print sentence [عرض فيلم الفيديو] :a

mci [play video wait]

mci [close video]

end

 

ويمكنك مراجعة أوامر mci في ملف التعليمات

 

 

 


 

Logo For All Home Page

Pc Logo Arabic Tutorials

MswLogo Arabic Tutorials

Turtle Tracks Arabic Version The Other Authors's WebSites
  Visual Basic For all Computer and Learning Learn Mathematics BadrStat For Statistical Analysis
 

أرسل رسالتك أو استفسارك الآن

يمكنك الآن أن ترسل ملاحظاتك و تعليقاتك مباشرة ، والبحث عن المواقع ذات الصلة 

 

حقوق الطبع والنسخ محفوظة للمؤلف

     آخر تعديل : الجمعة صفر 24, 1427 11:13:24 ص