> For the complete documentation index, see [llms.txt](https://portfolio.teairis.com/portfolio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portfolio.teairis.com/portfolio/max-8-projects/majors-max-rig.md).

# Majors Max Rig

Max Patch Using Mira Package for Touch Input

{% embed url="<https://youtu.be/7xrYDKNaeXY>" %}

The goal for this patch was to create and emulate a DJ controller using Max. The approach I used was plan, learn, and execute. I really wanted to learn how to use max objects and use the functions of Mira in a way that my ideas were not diminished by my knowledge. I first made a plan of all the features I wanted to achieve.

* DJ Controller
* &#x20;UI & Features
  * Two Turntables
  * Transport Control
  * X-Y Pad for Effects
  * &#x20;Toggle For effects
* &#x20;Swipe for Pitch Shift       &#x20;
  * Text Display
* &#x20;Swipe for Tempo Control (Universally in Sync)
  * Effect when changing tempo
  * Text Display
* Meters to display amplitude
* Sliders to adjust gain of different features
* Crossfader Feature&#x20;
  * Buttons to Go Hard Left, Middle, Right
* Sampler Pads for Chops
* Sampler Pads for One-Shots

I then created the UI to visualize the concept and inspire me to implement the features. Canva was used to create vinyl pictures. After completing the UI. I used the mira.multitouch help patch to learn how to capture touch input. I used various techniques to convert the output to be useful. Scale was used in many cases. Creating the sampler took a little more effort. I used the segments in the mira frade to create individual pads. I created a subpatch to send section information. The playlist\~ object does not start the section from the beginning when sending section messages. I got around this by using delays to stop the sound, send the message, and then play the sound while still being useful in performance. Throughout the patch I used send and receive objects to make the patch look neater and route signals or messages to multiple objects. The sound FXs’ sound was routed to a separate output so that when using crossfading, you can still hear the other tracks' wet effect signal.  There were many small obstacles I had to overcome for each separate system, but I continued to use the reference and max cookbook to view examples when needed. Overall, I was able to implement everything I originally planned for.

<figure><img src="https://1465693637-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fr6xVkBDa7i4N0kv1nq9w%2Fuploads%2FlFGlYKTScwgOtEaWxG67%2FIMG_CC61B169CB01-1.jpeg?alt=media&amp;token=ab182ead-6bd9-4c78-b184-2d5d5f13002b" alt=""><figcaption></figcaption></figure>
