فهرست مطالب:
- تدارکات
- مرحله 1: مفهوم
- مرحله 2: شتاب سنج را آماده کنید
- مرحله 3: ساخت دستکش
- مرحله 4: آهنگسازی در Ableton
- مرحله 5: استفاده از Firmata را شروع کنید
- مرحله 6: تست Firmata
- مرحله 7: موسیقی را با حرکات دست خود تحت تأثیر قرار دهید
- مرحله 8: کلاس آهنگ (پاداش!)
- مرحله 9: طول ، ضربات و موارد دیگر را دنبال کنید (پاداش!)
تصویری: دستکش رقص: 9 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
در این آموزش ، من یک طراحی دستکش را به شما ارائه می دهم که به شما امکان می دهد از طریق رقص با موسیقی ارتباط برقرار کنید. شما یک دستکش مجهز به شتاب سنج بسازید ، یک ترکیب را در Ableton طراحی کنید ، و سپس این دو را به روشی پیچیده یا ساده به نحوی که دوست دارید متصل کنید!
تدارکات
- Ableton (یا آزمایشی رایگان)
- یک آردوینو
- کابل های بلوز
- آهن لحیم کاری
- مقوا
- چسب حرارتی تفنگی
- تخیل زیاد
مرحله 1: مفهوم
این پروژه برای سرگرم کننده طراحی شده است. اگر نحوه عملکرد پروژه نمونه در این آموزش برای شما جالب نیست ، آن را دوباره طراحی کنید!
توصیه می کنم برخی از آهنگ های مورد علاقه خود را بگذارید ، دستان خود را به سمت آنها ببرید و ببینید چه اتفاقی می افتد. آیا دستان خود را بالا و پایین می برید؟ پهلو به پهلو؟ آهسته یا سریع؟ چه جنبه های موسیقی باعث می شود دستان خود را حرکت دهید؟ اگر لیستی از این موارد نوشته شده باشد ، احتمالاً می توانید راه هایی برای ترکیب حرکات مورد علاقه خود در الگوریتم های نهایی خود پیدا کنید.
در اینجا حرکاتی که استفاده کردم آمده است:
- حرکت سریع بالا و پایین باعث شروع آهنگ ، درامز یا بیس می شود. (اینها در نقاط مختلف آهنگ اتفاق می افتد ، نه لزوماً همزمان!)
- حرکت آرام و کج پهلو به پهلو باعث می شود تا صدای اکو بیشتر و با صدای بلند ایجاد شود.
- در یک قسمت خاص از آهنگ ، کج شدن دستم به سمت بالا باعث می شود موسیقی آرام شود - بنابراین من آن را در مشت بسته ام "گرفتار" کرده ام.
از اینها استفاده کنید یا خودتان بسازید!
(لطفاً توجه داشته باشید: این آموزش نحوه تولید موسیقی یا ملودی زنده در Ableton را پوشش نمی دهد! اگر به این دستورالعمل ها پایبند باشید ، فقط قادر خواهید بود حجم آهنگ ها یا استفاده از جلوه های صوتی را افزایش/کاهش دهید.)
مرحله 2: شتاب سنج را آماده کنید
ابتدا مشخص کنید که چه نوع شتاب سنج دارید. من از این یکی استفاده کردم ؛ هر شتاب سنج سه محوری این کار را انجام می دهد. (یا می خواهید سنسور دیگری را امتحان کنید.) مطمئن شوید که نحوه خواندن داده های شتاب سنج آردوینو را می دانید. اگر کتابخانه ای برای شتاب سنج خود از چیزی پیچیده تر از ورودی آنالوگ استفاده می کند ، لازم است بارگیری کنید.
پس از آزمایش آن با تخته نان ، سیم های کوتاه رنگی را به پین های شتاب سنج خود بچسبانید. یک سیم قرمز در پین برق ، یک سیم سیاه در پین زمین و هر سیم دیگر لازم برای ارتباط با شتاب سنج قرار دهید. (اگر شتاب سنج I2C دارید ، این پین های SCL و SDA هستند. اگر شتاب سنج آنالوگ دارید ، به احتمال زیاد برای هر یک از خروجی های x ، y و z یک پین وجود خواهد داشت.) مطمئن شوید لحیم کاری شما محکم است و که مهره ها بین پین های مجاور روی هم قرار نگیرند.
مرحله 3: ساخت دستکش
یک تکه مقوا یا کاغذ ضخیم را به شکل مستطیل کمی بزرگتر از شتاب سنج خود ببرید. شتاب سنج را به مقوا بچسبانید ، مطمئن شوید که چسب را در قسمت پایینی قرار داده اید. سپس شتاب سنج پشتی مقوایی را به پشت دستکش خود بچسبانید. برای از بین بردن تنش روی شتاب سنج ، هر سیم را آزادانه به مچ دستکش بدوزید و سپس دستکش شما آماده است. آن را به سیمهای بلندتر وصل کنید تا فضای کافی برای حرکت دست شما هنگام وصل شدن داشته باشد.
مرحله 4: آهنگسازی در Ableton
اکنون زمان آن رسیده است که آهنگی را بسازید که در نهایت از دستکش برای کنترل استفاده خواهید کرد. من حلقه های Ableton را توصیه می کنم که همه با هم خوب به نظر می رسند ، اما می توانند به تدریج تقویت شوند: ملودی ، آکورد ، باس و پرکاشن را امتحان کنید. شما می توانید از دستکش خود برای کنترل زمان پخش یا عدم اجرای هر حلقه استفاده کنید.
اگر می توانید به هر نوع صدای جالب توجه کنید که گهگاه در یک آهنگ ترکیب شود ، مانند جلوه های صوتی عجیب یا سازهای غیر متعارف ، سعی کنید یک یا دو مورد از آنها را نیز اضافه کنید! می توانید آنها را با حرکات کمتر معمول دست گره بزنید تا هر چند وقت یکبار چیز جالبی را به ارمغان بیاورید.
در اینجا پیوندی به ترکیب سازگار با آردوینو وجود دارد ، در صورتی که نمی خواهید یکی از موارد خود را بنویسید:
(متأسفانه آموزش به شما Ableton در محدوده آموزش نیست. با این حال ، فیلم های آموزشی خوبی وجود دارد و Ableton یک آزمایش رایگان 90 روزه دارد! من این ویدیو را توصیه می کنم.)
مرحله 5: استفاده از Firmata را شروع کنید
برای اینکه بتوانید Arduino خود را با Ableton ارتباط دهید ، باید از کتابخانه ای به نام Firmata استفاده کنید. همچنین باید Connection Kit for Ableton را بارگیری کنید.
در Ableton ، روی Packs> Connection Kit> Devices در منوی بالا سمت چپ کلیک کنید ، و سپس برای افزودن آن روی اولین دستگاه (Arduino) دوبار کلیک کنید. اطمینان حاصل کنید که دستگاه را به کدام آهنگ Ableton اضافه کرده اید!
مرحله 6: تست Firmata
ابتدا ، ما آزمایش می کنیم و مطمئن می شویم که آردوینو شما با Ableton در ارتباط است. این قطعه کد را در Arduino خود بارگذاری کرده و اجرا کنید:
#شامل void analogWriteCallback (پین بایت ، مقدار int) {if (IS_PIN_PWM (پین)) {pinMode (PIN_TO_DIGITAL (پین) ، OUTPUT) ؛ analogWrite (PIN_TO_PWM (پین) ، مقدار) ؛ }} void setup () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION ، FIRMATA_FIRMWARE_MINOR_VERSION) ؛ Firmata.attach (ANALOG_MESSAGE ، analogWriteCallback) ؛ Firmata.begin (57600)؛} void loop () {Firmata.sendAnalog (0، 800)؛}
این حداقل مورد نیاز برای ارتباط با Firmata است. به طور مداوم خروجی 800 (از 1024) را به پورت 0 دستگاه Firmata در Ableton ارسال می کند. اگر این کد را در Arduino خود بارگذاری می کنید در حالی که دستگاه Firmata در Ableton باز است ، باید مانند تصویر بالا باشد. (پورت 0 را روی هر چیزی در Ableton قرار دهید تا بتوانید مقادیر را مشاهده کنید.)
می توانید روی دکمه Map و سپس هر دستگاه سازگار با Firmata در Ableton کلیک کنید تا نگاشتی بین ورودی دریافت شده به آن پورت و مقدار آن دستگاه Ableton اضافه شود. نمونه های آسان شامل میزان صدای هر آهنگ یا شماره گیری در جلوه صوتی است. کاوش کنید و ببینید چه نقشه ای می توانید پیدا کنید!
مرحله 7: موسیقی را با حرکات دست خود تحت تأثیر قرار دهید
در این زمان ، شما باید مقداری موسیقی در Ableton ، یک اسکریپت Firmata در Arduino خود و یک دستکش شتاب سنج متصل کنید. کمی موسیقی بسازیم!
پورت های دستگاه آردوینو در Ableton را به موارد مختلف ترسیم کنید (حجم پیگیری را پیشنهاد می کنم) ، و سپس خطوط کد را برای ارسال داده به هر پورت از آردوینو اضافه کنید.
Firmata.sendAnalog (پورت ، حجم سطح) ؛
برای هر پورت Firmata از کدی مانند این استفاده کنید.
اگر می خواهید کاری ساده انجام دهید ، می توانید مقادیر شتاب سنج را که پردازش نشده اند به پورت های Ableton ارسال کرده و از آنجا نقشه برداری کنید. برای تجربه پیچیده تر ، می توانید تصمیم بگیرید: چه مقادیر شتاب سنج باید صداها ، چگونه و در چه زمانی را تحریک کند؟
سپس همه حلقه های Ableton خود را اجرا کنید ، کد Arduino خود را اجرا کنید و دور از رقص باشید!
(سلب مسئولیت: اگر قصد دارید هر نوع الگوریتم پیچیده ای را برای آهنگ خود ایجاد کنید ، ممکن است زمان زیادی طول بکشد تا دقیق تنظیم شود. "Dance away" ممکن است از دقت پیش بینی شده کمتر باشد.)
مرحله 8: کلاس آهنگ (پاداش!)
اگر برای شما مهم نیست که حجم صدا زیاد شود یا راه دیگری برای کاهش آن دارید ، این مرحله را رد کنید. در غیر این صورت ، ادامه مطلب را بخوانید!
من متوجه شدم که تغییر صدا از حالت خاموش به کامل در یک حرکت باعث ایجاد صداهای ناخوشایند می شود و خوب است که بتوانم به تدریج در حجم کم رنگ شوم. با این حال ، انجام این کار در محیط برنامه نویسی همزمان Arduino دشوار است. بنابراین در اینجا چند کد برای از بین بردن ظاهر شدن آمده است:
class track {public: int volume؛ int volumeGoal؛ int updateSpeed؛ آهنگ () {volume = 0؛ volumeGoal = 0 ؛ updateSpeed = 0؛ } void setVolumeGoal (int goal) {volumeGoal = goal؛ } int getVolumeGoal () {return volumeGoal؛ } void setUpdateSpeed (int fastness) {updateSpeed = fastness؛ } int getVolume () {حجم بازگشت؛ } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed؛ } else if ((volume = updateSpeed)) {volume += updateSpeed؛ }} void mute (int fastness) {volumeGoal = 50؛ updateSpeed = ثبات ؛ } void full (int fastness) {volumeGoal = 950؛ updateSpeed = ثبات ؛ }}؛
هر آهنگ دارای حجم فعلی ، حجم هدف و سرعتی است که به سمت آن حجم هدف حرکت می کند. وقتی می خواهید میزان صدای آهنگ را تغییر دهید ، با setVolumeGoal () تماس بگیرید. هر بار که عملکرد حلقه () را در Arduino خود اجرا می کنید ، در هر آهنگ () updateVolume () را فراخوانی کنید و سپس این اطلاعات را با getVolume () به Firmata ارسال کنید. تغییر سرعت به روز رسانی برای محو شدن سریعتر یا تدریجی تر! همچنین ، در صورت امکان از تنظیم صدا بر روی 0 خودداری کنید. در عوض ، آن را روی مقدار بسیار پایینی تنظیم کنید (پیش فرض در بی صدا () 100 است).
مرحله 9: طول ، ضربات و موارد دیگر را دنبال کنید (پاداش!)
شما می توانید کارهای زیادی انجام دهید تا صدای حاصل از پروژه شما راحت تر به گوش برسد. در اینجا چند گزینه وجود دارد:
می توانید مدت زمان اجرای آهنگ را پیگیری کنید. برای انجام این کار ، باید زمان شروع آهنگ را مشخص کنید. من یک حلقه while را در تابع setup () توصیه می کنم که اجرای کد شما را تا زمانی که حرکت دست را حس کند به تأخیر می اندازد. زمان شروع آهنگ را با استفاده از millis () در یک متغیر ذخیره کنید و بررسی کنید که هر بار که حلقه می کنید () چقدر طول می کشد. می توانید از این ویژگی برای فعال یا غیرفعال کردن برخی ویژگی ها در زمان های خاص آهنگ استفاده کنید.
اگر می دانید مدت زمان حلقه های شما در میلی ثانیه است ، همچنین می توانید تعداد حلقه هایی را که برای درک دقیق تر ساختار ساختار آهنگ گذرانده اید ، ردیابی کنید!
یکی دیگر از مشکلات احتمالی که ممکن است با آن روبرو شوید این است که زمان شروع و توقف پخش آهنگ را متوقف کنید. من این مسئله را با پیگیری میزان ضرب آهنگی که در حال حاضر در آن قرار دارد حل کردم. سپس می توانم به جای قطع بلافاصله آهنگ ها را برای هر تعداد ضربه بعد از یک حرکت پخش کنم. این باعث می شود همه چیز بسیار روان تر جریان یابد. در اینجا مثالی آورده شده است:
if (millis () - lastLoop> = 4000) {حلقه += 1 ؛ lastLoop = millis ()؛ برای (int j = 0؛ j <8؛ j ++) {beatNow [j] = false؛ }} beat = (millis () - lastLoop) / 250؛ if (beat! = lastBeat) {lastBeat = ضرب؛ beatsLeft -= 1 ؛ }
مطمئن شوید که حجم ها را بر اساس مقادیر beatNow [beat] و/یا beatsLeft به روز کنید. در صورتی که می خواهید آن را در عمل مشاهده کنید ، کد نمونه ای که تقریباً همه چیز در این آموزش را شامل می شود ، به همراه برخی از آنها ضمیمه شده است.
توصیه شده:
تغییر صفحه رقص L-tek برای نظرسنجی در 1000Hz در ویندوز و لینوکس: 9 مرحله
تغییر صفحه رقص L-tek برای نظرسنجی در 1000Hz در ویندوز و لینوکس: چرا این کار را می کنید؟ اگر تا به حال روی یک آهنگ 125 BPM به نمودار رفته اید ، ممکن است تعجب کنید که این بوی اسپایکی چیست؟ چرا زمان بندی به اسلات های گسسته تقسیم می شود؟ ITG و DDR دارای پنجره های زمان بندی فوق العاده محکمی هستند و با این
موسیقی رقص تابوت با استفاده از آردوینو: 6 مرحله
Coffin Dance Music با استفاده از آردوینو: در این آموزش من نحوه استفاده از آردوینو برای ساخت موسیقی با استفاده از بلندگو (بدون نیاز به ماژول MP3) را توضیح می دهم. ابتدا این فیلم آموزشی را تماشا کنید
آردوینو-تابوت-رقص-تم: 4 مرحله
Arduino-Coffin-Dance-Theme: در این آموزش ، بیایید نحوه پخش صدای تم رقص تابوت در Arduino Uno را ببینیم
برپایی جشن رقص نهایی: 6 مرحله
برپایی جشن رقص نهایی: سرگرمی اشکال مختلفی دارد ، اما مردم از انجام کارهای یکسان بارها و بارها خسته می شوند ، بنابراین دیگر آمدن را متوقف می کنند. چرا از روش جدیدی برای سرگرمی دوستان/مهمانان خود استفاده نمی کنید تا آنها را برای بازگشت بیشتر نگه دارید؟ جشن رقص چیزی نیست
دستکش جادوگر: دستکش کنترل کننده آردوینو: 4 مرحله (همراه با تصاویر)
دستکش جادوگری: یک دستکش کنترل کننده آردوینو: دستکش جادوگر. در پروژه من یک دستکش ساخته ام که می توانید از آن برای بازی بازیهای جادویی مورد علاقه خود به شیوه ای سرد و همهجانبه و تنها با استفاده از چند دارایی اصلی آردوینو و آردوینو استفاده کنید. می توانید بازی هایی مانند طومارهای بزرگتر انجام دهید یا