https://cycling74.com/wiki/api.php?action=feedcontributions&user=Gtaylor%40rtqe.net&feedformat=atomCycling '74 Wiki - User contributions [en]2015-03-03T20:47:09ZUser contributionsMediaWiki 1.19.1https://cycling74.com/wiki/index.php?title=Asia/Pacific_(Schools)Asia/Pacific (Schools)2014-07-25T19:08:33Z<p>Gtaylor@rtqe.net: /* Singapore */</p>
<hr />
<div>===Australia===<br />
<br />
----<br />
<br />
'''The University of Adelaide, Elder Conservatorium of Music'''<br />
<br />
'''Enrollment Contact''': Christian Haines, christian.haines@adelaide.edu.au<br />
<br />
'''Software Taught''': Max/MSP, Ableton Live, Plogue Bidule, SuperCollider, Avid ProTools, Apple Logic<br />
<br />
'''Platform''': Mac<br />
<br />
'''Frequency''': Annually<br />
<br />
'''Address''': University of Adelaide<br />
<br />
North Terrace<br />
<br />
Adelaide SA 5005, Australia<br />
<br />
(08)8303 4455<br />
<br />
----<br />
<br />
'''University of Sydney - Sydney Conservatorium of Music, Music Technology Lab'''<br />
<br />
'''Enrollment Contact''': Dr. Ivan Zavada, ivan.zavada@sydney.edu.au<br />
<br />
'''Software Taught''': Max/MSP<br />
<br />
'''Course Offered''': Sound Synthesis<br />
<br />
'''Platform''': Macintosh<br />
<br />
'''Frequency''': Semester<br />
<br />
'''Instructor''': Dr. Ivan Zavada<br />
<br />
'''More Information''': http://www.music.usyd.edu.au/<br />
<br />
'''Address''': Sydney Conservatorium of Music<br />
<br />
Macquarie Street<br />
<br />
Sydney CBD NSW 2000, Australia<br />
<br />
(02)9351 1216<br />
<br />
----<br />
<br />
'''Box Hill Institute Center of Performing Arts'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter<br />
<br />
'''Contact''': k.purcell@bhtafe.edu.au<br />
<br />
'''Courses Offered''': Music Technology 2, Music Technology 3, Music Production 6<br />
<br />
'''Instructors''': Robin Fox and Kevin Purcell<br />
<br />
'''More Information''': Jitter is taught in the 4th semester of study. Tuition moves toward the use of MSP for physical computing and sensor-based activities using proprietary wireless systems with Elektrotap Teaboxes.<br />
<br />
'''Address''': Box Hill Institute<br />
<br />
465 Elgar Road<br />
<br />
Box Hill VIC 3128, Australia<br />
<br />
1300269 445<br />
<br />
----<br />
<br />
'''Monash University, School of Music'''<br />
<br />
'''Software Taught''': Max/MSP<br />
<br />
'''Contact''': Peter.Mcilwain@arts.monash.edu.au<br />
<br />
'''Courses Offered''': Chief Practical Study<br />
<br />
'''Instructor''': Peter Mcilwain<br />
<br />
----<br />
<br />
'''Victorian College of the Arts'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter<br />
<br />
'''Contact''': production@vca.unimelb.edu.au<br />
<br />
'''Courses Offered''': Sound Design Process and Aesthetics, Sound and Performance, Production Skills<br />
<br />
'''Instructor''': Roger Alsop<br />
<br />
----<br />
<br />
'''University of Western Sydney, School of Contemporary Arts'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter<br />
<br />
'''Contact''': j.lancashire@uws.edu.au<br />
<br />
'''Courses Offered''': Music Technology 3, 4, 5, and 6<br />
<br />
'''Instructors''': Dr. Jim Franklin, Ms. Emma Stacker<br />
<br />
----<br />
<br />
===China===<br />
<br />
----<br />
<br />
'''City University of Hong Kong, School of Creative Media'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter, Avid, Final Cut Pro, After effects<br />
<br />
'''Contact''': smyuk@cityu.edu.hk<br />
<br />
'''Courses Offered''': Expanded Cinema<br />
<br />
'''Instructor''': Ip Yuk-Yiu <br />
<br />
----<br />
<br />
'''Chinese University of Hong Kong, Shatin'''<br />
<br />
'''Software Taught''': Max/MSP, ProTools, Kyma<br />
<br />
'''Contact''': halli@lhi.is<br />
<br />
'''Courses Offered''': Electronic Music, Computer-aided Composition<br />
<br />
'''Instructor''': Hau-man Lo<br />
<br />
'''Address''': Chinese University of Hong Kong, <br />
<br />
Shatin, N.T. <br />
<br />
Hong Kong SAR <br />
<br />
PR of China<br />
<br />
----<br />
<br />
'''University of Hong Kong, Music Department'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter<br />
<br />
'''Contact''': nathaniel@nathanieltullphillips.com<br />
<br />
'''Courses Offered''': Electronic and Computer Music, Music Technology, Audio Digital Signal Processing<br />
<br />
'''Instructor''': Nathaniel Tull Phillips<br />
<br />
'''Address''': University of Hong Kong, Pokfulam Road<br />
<br />
----<br />
<br />
'''Hong Kong Academy for Performing Arts, School of Music'''<br />
<br />
'''Software Taught''': Max/MSP, Pluggo, CSound, Common Lisp Music, Reaktor, ProTools, Cal in Cakewalk<br />
<br />
'''Contact''': cmak@hkapa.edu<br />
<br />
'''Courses Offered''': Music Information Technology, Electronic Music, Computer-aided Composition, Film Music, Music for Dance and Theatre<br />
<br />
'''Instructors''': Clarence Mak, Law Wing Fai, Vincent Pang, Lo Hau Man<br />
<br />
'''Address''': Hong Kong Academy for Performing Arts, 1 Gloucester Road, Wanchai Hong Kong<br />
<br />
----<br />
<br />
'''复旦大学上海视觉艺术学院 Shanghai Institute of Visual Art, College of New Media'''<br />
<br />
'''Contact''': Tobias Rosenberger tobias@tobiasrosenberger.de<br />
<br />
'''Course Offered''': New Media Art, New Media Exhibition Design<br />
<br />
'''Software Taught''': Max/MSP/Jitter<br />
<br />
'''Frequency''': Semester<br />
<br />
'''Instructor''': Tobias Rosenberger<br />
<br />
'''Address''': Songjiang University Town, Shanghai, China<br />
<br />
----<br />
<br />
'''Renmin University of China, School of Arts'''<br />
<br />
'''Platform''': Mac, Win<br />
<br />
'''Address''': 59 zhongguancun St.,<br />
<br />
China Beijing Hai Dian Qu<br />
<br />
----<br />
<br />
===Japan===<br />
'''Tokyo University of the Arts'''<br />
<br />
'''Department''': Musical Creativity and the Environment<br />
<br />
'''Software Taught''': Max/MSP/Jitter, ProTools, and more.<br />
<br />
'''Contact''': mce-office@ml.geidai.ac.jp<br />
<br />
'''Web site''': http://mce.geidai.ac.jp/<br />
<br />
'''Address''': 1-25-1, Senju, Adachi-ku, Tokyo, 120-0034<br />
<br />
----<br />
<br />
'''IAMAS'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter, ProTools<br />
<br />
'''Contact''': info@iamas.ac.jp<br />
<br />
'''Courses Offered''': DSP Course Seminar, Time-based Media Studio<br />
<br />
'''Instructors''': Masayuki Akamatsu, Masahiro Miwa<br />
<br />
'''Address''': 3-95, Ryouke, Ogaki, 503-0014 <br />
<br />
----<br />
<br />
'''宮城教育大学, Miyagi University'''<br />
<br />
'''Department''': Graduate School of Project Design<br />
<br />
'''Course Offered''': Intelligent Media<br />
<br />
'''Software Taught''': Max/MSP<br />
<br />
'''Platform''': Mac, Win<br />
<br />
'''Frequency''': Semester<br />
<br />
'''Instructor''': Hideki Kozima, Prof.<br />
<br />
'''Address''': 宮城教育大学<br />
<br />
日本<br />
<br />
〒980-0845 宮城県仙台市青葉区荒巻字青葉149番地<br />
<br />
022-214-3300<br />
<br />
----<br />
<br />
'''昭和音楽大学附属音楽教室小田原校, Showa Academia Musicae, Music Composition Dept.'''<br />
<br />
'''Enrollment Contact''': musiquelab@gmail.com<br />
<br />
'''Classes Offered''': Computer Music I, II, III, IV<br />
<br />
'''Software Taught''': MaxMSP/Jitter, Logic studio, Pro Tools, Finale<br />
<br />
'''Platform''': Macintosh<br />
<br />
'''Frequency''': Semester<br />
<br />
'''Instructor''': Yasuhiro Otani<br />
<br />
'''Address''': 昭和音楽大学 附属音楽教室小田原校<br />
<br />
２丁目-３−１０ Sakaecho<br />
<br />
Odawara, Kanagawa Prefecture 250-0011, Japan<br />
<br />
0465-24-1192<br />
<br />
----<br />
<br />
===Korea===<br />
<br />
----<br />
<br />
'''Konkuk University, Moving Image'''<br />
<br />
'''Software Taught''': Max5, Cyclops, Ableton Live, Modul8, Processing, VVVV, Open CV, etc...<br />
<br />
'''Enrollment Contact''': kunzt@paran.com<br />
<br />
'''Course Offered''': Interactive Design<br />
<br />
'''Platform''': Mac, Win<br />
<br />
'''Frequency''': Annually<br />
<br />
'''Instructor''': Prof.Sanghyun Park<br />
<br />
'''Comments''': English, Deutsch, Korean OK<br />
<br />
'''Address''': Konkuk University<br />
<br />
1, Hwayang-dong<br />
<br />
Gwangjin-gu, Seoul, South Korea<br />
<br />
02 450-3114<br />
<br />
----<br />
<br />
'''Hanyang University Graduate School, New Media Music'''<br />
<br />
'''Software''': Max/MSP/Jitter, Pluggo, Csound, Audiosculpt, Sound Hack, Open Music, Pro Tools, Nuendo, Peak<br />
<br />
'''Contact''': jongwooyim@hanyang.ac.kr<br />
<br />
'''Courses Offered''': Masters Degree Program in Computer Music: Computer Music Composition, History and Studio Techniques, MIDI and Real Time Programming with Max and MSP, Sound Analysis and Synthesis, Comprehensive Music Concrete, Live Electronic and Algorithmic Composition Studies, Multimedia<br />
<br />
'''Summer Courses Offered''': Yearly One-Week Summer Computer Music Workshops in late June which focus on Max/MSP<br />
<br />
'''Instructors''': Jongwoo Yim, Richard Dudas, Hanshin Kim, Byongmoo Lee, Jiyoun Choi, Youngmee Lymn<br />
<br />
'''More Information''': http://music.hanyang.ac.kr/, http://www.richarddudas.com/hanyang/ Must be a student of the school to attend any of the degree program classes, although enrollment in the one-week Summer Workshops is open to anyone.<br />
<br />
----<br />
<br />
'''Korea Advanced Institute of Science and Technology'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter<br />
<br />
'''Contact''': senylee@ccrma.stanford.edu<br />
<br />
'''Courses Offered''': Sound Design &amp; Programing, Interactive Multiedia Performance<br />
<br />
'''Instructors''': Bonchol Koo, Seungyon Lee <br />
<br />
'''Address''': KAIST<br />
<br />
373-1 Guseong-dong<br />
<br />
Yuseong-gu, Daejeon, South Korea<br />
042 350-2114<br />
<br />
----<br />
<br />
'''Korea National University of Arts'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter<br />
<br />
'''Contact''': trebari@knua.ac.kr<br />
<br />
'''Courses Offered''': Music Programming 1,2, Real Time Control, Special Subject (Jitter)<br />
<br />
'''Instructors''': Jaeho Chang, Christopher Dobrian<br />
<br />
'''Note''': Must be a student of the school (The Korean National University of Arts) to attend any of these classes. <br />
<br />
----<br />
<br />
'''Kookmin University, Dept. of Contents Design, Graduate School of Techno Design'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter<br />
<br />
'''Contact''': distortion@kookmin.ac.kr<br />
<br />
'''Courses Offered''': Interactive Media Design<br />
<br />
'''Instructors''': Seung Hwan Oh<br />
<br />
'''Platform''': Mac<br />
<br />
'''Address''': Kookmin University, 861-1, Jeongneung-dong, Seongbuk-Gu, Seoul, 136-708<br />
<br />
----<br />
<br />
'''Seoul National University''': Dept. of Sculpture'''<br />
<br />
'''Software Taught''': Max/MSP/Jitter, Arduino<br />
<br />
'''Course Offered''': Media Installation<br />
<br />
'''Platform''': Mac, Win<br />
<br />
'''Frequency''': Semester<br />
<br />
'''Instructor''': ISU CHO<br />
<br />
'''Address''': Seoul National University<br />
<br />
대한민국<br />
<br />
서울특별시 관악구 신림동 산56-1<br />
<br />
02 880-5114<br />
<br />
----<br />
<br />
===New Zealand===<br />
<br />
----<br />
<br />
'''University of Waikato Conservatorium of Music'''<br />
<br />
'''Enrollment Contact''': A/Prof. Ian Whalley , musik@waikato.ac.nz<br />
<br />
'''Software Taught''': Max/MSP<br />
<br />
'''Course Offered''': Generative Systems, Sound Synthesis, Interaction<br />
<br />
'''Platform''': Macintosh<br />
<br />
'''Frequency''': Semester<br />
<br />
'''Instructor''': A/Prof. Ian Whalley<br />
<br />
'''More Information''': http://www.waikato.ac.nz/fass/about/school-of-arts/music <br />
&lt;http://www.music.usyd.edu.au/&gt;, <br />
http://www.waikato.ac.nz/fass/study/subjects/music/digital-music<br />
<br />
'''Address''': Conservatorium of Music<br />
<br />
The University of Waikato <br />
Private Bag 3105 <br />
Hamilton 3240<br />
<br />
New Zealand<br />
<br />
+64 7 838 4380<br />
<br />
----<br />
<br />
===Singapore===<br />
<br />
----<br />
<br />
'''Nanyang Technological University, School of Art, Design &amp; Media'''<br />
<br />
'''Enrollment Contact''': PerMagnus Lindborg, permagnus@ntu.edu.sg<br />
<br />
'''Software Taught''': Max/MSP/Jitter, Digital Performer, Audiosculpt, ProTools, DSP02 etc.<br />
<br />
'''Courses Offered''': Interactive Media Workshop 1 &amp; 2, Music Composition, Soundscape Design<br />
<br />
'''Platform''': Macintosh<br />
<br />
'''Frequency''': Annually<br />
<br />
'''Instructor''': PerMagnus Lindborg<br />
<br />
'''Address''': Nanyang Technological University, <br />
<br />
81 Nanyang Dr<br />
<br />
Singapore 637458<br />
<br />
----<br />
<br />
'''Nanyang Polytechnic School of Interactive &amp; Digital Media'''<br />
<br />
'''Enrollment Contact''': Andrew Chuan Khoo, andrew_khoo@nyp.gov.sg<br />
<br />
'''Software Taught''': Max 5<br />
<br />
'''Course Offered''': Special Topic 2<br />
<br />
'''Platform''': Mac<br />
<br />
'''Frequency''': Semester<br />
<br />
'''Instructor''': Andrew Chuan Khoo<br />
<br />
'''Comments''': Taught as an elective in our 3-year diploma programme inInteraction Design.<br />
<br />
'''Address''': Nanyang Polytechnic<br />
<br />
180 Ang Mo Kio Avenue 8<br />
<br />
Singapore 569830<br />
<br />
6451 5115<br />
<br />
----<br />
<br />
<br />
'''Yong Siew Toh Conservatory of Music, National University of Singapore'''<br />
<br />
'''Enrollment Contact''': Tan Wei Boon, Admissions, musadmissions@nus.edu.sg<br />
<br />
'''Software Taught''': Max/MSP, Csound<br />
<br />
'''Courses Offered''': Computer Music I &amp; II<br />
<br />
'''Platform''': Mac<br />
<br />
'''Frequency''': Annually<br />
<br />
'''Instructor''': Steven M. Miller<br />
<br />
'''Additional Info''': For more info see YSTCM website''': http://www.music.nus.edu.sg<br />
<br />
'''Address''': Yong Siew Toh Conservatory of Music, National University of Singapore<br />
<br />
3 Estate Office Dr<br />
<br />
Singapore 117485<br />
<br />
----<br />
<br />
[[Category:SchoolsTeachingMax]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Schools_That_Teach_MaxSchools That Teach Max2014-07-25T18:56:11Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>This page provides a link to listings of educational institutions around the world where Max, MSP, and Jitter are taught. Teachers, you are encouraged to add yours here.<br />
<br />
These listings describe places where Max is part of a regular curriculum. For listings of upcoming workshops, see the [[Max_Workshops|Max Workshops]] page.<br />
<br />
[[United_States/Canada_(Schools)|United States/Canada]]<br />
<br />
[[Central_America/South_America_(Schools)|Central America/South America]]<br />
<br />
[[UK/Europe/Asia_Minor_(Schools)|UK/Europe/Asia Minor]]<br />
<br />
[[Middle_East/Africa_(Schools)|Middle East/Africa]]<br />
<br />
[[Asia/Pacific_(Schools)|Asia/Pacific]]<br />
<br />
[[Category:PeoplePlaces]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Documentation_and_ResourcesMax Documentation and Resources2014-07-16T02:01:33Z<p>Gtaylor@rtqe.net: /* Max Tutorial for Downloading */</p>
<hr />
<div>In addition to the materials on this Wiki, you can access the complete documentation for versions 5 and 6 of Max online, in addition to several written tutorials and books about Max.<br />
<br />
==Online Max Documentation==<br />
<br />
[//cycling74.com/docs/max6/dynamic/c74_docs.html#docintro Max 6 online documentation]<br />
<br />
[//cycling74.com/docs/max5/vignettes/intro/docintro.html Max 5 online documentation]<br />
<br />
==Max Tutorials for Downloading==<br />
<br />
'''Author''': Peter Elsea<br />
<br />
'''Description''': Popular Max reference material<br />
<br />
'''More information''': [http://peterelsea.com/maxtutorials.html Click here to access the PDF downloads]<br />
<br />
==Books about Max==<br />
<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-lyon.jpg&lt;/img&gt;<br />
<br />
'''''Designing Audio Objects for Max/MSP and Pd'''''<br />
<br />
'''Author''': Eric Lyon<br />
<br />
'''Description''': This book guides the reader step-by-step through the process of designing externals, from concept through implementation in English.<br />
<br />
'''More information''': [//www.amazon.com/Designing-Audio-Objects-Max-MSP/dp/B009LLXIVC Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: guía de programación para artistas'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Music and sound focused academic text on how to program with MaxMSP, written in Spanish.<br />
<br />
'''More information''': [//www.cmmas.org/store.php?lan=es&amp;amp;accion=viewDetail&amp;amp;id=33 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto2.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Volume 2 Max 6: Interface'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//itunes.apple.com/us/book/max-6-interface/id572777088?mt=11 Purchase English e-book online]<br />
<br />
[//itunes.apple.com/us/book/max-6-interfaz/id573988491?mt=11 Purchase Spanish e-book online]<br />
<br />
[//cmmas.org/cmmas_eventos.php?lan=en&amp;id=708 Read the CMMAS announcement]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto3.png&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Max 6: Synthesis I'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//cmmas.org/ebook/libros_max.php Purchase the English or Spanish e-book online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-cipriani.jpg&lt;/img&gt;<br />
<br />
'''''ELECTRONIC MUSIC AND SOUND DESIGN: Theory and Practice with Max/MSP - Vol. I and 2'''''<br />
<br />
'''Authors''': Alessandro Cipriani and Maurizio Giri (Foreword by David Zicarelli)<br />
<br />
'''Description''': Explains sound design, music and concepts through Max, and gives lots of examples throughout. Written in Italian and translated to English.<br />
<br />
'''More information''': [//www.virtual-sound.com/en/index.php?option=com_content&amp;amp;view=article&amp;amp;id=66&amp;amp;Itemid=88 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-manzo.png&lt;/img&gt;<br />
<br />
'''''Max/MSP/Jitter for Music: A Practical Guide to Developing Interactive Music Systems for Education and More'''''<br />
<br />
'''Author''': V. J. Manzo<br />
<br />
'''Description''': Use Max to write custom software for musical interaction. The book will discuss the concepts needed to complete your project, complete many projects in a step-by-step style guide, and look at numerous included software examples of working systems.<br />
<br />
'''More information''': [//www.vjmanzo.com/clients/vjmanzo/mmjformusic.htm Excerpt and purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-winkler.jpg&lt;/img&gt;<br />
<br />
'''''Composing Interactive Music: Techniques and Ideas Using Max'''''<br />
<br />
'''Author''': Todd Winkler<br />
<br />
'''More information''': [//www.amazon.com/exec/obidos/ASIN/0262731398/qid=1017979673/sr=1-2/ref=sr_1_2/002-6322037-2624834 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-akamatsu.gif&lt;/img&gt;<br />
<br />
オデッセイ / : A Max Odyssey Max/MSP/Jitterの総合解説書<br />
<br />
トランスMaxエクスプレス / Trans Max Express<br />
<br />
Max/MSPの総合解説書、<br />
<br />
The Max Book (4.5) オブジェクト・リファレンス、<br />
<br />
The Jitter Book (1.5) クイック・チュートリアル、99ページ'''''<br />
<br />
'''Author''': Masayuki Akamatsu<br />
<br />
'''Description''': Numerous Max books in Japanese<br />
<br />
'''More information''': [//www.iamas.ac.jp/~aka/ IAMAS website Publications]<br />
<br />
----<br />
&lt;img&gt;http://julienbayle.net/public/smallEn.png&lt;/img&gt;<br />
<br />
Max for Live Ultimate Zen Guide<br />
<br />
'''Author''': Julien Bayle<br />
<br />
'''Description''': A guide explaining the Max integration inside Ableton Live, the LOM use and much more<br />
<br />
'''More information''': Available in [https://leanpub.com/le-guide-ultime-et-zen-de-max-for-live french] and [https://leanpub.com/Max-for-Live-Ultimate-Zen-Guide english]<br />
<br />
[[Category:Resources]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=MaxURL_examplesMaxURL examples2014-07-10T18:42:30Z<p>Gtaylor@rtqe.net: Reverted edits by Fortcoffres (talk) to last revision by Gtaylor@rtqe.net</p>
<hr />
<div><br />
Here are some examples of using the MaxURL object, introduced in Max 6.1.7<br />
<br />
* [[MaxURL_Weather_Report|OpenWeatherMap]]<br />
* [[MaxURL_SoundCloud|Soundcloud]]<br />
<br />
<br />
[[Category:MaxTopics]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=MaxURL_examplesMaxURL examples2014-06-30T14:40:03Z<p>Gtaylor@rtqe.net: Reverted edits by Erictenne (talk) to last revision by Apask</p>
<hr />
<div><br />
Here are some examples of using the MaxURL object, introduced in Max 6.1.7<br />
<br />
* [[MaxURL_Weather_Report|OpenWeatherMap]]<br />
* [[MaxURL_SoundCloud|Soundcloud]]<br />
<br />
<br />
[[Category:MaxTopics]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Talk:Max_Documentation_and_ResourcesTalk:Max Documentation and Resources2014-06-24T06:18:38Z<p>Gtaylor@rtqe.net: Blanked the page</p>
<hr />
<div></div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Talk:Max_Documentation_and_ResourcesTalk:Max Documentation and Resources2014-06-24T06:15:10Z<p>Gtaylor@rtqe.net: Reverted edits by Celexty00 (talk) to last revision by Zhangqianqian</p>
<hr />
<div>== Four Tips to Distinguish Impact Crusher and Hammer Crusher ==<br />
<br />
Impact Crusher is new high-efficiency crushing equipment, which is characterized by small size, simple structure, large crushing ratio (up to 40), low energy consumption, large capacity, uniform particle size, and selective crushing effect is excellent crushing equipment. Impact Crusher is widely used in mining, metallurgy, chemical industry, construction, roads, railways and other engineering and construction fields.<br />
<br />
Technical advantages of impact crusher compared with the hammer crusher<br />
<br />
1. Impact Crusher applies to both the soft material but also for very large hardness of the material<br />
<br />
Impact Crusher hammer mechanical clamping plate firmly fixed on the rotor structure, when the rotor rotates with great inertia. Relative to the hammer crusher (hammer was suspended state), Impact Crusher rotor has greater momentum to meet the Crushing harder materials, and lower energy consumption.<br />
<br />
2. Impact crusher can effectively handle a large amount of moisture of the material, to prevent clogging of the crusher.<br />
<br />
When excessive moisture in materials handling, Impact Crusher feed chute and back panels can be equipped with heating devices to prevent the adhesion of materials. Impact Crusher not be equipped with the bottom screen can effectively prevent clogging. The hammer crusher cannot be used to prevent heating the adhesive material and shall be equipped with a bottom screen, increasing the possibility of clogging.<br />
<br />
3. Wear and tear of wearing parts smaller than the hammer crusher, metal utilization<br />
<br />
Hammer Impact Crusher wear looking only appear in the material side. When the rotor speed is normal, the feed plate hammer will fall to the surface (of attack), board hammer back and sides are not being worn. Looking even wear of the material on this side is very small. And the bottom of the grinding rod is also very easy to replace. Impact Crusher hammer metal utilization can be as high as 45% -48%.<br />
<br />
4. You can adjust the particle size is convenient and flexible, wide range of adjustment<br />
<br />
Impact crusher can adjust the particle size variety of ways, such as adjusting the rotor speed, adjust the back plate and the grinding chamber clearance and so on. Gap adjustment by mechanical or hydraulic adjustment, hydraulic adjustment system can easily operate buttons or fortune through local control system to complete clearance adjustment. The hammer crusher adjust the particle size can only be achieved by replacing the bottom screen. <br />
<br />
crushing equipment: http://www.chinaquarry.com/products_show/jaw_crusher.html<br />
<br />
Impact Crusher: http://www.chinaquarry.com/products_show/Impact_crusher.html<br />
<br />
== Quality Is the Determined Factor of Impact Crusher ==<br />
<br />
Quality of the product determines the quality of its production, so to strengthen impact crusher quality management to improve aggregate production, strengthen the machine quality of impact crusher, must be from two aspects: The first is to improve their own quality of production line workers, and the second is to enhance the image of mining machinery enterprises and social awareness.<br />
<br />
Impact crusher can crush each kind of coarse, medium, fine cubic material(granite, limestone and concrete etc) with feeding size not more than 500mm and crushing strength not more than 350MPa.Thus Impact Crusher is widely applied to secondary and tertiary crushing of various ores and medium-hard materials in railway, highway, energy, cement, chemical industry construction etc. Impact crusher is often used for primary, secondary and tertiary crushing of brittle material below medium hardness such as limestone, coal, calcium carbide, quartz, dolomite, ferric sulfide mineral, calcium sulfate and industrial chemicals.<br />
<br />
High -efficient technologies quality management can reduce the loss, improve production efficiency. And gradually establish a good technology management system; improve the coordination ability and skill level of technical department technical staff. Through the technologies quality management in the new impact crusher process, gradually enhance the staff's quality consciousness and sense of responsibility. Strengthen impact crusher aggregate production management to improve the quality, inspire staff enthusiasm and creativity, improve the staff's theoretical knowledge and operational capacity, so that employees with a positive attitude and higher quality to create the bright future of their own businesses and.<br />
<br />
New impact crusher quality management is the most important factor of mining machinery development. A system of quality management program, has greatly improved the quality of the machine produced aggregates. In the meantime, that will also improve the impact crusher's overall competitiveness and corporate management.<br />
<br />
Quality is a business card, an effective techniques quality management can promote ore stone production process and quality control, quality system in accordance with the national program files and documents required to carry out the job effectively, for company's product quality to provide standardized protection. <br />
<br />
impact crushing machine: http://www.sell-crusher.com/pro/p2.html<br />
<br />
impact crusher: http://www.chinaquarry.com/products_show/Impact_crusher.html<br />
<br />
== How to Control the Running of Rotary Kiln? ==<br />
<br />
Rotary kiln is the main equipment in the system, but kiln firing response requires a stable combustion conditions, so that the combustion condition is the key part of the kiln system. Regardless of theory or actual production, kiln hood displayed in these two data have extraordinary significance. When the system is running, it should be controlled carefully.<br />
<br />
First of all, when the high temperature data at this location (preferably a large kiln hood when ≧ 1150 ℃) and stable system of coal consumption can be reduced. It is also important that the temperature data is an observation point performance and clinker cooler quenching effect. When the secondary air temperature ≧ 1150 ℃ (large kiln hood). Description clinker quenching effect is good (reasonable detection position). The opposite is not good enough.<br />
<br />
Secondly, it is the whole point of firing pulverized coal combustion air runtime with balance. Firing pulverized coal combustion air system needs about 93 percent go through the kiln hood (the rest is supplied by coal burner fan). When the kiln hood pressure data stabilized at 0-30pa time (to real data and with the size of the kiln hood), it shows the amount of air passing is stable. Such coal combustion conditions (excess air ratio) can be guaranteed.<br />
<br />
Therefore, only the two data stable combustion conditions and combustion conditions can be stabilized before the pulverized coal (other conditions unchanged). Stable operation of the system will have protection. On the other hand, it is difficult to stabilize other operating parameters of the system. <br />
<br />
To stable the operation of this parameter, it will associate the cooler for wind turbine exhaust fan opening and the head of operations. Associate open coal mill downtime. So all the fans all parts of the kiln into a complete system to ensure accurate and stable system of air usage. Changed the way people had to be adjusted first generation and exhaust fan mistake. Also making people stop in the open coal mill to pay attention to the amount of the increase for the wind.<br />
<br />
lime pit: http://www.crushing-mill.com/lime-rotary-kiln/<br />
<br />
Rotary kiln: http://www.milling-equipment.com/products/p343.html</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Documentation_and_ResourcesMax Documentation and Resources2014-06-10T02:27:17Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In addition to the materials on this Wiki, you can access the complete documentation for versions 5 and 6 of Max online, in addition to several written tutorials and books about Max.<br />
<br />
==Online Max Documentation==<br />
<br />
[//cycling74.com/docs/max6/dynamic/c74_docs.html#docintro Max 6 online documentation]<br />
<br />
[//cycling74.com/docs/max5/vignettes/intro/docintro.html Max 5 online documentation]<br />
<br />
==Max Tutorial for Downloading==<br />
<br />
'''Author''': Peter Elsea<br />
<br />
'''Description''': Popular Max reference material<br />
<br />
'''More information''': [ftp://arts.ucsc.edu/pub/ems/MaxTutors/ Click here to access the PDF downloads]<br />
<br />
==Books about Max==<br />
<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-lyon.jpg&lt;/img&gt;<br />
<br />
'''''Designing Audio Objects for Max/MSP and Pd'''''<br />
<br />
'''Author''': Eric Lyon<br />
<br />
'''Description''': This book guides the reader step-by-step through the process of designing externals, from concept through implementation in English.<br />
<br />
'''More information''': [//www.amazon.com/Designing-Audio-Objects-Max-MSP/dp/B009LLXIVC Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: guía de programación para artistas'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Music and sound focused academic text on how to program with MaxMSP, written in Spanish.<br />
<br />
'''More information''': [//www.cmmas.org/store.php?lan=es&amp;amp;accion=viewDetail&amp;amp;id=33 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto2.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Volume 2 Max 6: Interface'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//itunes.apple.com/us/book/max-6-interface/id572777088?mt=11 Purchase English e-book online]<br />
<br />
[//itunes.apple.com/us/book/max-6-interfaz/id573988491?mt=11 Purchase Spanish e-book online]<br />
<br />
[//cmmas.org/cmmas_eventos.php?lan=en&amp;id=708 Read the CMMAS announcement]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto3.png&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Max 6: Synthesis I'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//cmmas.org/ebook/libros_max.php Purchase the English or Spanish e-book online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-cipriani.jpg&lt;/img&gt;<br />
<br />
'''''ELECTRONIC MUSIC AND SOUND DESIGN: Theory and Practice with Max/MSP - Vol. I and 2'''''<br />
<br />
'''Authors''': Alessandro Cipriani and Maurizio Giri (Foreword by David Zicarelli)<br />
<br />
'''Description''': Explains sound design, music and concepts through Max, and gives lots of examples throughout. Written in Italian and translated to English.<br />
<br />
'''More information''': [//www.virtual-sound.com/en/index.php?option=com_content&amp;amp;view=article&amp;amp;id=66&amp;amp;Itemid=88 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-manzo.png&lt;/img&gt;<br />
<br />
'''''Max/MSP/Jitter for Music: A Practical Guide to Developing Interactive Music Systems for Education and More'''''<br />
<br />
'''Author''': V. J. Manzo<br />
<br />
'''Description''': Use Max to write custom software for musical interaction. The book will discuss the concepts needed to complete your project, complete many projects in a step-by-step style guide, and look at numerous included software examples of working systems.<br />
<br />
'''More information''': [//www.vjmanzo.com/clients/vjmanzo/mmjformusic.htm Excerpt and purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-winkler.jpg&lt;/img&gt;<br />
<br />
'''''Composing Interactive Music: Techniques and Ideas Using Max'''''<br />
<br />
'''Author''': Todd Winkler<br />
<br />
'''More information''': [//www.amazon.com/exec/obidos/ASIN/0262731398/qid=1017979673/sr=1-2/ref=sr_1_2/002-6322037-2624834 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-akamatsu.gif&lt;/img&gt;<br />
<br />
オデッセイ / : A Max Odyssey Max/MSP/Jitterの総合解説書<br />
<br />
トランスMaxエクスプレス / Trans Max Express<br />
<br />
Max/MSPの総合解説書、<br />
<br />
The Max Book (4.5) オブジェクト・リファレンス、<br />
<br />
The Jitter Book (1.5) クイック・チュートリアル、99ページ'''''<br />
<br />
'''Author''': Masayuki Akamatsu<br />
<br />
'''Description''': Numerous Max books in Japanese<br />
<br />
'''More information''': [//www.iamas.ac.jp/~aka/ IAMAS website Publications]<br />
<br />
----<br />
&lt;img&gt;http://julienbayle.net/public/smallEn.png&lt;/img&gt;<br />
<br />
Max for Live Ultimate Zen Guide<br />
<br />
'''Author''': Julien Bayle<br />
<br />
'''Description''': A guide explaining the Max integration inside Ableton Live, the LOM use and much more<br />
<br />
'''More information''': Available in [https://leanpub.com/le-guide-ultime-et-zen-de-max-for-live french] and [https://leanpub.com/Max-for-Live-Ultimate-Zen-Guide english]<br />
<br />
[[Category:Resources]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Documentation_and_ResourcesMax Documentation and Resources2014-06-10T02:25:49Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In addition to the materials on this Wiki, you can access the complete documentation for versions 5 and 6 of Max online, in addition to several written tutorials and books about Max.<br />
<br />
==Online Max Documentation==<br />
<br />
[//cycling74.com/docs/max6/dynamic/c74_docs.html#docintro Max 6 online documentation]<br />
<br />
[//cycling74.com/docs/max5/vignettes/intro/docintro.html Max 5 online documentation]<br />
<br />
==Max Tutorial for Downloading==<br />
<br />
'''Author''': Peter Elsea<br />
<br />
'''Description''': Popular Max reference material<br />
<br />
'''More information''': [ftp://arts.ucsc.edu/pub/ems/MaxTutors/ Click here to access the PDF downloads]<br />
<br />
==Books about Max==<br />
<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-lyon.jpg&lt;/img&gt;<br />
<br />
'''''Designing Audio Objects for Max/MSP and Pd'''''<br />
<br />
'''Author''': Eric Lyon<br />
<br />
'''Description''': This book guides the reader step-by-step through the process of designing externals, from concept through implementation in English.<br />
<br />
'''More information''': [//www.amazon.com/Designing-Audio-Objects-Max-MSP/dp/B009LLXIVC Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: guía de programación para artistas'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Music and sound focused academic text on how to program with MaxMSP, written in Spanish.<br />
<br />
'''More information''': [//www.cmmas.org/store.php?lan=es&amp;amp;accion=viewDetail&amp;amp;id=33 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto2.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Volume 2 Max 6: Interface'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//itunes.apple.com/us/book/max-6-interface/id572777088?mt=11 Purchase English e-book online]<br />
<br />
[//itunes.apple.com/us/book/max-6-interfaz/id573988491?mt=11 Purchase Spanish e-book online]<br />
<br />
[//cmmas.org/cmmas_eventos.php?lan=en&amp;id=708 Read the CMMAS announcement]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto3.png&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Max 6: Synthesis I'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//cmmas.org/ebook/libros_max.php Purchase the English or Spanish e-book online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-cipriani.jpg&lt;/img&gt;<br />
<br />
'''''ELECTRONIC MUSIC AND SOUND DESIGN: Theory and Practice with Max/MSP - Vol. I and 2'''''<br />
<br />
'''Authors''': Alessandro Cipriani and Maurizio Giri (Foreword by David Zicarelli)<br />
<br />
'''Description''': Explains sound design, music and [http://harga-asik.blogspot.fr/2014/02/harga-nokia-xl.html nokia xl] concepts through Max, and gives lots of examples throughout. Written in Italian and translated to English.<br />
<br />
'''More information''': [//www.virtual-sound.com/en/index.php?option=com_content&amp;amp;view=article&amp;amp;id=66&amp;amp;Itemid=88 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-manzo.png&lt;/img&gt;<br />
<br />
'''''Max/MSP/Jitter for Music: A Practical Guide to Developing Interactive Music Systems for Education and More'''''<br />
<br />
'''Author''': V. J. Manzo<br />
<br />
'''Description''': Use Max to write custom software for musical interaction. The book will discuss the concepts needed to complete your project, complete many projects in a step-by-step style guide, and look at numerous included software examples of working systems.<br />
<br />
'''More information''': [//www.vjmanzo.com/clients/vjmanzo/mmjformusic.htm Excerpt and purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-winkler.jpg&lt;/img&gt;<br />
<br />
'''''Composing Interactive Music: Techniques and Ideas Using Max'''''<br />
<br />
'''Author''': Todd Winkler<br />
<br />
'''More information''': [//www.amazon.com/exec/obidos/ASIN/0262731398/qid=1017979673/sr=1-2/ref=sr_1_2/002-6322037-2624834 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-akamatsu.gif&lt;/img&gt;<br />
<br />
オデッセイ / : A Max Odyssey Max/MSP/Jitterの総合解説書<br />
<br />
トランスMaxエクスプレス / Trans Max Express<br />
<br />
Max/MSPの総合解説書、<br />
<br />
The Max Book (4.5) オブジェクト・リファレンス、<br />
<br />
The Jitter Book (1.5) クイック・チュートリアル、99ページ'''''<br />
<br />
'''Author''': Masayuki Akamatsu<br />
<br />
'''Description''': Numerous Max books in Japanese<br />
<br />
'''More information''': [//www.iamas.ac.jp/~aka/ IAMAS website Publications]<br />
<br />
----<br />
&lt;img&gt;http://julienbayle.net/public/smallEn.png&lt;/img&gt;<br />
<br />
Max for Live Ultimate Zen Guide<br />
<br />
'''Author''': Julien Bayle<br />
<br />
'''Description''': A guide explaining the Max integration inside Ableton Live, the LOM use and much more<br />
<br />
'''More information''': Available in [https://leanpub.com/le-guide-ultime-et-zen-de-max-for-live french] and [https://leanpub.com/Max-for-Live-Ultimate-Zen-Guide english]<br />
<br />
[[Category:Resources]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Documentation_and_ResourcesMax Documentation and Resources2014-06-10T02:23:15Z<p>Gtaylor@rtqe.net: /* Books about Max */</p>
<hr />
<div>In addition to the materials on this Wiki, you can access the complete documentation for versions 5 and 6 of Max online, in addition to several written tutorials and books about Max.<br />
<br />
==Online Max Documentation==<br />
<br />
[//cycling74.com/docs/max6/dynamic/c74_docs.html#docintro Max 6 online documentation]<br />
<br />
[//cycling74.com/docs/max5/vignettes/intro/docintro.html Max 5 online documentation]<br />
<br />
==Max Tutorial for Downloading==<br />
<br />
'''Author''': Peter Elsea<br />
<br />
'''Description''': Popular Max reference material<br />
<br />
'''More information''': [ftp://arts.ucsc.edu/pub/ems/MaxTutors/ Click here to access the PDF downloads]<br />
<br />
==Books about Max==<br />
<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-lyon.jpg&lt;/img&gt;<br />
<br />
'''''Designing Audio Objects for Max/MSP and Pd'''''<br />
<br />
'''Author''': Eric Lyon<br />
<br />
'''Description''': This book guides the reader step-by-step through the process of designing externals, from concept through implementation in English.<br />
<br />
'''More information''': [//www.amazon.com/Designing-Audio-Objects-Max-MSP/dp/B009LLXIVC Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: guía de programación para artistas'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Music and sound focused academic text on how to program with MaxMSP, written in Spanish.<br />
<br />
'''More information''': [//www.cmmas.org/store.php?lan=es&amp;amp;accion=viewDetail&amp;amp;id=33 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto2.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Volume 2 Max 6: Interface'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//itunes.apple.com/us/book/max-6-interface/id572777088?mt=11 Purchase English e-book online]<br />
<br />
[//itunes.apple.com/us/book/max-6-interfaz/id573988491?mt=11 Purchase Spanish e-book online]<br />
<br />
[//cmmas.org/cmmas_eventos.php?lan=en&amp;id=708 Read the CMMAS announcement]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto3.png&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Max 6: Synthesis I'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//cmmas.org/ebook/libros_max.php Purchase the English or Spanish e-book online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-cipriani.jpg&lt;/img&gt;<br />
<br />
'''''ELECTRONIC MUSIC AND SOUND DESIGN: Theory and Practice with Max/MSP - Vol. I and 2'''''<br />
<br />
'''Authors''': Alessandro Cipriani and Maurizio Giri (Foreword by David Zicarelli)<br />
<br />
'''Description''': Explains sound design, music and concepts through Max, and gives lots of examples throughout. Written in Italian and translated to English.<br />
<br />
'''More information''': [//www.virtual-sound.com/en/index.php?option=com_content&amp;amp;view=article&amp;amp;id=66&amp;amp;Itemid=88 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-manzo.png&lt;/img&gt;<br />
<br />
'''''Max/MSP/Jitter for Music: A Practical Guide to Developing Interactive Music Systems for Education and More'''''<br />
<br />
'''Author''': V. J. Manzo<br />
<br />
'''Description''': Use Max to write custom software for musical interaction. The book will discuss the concepts needed to complete your project, complete many projects in a step-by-step style guide, and look at numerous included software examples of working systems.<br />
<br />
'''More information''': [//www.vjmanzo.com/clients/vjmanzo/mmjformusic.htm Excerpt and purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-winkler.jpg&lt;/img&gt;<br />
<br />
'''''Composing Interactive Music: Techniques and Ideas Using Max'''''<br />
<br />
'''Author''': Todd Winkler<br />
<br />
'''More information''': [//www.amazon.com/exec/obidos/ASIN/0262731398/qid=1017979673/sr=1-2/ref=sr_1_2/002-6322037-2624834 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-akamatsu.gif&lt;/img&gt;<br />
<br />
オデッセイ / : A Max Odyssey Max/MSP/Jitterの総合解説書<br />
<br />
トランスMaxエクスプレス / Trans Max Express<br />
<br />
Max/MSPの総合解説書、<br />
<br />
The Max Book (4.5) オブジェクト・リファレンス、<br />
<br />
The Jitter Book (1.5) クイック・チュートリアル、99ページ'''''<br />
<br />
'''Author''': Masayuki Akamatsu<br />
<br />
'''Description''': Numerous Max books in Japanese<br />
<br />
'''More information''': [//www.iamas.ac.jp/~aka/ IAMAS website Publications]<br />
<br />
----<br />
&lt;img&gt;http://julienbayle.net/public/smallEn.png&lt;/img&gt;<br />
<br />
Max for Live Ultimate Zen Guide<br />
<br />
'''Author''': Julien Bayle<br />
<br />
'''Description''': A guide explaining the Max integration inside Ableton Live, the LOM use and much more<br />
<br />
'''More information''': Available in [https://leanpub.com/le-guide-ultime-et-zen-de-max-for-live french] and [https://leanpub.com/Max-for-Live-Ultimate-Zen-Guide english]<br />
<br />
[[Category:Resources]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Gen_Code_Export_AUGen Code Export AU2014-06-09T21:01:18Z<p>Gtaylor@rtqe.net: Reverted edits by Gslurp (talk) to last revision by Wesley.hoke@gmail.com</p>
<hr />
<div>This document describes the creation of AudioUnits with gen~.<br />
<br />
The referenced material is found here: [[Media:AUGenExport-v02.zip‎]]<br />
<br />
== Requirements ==<br />
* Xcode 4.6 or later<br />
* Max 6.1 or later<br />
<br />
<br />
== Preliminaries ==<br />
* Download the “Audio Tools for Xcode” package by going to Xcode &gt; Open Developer Tool &gt; More Developer Tools ...<br />
* Install the CoreAudio folder found in the “Audio Tools for Xcode” package. Make sure to grab the one from Feb. 16, 2012. The Xcode packages assume it’s in the folder /Applications/Developer. If you install it somewhere else, change the CORE_AUDIO_LOCATION setting in the Xcode projects<br />
<br />
<br />
== Building an AudioUnit ==<br />
# Duplicate the provided MyAU project with the command: ''python duplicate.py MyAU &lt;My Plugin Name&gt; &lt;My Company Name&gt;'' (For example: python duplicate.py MyAU YourAU MyCompany)<br />
# Open a gen~ patch to be turned into a plugin.<br />
# Send gen~ the '''exportcode''' message in order to export the genpatcher as C++ code.<br />
# Open the Xcode project generated in step 2.<br />
# Change the COMP_MANUF [must be 4 letters] and COMP_SUBTYPE settings in the &lt;My Plugin Name&gt;.r resource file and the &lt;My Plugin Name&gt;-Info.plist file.<br />
# If you installed CoreAudio in a location other than /Applications/Developer, change the CORE_AUDIO_LOCATION build setting to the appropriate location and change the location of all of the files in the CoreAudio folder so that Xcode can compile them.<br />
## Click on the project in the Project Navigator to show the build settings<br />
## Click on the &lt;My Plugin Name&gt; target under the Targets section<br />
## If not already showing, click on the Build Settings tab<br />
## Under the User-Defined section, see the CORE_AUDIO_LOCATION setting to be changed (you can use the search field in the Build Settings to quickly locate it)<br />
# Build the project.<br />
# Copy the build product to the /Library/Audio/Plug-Ins/Components folder.<br />
# Run auval -a to verify that the plugin functions properly.<br />
<br />
[[Category:Gen Code Export]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Documentation_and_ResourcesMax Documentation and Resources2014-06-07T16:36:16Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In addition to the materials on this Wiki, you can access the complete documentation for versions 5 and 6 of Max online, in addition to several written tutorials and books about Max.<br />
<br />
==Online Max Documentation==<br />
<br />
[//cycling74.com/docs/max6/dynamic/c74_docs.html#docintro Max 6 online documentation]<br />
<br />
[//cycling74.com/docs/max5/vignettes/intro/docintro.html Max 5 online documentation]<br />
<br />
==Max Tutorial for Downloading==<br />
<br />
'''Author''': Peter Elsea<br />
<br />
'''Description''': Popular Max reference material<br />
<br />
'''More information''': [ftp://arts.ucsc.edu/pub/ems/MaxTutors/ Click here to access the PDF downloads]<br />
<br />
==Books about Max==<br />
<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-lyon.jpg&lt;/img&gt;<br />
<br />
'''''Designing Audio Objects for Max/MSP and Pd'''''<br />
<br />
'''Author''': Eric Lyon<br />
<br />
'''Description''': This book guides the reader step-by-step through the process of designing externals, from concept through implementation in English.<br />
[http://www.grosir-kosmetik.com/62-glutera.html Glutera], [http://www.tokobungasabana.com Toko bunga], [http://www.tokobungasabana.com Toko bunga jakarta], [http://www.tokobungasabana.com Toko bunga online]<br />
<br />
'''More information''': [//www.amazon.com/Designing-Audio-Objects-Max-MSP/dp/B009LLXIVC Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: guía de programación para artistas'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Music and sound focused academic text on how to program with MaxMSP, written in Spanish.<br />
<br />
'''More information''': [//www.cmmas.org/store.php?lan=es&amp;amp;accion=viewDetail&amp;amp;id=33 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto2.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Volume 2 Max 6: Interface'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//itunes.apple.com/us/book/max-6-interface/id572777088?mt=11 Purchase English e-book online]<br />
<br />
[//itunes.apple.com/us/book/max-6-interfaz/id573988491?mt=11 Purchase Spanish e-book online]<br />
<br />
[//cmmas.org/cmmas_eventos.php?lan=en&amp;id=708 Read the CMMAS announcement]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto3.png&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Max 6: Synthesis I'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//cmmas.org/ebook/libros_max.php Purchase the English or Spanish e-book online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-cipriani.jpg&lt;/img&gt;<br />
<br />
'''''ELECTRONIC MUSIC AND SOUND DESIGN: Theory and Practice with Max/MSP - Vol. I and 2'''''<br />
<br />
'''Authors''': Alessandro Cipriani and Maurizio Giri (Foreword by David Zicarelli)<br />
<br />
'''Description''': Explains sound design, music and concepts through Max, and gives lots of examples throughout. Written in Italian and translated to English.<br />
<br />
'''More information''': [//www.virtual-sound.com/en/index.php?option=com_content&amp;amp;view=article&amp;amp;id=66&amp;amp;Itemid=88 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-manzo.png&lt;/img&gt;<br />
<br />
'''''Max/MSP/Jitter for Music: A Practical Guide to Developing Interactive Music Systems for Education and More'''''<br />
<br />
'''Author''': V. J. Manzo<br />
<br />
'''Description''': Use Max to write custom software for musical interaction. The book will discuss the concepts needed to complete your project, complete many projects in a step-by-step style guide, and look at numerous included software examples of working systems.<br />
<br />
'''More information''': [//www.vjmanzo.com/clients/vjmanzo/mmjformusic.htm Excerpt and purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-winkler.jpg&lt;/img&gt;<br />
<br />
'''''Composing Interactive Music: Techniques and Ideas Using Max'''''<br />
<br />
'''Author''': Todd Winkler<br />
<br />
'''More information''': [//www.amazon.com/exec/obidos/ASIN/0262731398/qid=1017979673/sr=1-2/ref=sr_1_2/002-6322037-2624834 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-akamatsu.gif&lt;/img&gt;<br />
<br />
オデッセイ / : A Max Odyssey Max/MSP/Jitterの総合解説書<br />
<br />
トランスMaxエクスプレス / Trans Max Express<br />
<br />
Max/MSPの総合解説書、<br />
<br />
The Max Book (4.5) オブジェクト・リファレンス、<br />
<br />
The Jitter Book (1.5) クイック・チュートリアル、99ページ'''''<br />
<br />
'''Author''': Masayuki Akamatsu<br />
<br />
'''Description''': Numerous Max books in Japanese<br />
<br />
'''More information''': [//www.iamas.ac.jp/~aka/ IAMAS website Publications]<br />
<br />
----<br />
&lt;img&gt;http://julienbayle.net/public/smallEn.png&lt;/img&gt;<br />
<br />
Max for Live Ultimate Zen Guide<br />
<br />
'''Author''': Julien Bayle<br />
<br />
'''Description''': A guide explaining the Max integration inside Ableton Live, the LOM use and much more<br />
<br />
'''More information''': Available in [https://leanpub.com/le-guide-ultime-et-zen-de-max-for-live french] and [https://leanpub.com/Max-for-Live-Ultimate-Zen-Guide english]<br />
<br />
[[Category:Resources]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Documentation_and_ResourcesMax Documentation and Resources2014-06-07T16:32:18Z<p>Gtaylor@rtqe.net: /* Books about Max */</p>
<hr />
<div>In addition to the materials on this Wiki, you can access the complete documentation for versions 5 and 6 of Max online, in addition to several written tutorials and books about Max.<br />
<br />
==Online Max Documentation==<br />
<br />
[//cycling74.com/docs/max6/dynamic/c74_docs.html#docintro Max 6 online documentation]<br />
<br />
[//cycling74.com/docs/max5/vignettes/intro/docintro.html Max 5 online documentation]<br />
<br />
==Max Tutorial for Downloading==<br />
<br />
'''Author''': Peter Elsea<br />
<br />
'''Description''': Popular Max reference material<br />
<br />
'''More information''': [ftp://arts.ucsc.edu/pub/ems/MaxTutors/ Click here to access the PDF downloads]<br />
<br />
==Books about Max==<br />
<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-lyon.jpg&lt;/img&gt;<br />
<br />
'''''Designing Audio Objects for Max/MSP and Pd'''''<br />
<br />
'''Author''': Eric Lyon<br />
<br />
'''Description''': This book guides the reader step-by-step through the process of designing externals, from concept through implementation in English.<br />
<br />
'''More information''': [//www.amazon.com/Designing-Audio-Objects-Max-MSP/dp/B009LLXIVC Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: guía de programación para artistas'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Music and sound focused academic text on how to program with MaxMSP, written in Spanish.<br />
<br />
'''More information''': [//www.cmmas.org/store.php?lan=es&amp;amp;accion=viewDetail&amp;amp;id=33 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto2.jpg&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Volume 2 Max 6: Interface'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//itunes.apple.com/us/book/max-6-interface/id572777088?mt=11 Purchase English e-book online]<br />
<br />
[//itunes.apple.com/us/book/max-6-interfaz/id573988491?mt=11 Purchase Spanish e-book online]<br />
<br />
[//cmmas.org/cmmas_eventos.php?lan=en&amp;id=708 Read the CMMAS announcement]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-colasanto3.png&lt;/img&gt;<br />
<br />
'''''Max/MSP: Programming Guide for Artists, Max 6: Synthesis I'''''<br />
<br />
'''Author''': Francisco Colasanto<br />
<br />
'''Description''': Teaching techniques for different levels and a reference source on the Max programming language, written in English and Spanish.<br />
<br />
'''More information''': [//cmmas.org/ebook/libros_max.php Purchase the English or Spanish e-book online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-cipriani.jpg&lt;/img&gt;<br />
<br />
'''''ELECTRONIC MUSIC AND SOUND DESIGN: Theory and Practice with Max/MSP - Vol. I and 2'''''<br />
<br />
'''Authors''': Alessandro Cipriani and Maurizio Giri (Foreword by David Zicarelli)<br />
<br />
'''Description''': Explains sound design, music and [http://harga-asik.blogspot.fr/2014/02/harga-nokia-xl.html nokia xl] concepts through Max, and gives lots of examples throughout. Written in Italian and translated to English.<br />
<br />
'''More information''': [//www.virtual-sound.com/en/index.php?option=com_content&amp;amp;view=article&amp;amp;id=66&amp;amp;Itemid=88 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-manzo.png&lt;/img&gt;<br />
<br />
'''''Max/MSP/Jitter for Music: A Practical Guide to Developing Interactive Music Systems for Education and More'''''<br />
<br />
'''Author''': V. J. Manzo<br />
<br />
'''Description''': Use Max to write custom software for musical interaction. The book will discuss the concepts needed to complete your project, complete many projects in a step-by-step style guide, and look at numerous included software examples of working systems.<br />
<br />
'''More information''': [//www.vjmanzo.com/clients/vjmanzo/mmjformusic.htm Excerpt and purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-winkler.jpg&lt;/img&gt;<br />
<br />
'''''Composing Interactive Music: Techniques and Ideas Using Max'''''<br />
<br />
'''Author''': Todd Winkler<br />
<br />
'''More information''': [//www.amazon.com/exec/obidos/ASIN/0262731398/qid=1017979673/sr=1-2/ref=sr_1_2/002-6322037-2624834 Purchase online]<br />
----<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/resources/book-akamatsu.gif&lt;/img&gt;<br />
<br />
オデッセイ / : A Max Odyssey Max/MSP/Jitterの総合解説書<br />
<br />
トランスMaxエクスプレス / Trans Max Express<br />
<br />
Max/MSPの総合解説書、<br />
<br />
The Max Book (4.5) オブジェクト・リファレンス、<br />
<br />
The Jitter Book (1.5) クイック・チュートリアル、99ページ'''''<br />
<br />
'''Author''': Masayuki Akamatsu<br />
<br />
'''Description''': Numerous Max books in Japanese<br />
<br />
'''More information''': [//www.iamas.ac.jp/~aka/ IAMAS website Publications]<br />
<br />
----<br />
&lt;img&gt;http://julienbayle.net/public/smallEn.png&lt;/img&gt;<br />
<br />
Max for Live Ultimate Zen Guide<br />
<br />
'''Author''': Julien Bayle<br />
<br />
'''Description''': A guide explaining the Max integration inside Ableton Live, the LOM use and much more<br />
<br />
'''More information''': Available in [https://leanpub.com/le-guide-ultime-et-zen-de-max-for-live french] and [https://leanpub.com/Max-for-Live-Ultimate-Zen-Guide english]<br />
<br />
[[Category:Resources]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Commercial_Fitness_Equipment_For_SaleCommercial Fitness Equipment For Sale2014-06-02T15:32:40Z<p>Gtaylor@rtqe.net: Gtaylor@rtqe.net moved page Commercial Fitness Equipment For Sale to spamm</p>
<hr />
<div>#REDIRECT [[spamm]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=MSP_Basics_Tutorial_4:_Routing_SignalsMSP Basics Tutorial 4: Routing Signals2014-06-02T00:26:20Z<p>Gtaylor@rtqe.net: /* Amplitude and relative amplitude */</p>
<hr />
<div>Click here to open the tutorial patch: [[Media:04mRoutingSignals.maxpat]]<br />
<br />
===Introduction===<br />
<br />
In this tutorial we'll look at different ways to route MSP audio connections, as well as review sending messages remotely within Max with a focus on how this can be useful in signal network design. Along the way we'll learn about how gain can be expressed in decibels and how the {{maxword|name=phasor~}} object works.<br />
<br />
===Remote signal connections: send~ and receive~===<br />
<br />
The patch cords that connect MSP objects look different from normal patch cords because they actually do something different. They describe the order of calculations in a signal network. These connected objects will be used to calculate a whole block of samples for the next portion of sound output by your computer.<br />
<br />
Max objects can communicate remotely without patch cords by using the {{maxword|name=send}} and {{maxword|name=receive}} objects (and some similar objects such as {{maxword|name=value}} and {{maxword|name=pv}}). You can also use semicolons in {{maxword|name=message}} boxes to transmit values to {{maxword|name=receive}} objects by their name. You can transmit MSP signals remotely as well. Rather than using normal {{maxword|name=send}} and {{maxword|name=receive}} objects, however, two MSP objects exist specifically for remote transmission of signals: {{maxword|name=send~}} and {{maxword|name=receive~}}.<br />
<br />
The two objects {{maxword|name=send~}} and {{maxword|name=receive~}} work very similarly to {{maxword|name=send}} and {{maxword|name=receive}}, but are only for use with MSP objects. Max will allow you to connect normal patch cords to {{maxword|name=send~}} and {{maxword|name=receive~}}, but only signals will get passed through {{maxword|name=send~}} to the corresponding {{maxword|name=receive~}}. The MSP {{maxword|name=send~}} and {{maxword|name=receive~}} objects don't transmit any Max messages besides signals.<br />
<br />
There are a few other important differences between the Max objects {{maxword|name=send}} and {{maxword|name=receive}} and the MSP objects {{maxword|name=send~}} and {{maxword|name=receive~}}.<br />
<br />
* The names of {{maxword|name=send}} and {{maxword|name=receive}} can be shortened to &lt;link type=&quot;refpage&quot; name=&quot;send&quot;&gt;s&lt;/link&gt; and &lt;link type=&quot;refpage&quot; name=&quot;receive&quot;&gt;r&lt;/link&gt;; the names of {{maxword|name=send~}} and {{maxword|name=receive~}} cannot be shortened in the same way.<br />
<br />
* A Max message can be sent to a {{maxword|name=receive}} object from several other objects besides {{maxword|name=send}}, such as {{maxword|name=float}}, {{maxword|name=forward}}, {{maxword|name=grab}}, {{maxword|name=if}}, {{maxword|name=int}}, and {{maxword|name=message}}; {{maxword|name=receive~}} can receive a signal only from a {{maxword|name=send~}} object that shares the same name.<br />
<br />
* If {{maxword|name=receive}} has no typed-in argument, it has an inlet for receiving &lt;code&gt;set&lt;/code&gt; messages to set or change its name; {{maxword|name=receive~}} also has an inlet for that purpose, but is nevertheless required to have a typed-in argument to give it an initial destination name.<br />
<br />
* The Max {{maxword|name=send}} object, once created, cannot change destinations (the Max {{maxword|name=forward}} object does this). The MSP {{maxword|name=send~}} can change destinations with a &lt;code&gt;set&lt;/code&gt; message.<br />
<br />
Examples of each of these usages can be seen in the tutorial patch.<br />
<br />
===Routing a signal: gate~===<br />
<br />
The MSP object {{maxword|name=gate~}} works very similarly to the Max {{maxword|name=gate}} object. Just as {{maxword|name=gate}} is used to direct messages to one of several destinations, or to shut the flow of messages off entirely, {{maxword|name=gate~}} directs a signal to different places, or shuts it off from the rest of the signal network.<br />
<br />
In the example patch, the {{maxword|name=gate~}} objects are used to route signals to the left audio output, the right audio output, both, or neither, according to what number is received from the {{maxword|name=umenu}} object.<br />
<br />
It is worth noting that changing the chosen outlet of a {{maxword|name=gate~}} while an audio signal is playing through it can cause an audible click because the signal shifts abruptly from one outlet to another. To avoid this, you should generally design your patch in such a way that the {{maxword|name=gate~}} object's outlet will only be changed when the audio signal going through it is at zero or when audio is off. (No such precaution was taken in this tutorial patch.)<br />
<br />
===Wave interference===<br />
<br />
It's a fundamental physical fact that when we add together two sinusoidal waves with different frequencies we create ''interference'' between the two waves. Since they have different frequencies, they will usually not be exactly in phase with each other; at some times they will be sufficiently in phase that they add together constructively, but at other times they add together destructively, canceling each other out to some extent. They only arrive precisely in phase with each other at a rate equal to the difference in their frequencies. For example, a sinusoid at 1000 Hz and another at 1002 Hz come into phase exactly 2 times per second. In this case, they are sufficiently close in frequency that we don't hear them as two separate tones. Instead, we hear their recurring pattern of constructive and destructive interference as ''beats'' occurring at a sub-audio rate of 2 Hz, a rate known as the ''difference frequency'' or ''beat frequency''. (Interestingly, we hear the two waves as a single tone with a sub-audio beat frequency of 2 Hz and an audio frequency of 1001 Hz.)<br />
<br />
When the example patch is opened, a {{maxword|name=loadbang}} object sends initial frequency values to the two {{maxword|name=cycle~}} objects in the patch, setting them to 1000 Hz and 1002 Hz; so we expect that these two tones sounded together will cause a beat frequency of 2 Hz. It also sends initial values to the {{maxword|name=umenu}} objects which in turn set the {{maxword|name=gate~}} objects, directing one tone to the left audio output and one to the right audio output. A fourth value called &lt;code&gt;Depth&lt;/code&gt; is also set. All of this is accomplished by using a &lt;code&gt;message&lt;/code&gt; box to remotely set values picked up by Max {{maxword|name=receive}} objects in the patcher.<br />
<br />
* In the tutorial patcher, click on {{maxword|name=ezdac~}} to turn audio on, then use the {{maxword|name=slider}} marked &lt;code&gt;Volume&lt;/code&gt; to adjust the loudness of the sound to a comfortable level. Note that the beats occur exactly twice per second. Try changing the frequency of Oscillator B to various other numbers close to 1000 (using the {{maxword|name=number}} box labeled &lt;code&gt;frequency&lt;/code&gt;), and note the effect. As the difference frequency approaches an audio rate (say, in the range of 20-30 Hz) you can no longer distinguish individual beats, and the effect becomes more of a timbral change. Increase the difference still further, and you begin to hear two distinct frequencies.<br />
<br />
----<br />
<br />
''Philosophical tangent: ''It can be shown mathematically and empirically that when two sinusoidal tones are added, their interference pattern recurs at a rate equal to the difference in their frequencies. This apparently explains why we hear beats; the amplitude demonstrably varies at the difference rate. However, if you listen to this patch through headphones so that the two tones never have an opportunity to interfere mathematically, electrically, or in the air, you still hear the beats! This phenomenon, known as ''binaural beating'' is caused by ‘interference’ occurring in the nervous system. Although such interference is of a very different physical nature than the interference of sound waves in the air, we experience it as similar. An experiment like this demonstrates that our auditory system actively shapes the world we hear.<br />
<br />
----<br />
<br />
===Amplitude and relative amplitude===<br />
<br />
The {{maxword|name=slider}} marked ‘Volume’ has been set to have a range of 101 values, from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;100&lt;/code&gt;, which makes it easy to convert its output to a float ranging from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt; just by dividing by 100. (The decimal point in argument typed into the {{maxword|name=/}} object ensures a float division.)<br />
<br />
The {{maxword|name=*~}} objects use the specified amplitude value to scale the audio signal before it goes to the {{maxword|name=ezdac~}}. If both oscillators get sent to the same inlet of {{maxword|name=ezdac~}}, their combined amplitude will be 2. Therefore, it is prudent to keep the amplitude scaling factor at or below 0.5. For that reason, the amplitude value which the user thinks of as being between 0 and 1 is actually kept between 0 and 0.5 by the {{maxword|name=*}} &lt;code&gt;0.5&lt;/code&gt; object below the {{maxword|name=slider}}.<br />
<br />
Because of the wide range of possible audible amplitudes, it may be more meaningful in some cases to display volume numerically in terms of the logarithmic scale of decibels (''dB''), rather than in terms of absolute amplitude. The decibel scale refers to ''relative'' amplitude, i.e. the amplitude of a signal relative to some reference amplitude. The formula for calculating amplitude in decibels is:<br />
<br />
''dB = 20(log10(A/Aref))''<br />
<br />
where ''A'' is the amplitude being measured and ''Aref'' is a fixed reference amplitude.<br />
<br />
The {{maxword|name=AtodB}} object uses a reference amplitude of 1 in the formula shown above, and converts the amplitude to dB. If you turn off the audio (for safety) and raise the {{maxword|name=slider}} to its maximum value (ensuring an output of &lt;code&gt;1&lt;/code&gt;), you will see the decibel output of the {{maxword|name=AtodB}} object read &lt;code&gt;0&lt;/code&gt; (i.e. unity gain). Each halving of the amplitude in the {{maxword|name=slider}} is approximately equal to a 6 dB reduction in decibels.<br />
<br />
===Constant signal value: sig~===<br />
<br />
Most signal networks require some changing values (such as an amplitude envelope to vary the amplitude over time) and some constant values (such as a frequency value to keep an oscillator at a steady pitch). In general, one provides a constant value to an MSP object in the form of a &lt;code&gt;float&lt;/code&gt; message, as we have done in these examples when sending a frequency in the left inlet of a {{maxword|name=cycle~}} object.<br />
<br />
However, there are some cases when one wants to combine both constant and changing values in the same inlet of an MSP object. Inlets that accept either a &lt;code&gt;float&lt;/code&gt; or a &lt;code&gt;signal&lt;/code&gt; (such as the left inlet of {{maxword|name=cycle~}}) do not successfully combine the two. In general, MSP objects will ''ignore'' a floating-point value in deference to a signal input. As a result, it's necessary to have an object that outputs a constant value as a signal if you need to combine a fixed and changing value in an MSP signal chain.<br />
<br />
One way to combine a numerical Max message (an &lt;code&gt;int&lt;/code&gt; or a &lt;code&gt;float&lt;/code&gt;) with a signal is to convert the number into a steady signal with the {{maxword|name=sig~}} object. The output of {{maxword|name=sig~}} is a signal with a constant value, determined by the number received in its inlet.<br />
<br />
In the example patch, &lt;code&gt;Oscillator B&lt;/code&gt; combines a constant frequency (supplied as a &lt;code&gt;float&lt;/code&gt; to {{maxword|name=sig~}}) with a varying frequency offset (two additional signal values, coming in from two {{maxword|name=receive~}} objects called &lt;code&gt;warble&lt;/code&gt; and &lt;code&gt;wooble&lt;/code&gt;). The sum of these three signals will be the frequency of the oscillator at any given instant.<br />
<br />
===Changing the phase of a waveform: phasor~===<br />
<br />
For the most part, the phase offset of an isolated audio wave doesn't have a substantial effect perceptually. For example, a sine wave in the audio range sounds exactly like a cosine wave, even though there is a theoretical phase difference of a quarter cycle. For that reason, we have not been concerned with the rightmost phase inlet of the {{maxword|name=cycle~}} object until now.<br />
<br />
[[Image:Basicchapter04a.png|border]]<br />
<br />
''A sine wave offset by a quarter cycle is a cosine wave''<br />
<br />
However, there are some very useful reasons to control the phase offset of a wave. For example, by leaving the frequency of {{maxword|name=cycle~}} at &lt;code&gt;0&lt;/code&gt;, and continuously increasing its phase offset, you can change its instantaneous value (just as if it had a positive frequency). The phase offset of a sinusoid is usually referred to in degrees (a full cycle is 360°) or ''radians'' (a full cycle is 2*&amp;#x3C0; radians in length). In the {{maxword|name=cycle~}} object, phase is referred to in wave cycles; so an offset of &amp;#x3C0; radians is 1/2 of a cycle, or &lt;code&gt;0.5&lt;/code&gt;. In other words, as the phase varies from 0 to 2&amp;#x3C0; radians, it varies from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt; wave cycles. This way of describing the phase is handy since it allows us to use the common signal range from 0 to 1.<br />
<br />
So, if we vary the phase offset of a stationary (0 Hz) {{maxword|name=cycle~}} object continuously from 0 to 1 over the course of one second, the resulting output is a cosine wave with a frequency of 1 Hz.<br />
<br />
The {{maxword|name=phasor~}} object is a very useful MSP signal generator that simply outputs a ramp from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt; at a given frequency. As with the {{maxword|name=cycle~}} object, it's frequency can be set by an argument to the object, a floating-point value in its left inlet, or a signal. Later in our tutorial, we'll hear what it sounds like (it's a sawtooth wave, and not an especially pleasant one), but for now let's use it for changing the ''phase'' (hence {{maxword|name=phasor~}} of the {{maxword|name=cycle~}} object in the lower-left of the tutorial patcher.<br />
<br />
* Turn on the {{maxword|name=gate~}} object in the lower-left of the tutorial patcher by clicking on the {{maxword|name=toggle}} box. You should hear one of the sine waves begin to slowly drop and rise in pitch, causing the beating between the two sines connected to the audio output to change over time. Turn off the {{maxword|name=gate~}}, and everything goes back to the way it was. Turn on the {{maxword|name=gate~}} again, and set the destination of the {{maxword|name=send~}} object to &lt;code&gt;wooble&lt;/code&gt; by clicking the message box labeled &lt;code&gt;set wooble&lt;/code&gt;. The change in beating will become much more severe and will result in audible interference patterns at certain points in the cycle caused by the {{maxword|name=phasor~}} object. Set the {{maxword|name=send~}} back to &lt;code&gt;warble&lt;/code&gt; with the other &lt;code&gt;message&lt;/code&gt; box, and the beating curve becomes much tamer again.<br />
<br />
The {{maxword|name=cycle~}} in the bottom-left of the patcher is ''modulating'' the {{maxword|name=cycle~}} object in the upper-right by adding a value to its current (constant) frequency, set by the {{maxword|name=sig~}} object. When the {{maxword|name=gate~}} is enabled, the {{maxword|name=cycle~}} object's output (from &lt;code&gt;1&lt;/code&gt; to &lt;code&gt;-1&lt;/code&gt;) is sent to one of two destinations (&lt;code&gt;warble&lt;/code&gt; and &lt;code&gt;wooble&lt;/code&gt;). The difference between the two is that the &lt;code&gt;warble&lt;/code&gt; destination multiplies the output of the cosine by a factor set by &lt;code&gt;Depth&lt;/code&gt;. This is set to &lt;code&gt;80&lt;/code&gt; in the &lt;code&gt;message&lt;/code&gt; box that initializes the patcher.<br />
<br />
When we send the modulating {{maxword|name=cycle~}} to &lt;code&gt;warble&lt;/code&gt;, a raw cosine as added to the frequency set by the {{maxword|name=sig~}} object; this causes the frequency of Oscillator B to fluctuate very slowly between 1001 Hz and 1003 Hz. If we switch the {{maxword|name=cycle~}} to send to &lt;code&gt;wooble&lt;/code&gt;, the amplification caused by the &lt;code&gt;Depth&lt;/code&gt; value causes Oscillator B to fluctuate between 922 and 1082 Hz. This creates a form of ''frequency modulation'', which we'll explore in depth in a later tutorial.<br />
<br />
===Receiving a different signal===<br />
<br />
The remaining portion of the tutorial patch exists simply to demonstrate the use of the &lt;code&gt;set&lt;/code&gt; message to the {{maxword|name=receive~}} object. This is another way to alter the signal flow in a network. As with the {{maxword|name=send~}} object, you can change the name of the {{maxword|name=receive~}} object with a &lt;code&gt;set&lt;/code&gt; message, instructing it to get its input from a different {{maxword|name=send~}} object (or objects).<br />
<br />
* Click on the {{maxword|name=message}} box containing &lt;code&gt;set sawtooth&lt;/code&gt;. Both of the connected {{maxword|name=receive~}} objects now get their signal from the {{maxword|name=phasor~}} object in the lower-right corner of the window. Click on the {{maxword|name=message}} boxes containing &lt;code&gt;set outL&lt;/code&gt; and &lt;code&gt;set outR&lt;/code&gt; messages to receive the sinusoidal tones once again. With the &lt;code&gt;sawtooth&lt;/code&gt; destination selected, change the frequency of the {{maxword|name=phasor~}} in the lower-right of the patcher. Notice that when set to an audible frequency, the ramp of the {{maxword|name=phasor~}} object causes it to sound like an oscillator rich in harmonics. This is a ''sawtooth'' wave, a common waveform used in synthesizer design. Because the {{maxword|name=phasor~}} object only ramps from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt; (and not &lt;code&gt;-1&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt;, using a {{maxword|name=phasor~}} as an audio source isn't the best way to get this sound: the MSP {{maxword|name=saw~}} wave will do the trick instead.<br />
<br />
===Summary===<br />
<br />
It is possible to make signal connections without patch cords by using the MSP objects {{maxword|name=send~}} and {{maxword|name=receive~}}, which are similar to the Max objects {{maxword|name=send}} and {{maxword|name=receive}}. The &lt;code&gt;set &lt;/code&gt;message can be used to change the name of a {{maxword|name=send~}} or {{maxword|name=receive~}} object, thus switching how signals are routed. Signal flow can be routed to different destinations within a patcher, or shut off entirely, using the {{maxword|name=gate~}} object, which is the MSP equivalent of the Max object {{maxword|name=gate}}.<br />
<br />
The {{maxword|name=cycle~}} object can be used not only for periodic audio waves, but also for sub-audio control functions: you can read through the waveform of a {{maxword|name=cycle~}} object at any rate you wish by keeping its frequency at 0 Hz and changing its phase continuously from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt;. The {{maxword|name=phasor~}} object is appropriate for changing the phase of a {{maxword|name=cycle~}} waveform in this way; you could also use a {{maxword|name=line~}} object to create a ramp that goes through the object's wavetable.<br />
<br />
The {{maxword|name=sig~}} object converts a number to a constant signal; it receives a number in its inlet and sends out a signal of that value. This is useful for combining constant values with varying signals. Mixing together tones with slightly different frequencies creates interference between waves, which can create beats and other timbral effects.<br />
<br />
===See Also===<br />
<br />
{{maxword|name=gate~}} - Route a signal to one of several outlets<br />
<br />
{{maxword|name=receive~}} - Receive signals without patch cords <br />
<br />
{{maxword|name=send~}} - Transmit signals without patch cords<br />
<br />
{{maxword|name=sig~}} - Constant signal of a number<br />
<br />
{{maxword|name=phasor~}} - Sawtooth wave generator [[Category:Teaching Material]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Main_PageMain Page2014-04-12T17:04:00Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>__NOTOC__<br />
[[Category:Courses]]<br />
<br />
Welcome to the Cycling '74 Wiki - a place where you can help shape and maintain a repository of useful information about Max, MSP, and Jitter. As a quick look around will show, pages and sections are constantly appearing, under development and being expanded. Since this Wiki is a work in progress, your help is going to be essential in terms of defining both the content and form for the Wiki. So consider this a call to action – the [[Editing_QuickStart|Editing QuickStart]] page will help you get started sharing the Max, MSP or Jitter information that you value. <br />
<br />
Those who come after you will thank you as we thank you now. Onward! <br />
<br />
== All About Max ==<br />
Learn more about Max, MSP and Jitter.<br />
&lt;categorytree mode=pages hideroot=on&gt;Max&lt;/categorytree&gt;<br />
<br />
== Max and Technology ==<br />
Using specific technologies within the Max environment<br />
&lt;categorytree mode=pages hideroot=on&gt;MaxAnd&lt;/categorytree&gt;<br />
<br />
== Max Interfaces ==<br />
Using Max with the rest of the world<br />
&lt;categorytree mode=pages hideroot=on&gt;MaxWith&lt;/categorytree&gt;<br />
<br />
== Topics and Techniques ==<br />
Learning Max-specific techniques and strategies<br />
&lt;categorytree mode=pages hideroot=on&gt;MaxTopics&lt;/categorytree&gt;<br />
<br />
== Terminology ==<br />
A glossary of DSP and image-processing terms with examples in Max.<br />
&lt;categorytree mode=pages hideroot=on&gt;Terminology&lt;/categorytree&gt;<br />
<br />
== People and Places ==<br />
Max in the real world - workshops/courses, events, and resources<br />
&lt;categorytree mode=pages hideroot=on&gt;PeoplePlaces&lt;/categorytree&gt;<br />
<br />
== Do you want to write an article? ==<br />
Here is some information that can help.<br />
<br />
*[[Editing QuickStart]]<br />
*[[Using Categories On This Site]]<br />
*[//meta.wikimedia.org/wiki/Help:Contents#For_editors The MediaWiki Editor's Guide]<br />
*[//meta.wikimedia.org/wiki/Help:Contents The MediaWiki User's Guide]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Main_PageMain Page2014-04-04T13:03:14Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>__NOTOC__<br />
[[Category:Courses]]<br />
<br />
Welcome to the Cycling '74 Wiki - a place where you can help shape and maintain a repository of useful information about Max, MSP, and Jitter. As a quick look around will show, pages and sections are constantly appearing, under development and being expanded. Since this Wiki is a work in progress, your help is going to be essential in terms of defining both the content and form for the Wiki. So consider this a call to action – the [[Editing_QuickStart|Editing QuickStart]] page will help you get started sharing the Max, MSP or Jitter information that you value. <br />
<br />
Those who come after you will thank you as we thank you now. Onward! <br />
<br />
== All About Max ==<br />
Learn more about Max, MSP and Jitter.<br />
&lt;categorytree mode=pages hideroot=on&gt;Max&lt;/categorytree&gt;<br />
<br />
== Max and Technology ==<br />
Using specific technologies within the Max environment<br />
&lt;categorytree mode=pages hideroot=on&gt;MaxAnd&lt;/categorytree&gt;<br />
<br />
== Max Interfaces ==<br />
Using Max with the rest of the world<br />
&lt;categorytree mode=pages hideroot=on&gt;MaxWith&lt;/categorytree&gt;<br />
<br />
== Topics and Techniques ==<br />
Learning Max-specific techniques and strategies<br />
&lt;categorytree mode=pages hideroot=on&gt;MaxTopics&lt;/categorytree&gt;<br />
<br />
== Terminology ==<br />
A glossary of DSP and image-processing terms with examples in Max.<br />
&lt;categorytree mode=pages hideroot=on&gt;Terminology&lt;/categorytree&gt;<br />
<br />
== People and Places ==<br />
Max in the real world - workshops/courses, events, and resources<br />
&lt;categorytree mode=pages hideroot=on&gt;PeoplePlaces&lt;/categorytree&gt;<br />
<br />
== Do you want to write an article? ==<br />
Here is some information that can help.<br />
<br />
*[[Editing QuickStart]]<br />
*[[Using Categories On This Site]]<br />
*[//meta.wikimedia.org/wiki/Help:Contents#For_editors The MediaWiki Editor's Guide]<br />
*[//meta.wikimedia.org/wiki/Help:Contents The MediaWiki User's Guide]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Category:ArduinoCategory:Arduino2013-09-20T00:38:51Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>[[Category:MaxWith]]<br />
<br />
The [[Simple_Arduino_Connection|Simple Arduino Connection-p1]] tutorial provides a step-by-step walk-through of a super-simple (but useful) Arduino sketch and matching Max patch.<br />
<br />
[[Bayle_Advanced_Project|The Bayle Advanced Project]] is a walk-through, provided by Julien Bayle, of his process in designing, coding and building a complex sensor project for an art installation.<br />
<br />
Also, check out an [http://cycling74.com/2013/06/17/an-interview-with-julien-bayle/ interview with Julien Bayle] on the Cycling74 site!<br />
<br />
== Some Other Arduino+Max Links ==<br />
<br />
* [http://www.youtube.com/watch?v=PnbuOmGOJxA| demo of an Arduino-interfaced guitar from The Bishop Game]<br />
* [http://www.youtube.com/watch?v=ZdB_bCEMHb8|More detail about The Bishop Game's Arduino setup]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T06:05:54Z<p>Gtaylor@rtqe.net: /* People who looked at/used this object also looked at.... */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]). As the examples below suggest, it's useful for single-sample delay lines, calculating averages, computing velocity and acceleration, and permutating lists by rotating them.<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
===Velocity and Acceleration===<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
[[File:Bucket-in-action.png]]<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
===Running Averages===<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
===A Bucket for Symbols===<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
<br />
===Arbitrary List Rotation ===<br />
<br />
One way to think of the {{maxword|name=bucket}} object is a as an object that adds new input values and rotates the list by one position. While you can rotate a list forward or backward using the ''r2l'' and ''l2r'' messages to the {{maxword|name=bucket}} object, performing arbitrary list rotations can be done using the {{maxword|name=zl}} object and specifying the '''rot''' option:<br />
<br />
[[File:Bucket-in-action-2.png]]<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
1116.3oc2Y1zbaqBEFds8uBtZtK80iPf9HcWW1scamNYP1DGZk.O.xIoc5+8<br />
q.jh+H1wXEEZFOYhrEBc3bdz6AyA86oShJEORUQfOA9FXxjeOcxDaSlFlzc9<br />
jnZxiKpHJa2hVHpqobczL20zzG011+xcfmDMfGHbMPK.RglnolljfJlRCJeB<br />
TKjTf9dBGH3TvZghoYB9LPixzLE7qJysADk+ftPOG7UZMstjJM2h1YPFekwP<br />
zMTNf2XtnB7.qpBTQIanfUj0p+o2ypXb5BQC25d3tFuSv0bRM05xeVxHU8cu<br />
0bLdEUaiRXWiqkTUavRL94sxVuxQJDFNOdFHAgMeD2c.78slRzn6sUbusH5E<br />
22F.6ZGTl4dQ4Hm4JLejsqoL9qh8Kq+BSl2aK1Ra.zRp+qnO.tStpzNdyiMM<br />
7moSMGl44iUGMiFFl1OfS5Z00j9o0TWzFwLxFPTIguJ54H7XXovgEKjSs3MA<br />
dJnfNFTPQOacYaXnoxaobRYk8VFBdpoJEYE8EpdEUC9W3EhsjihM3ovlOrJM<br />
2bDaOBu4hXENZ.73TyBXxWzl7S4SZimZlJn8KptrU.guDzFfqaz1L91t2ToG<br />
EU2qjlgw34o85ojBaVVxkkkgvWeoYoNoCLsXm7rKDKIich1GJ.gd6.BdMCH7<br />
HnfhupAzaWAkby0LfPucETRwUMfFAET90LfRFAET1UMfFAED58EPaHxm4yGJ<br />
zkWXV3XBJevnC9pIe89sps50k2RzZIqrQS29MUGC6fnAUUMTwc8M229tluRv<br />
WcbbtW2T2KjZO5WO2PG4ZLdaI7jpWFQGqWcSn0CuC5xFlh0aC20sRp9OtT8E<br />
8gV5+hxSzfR.68UaYEUybZLezVYtZcSrmbgZqznQrT1TLHd2+9KVTKNta+Ub<br />
0y51dDXwkAmAUWaaNmVvu.c.7U0AdLubRd+rJG77e2XAEMd4.x1ZvE0.X767<br />
S3yl.f1YmKxSGxbqvwT+6j8ayB9atoN2XwABieC5+3QTyzsyrnQgImbpSyzl<br />
9HYPtoGFjlIeDoxZxheBX6+2ERnhQT0zuPuNwS1MC.OYiHdJaV7SpFTLJ+da<br />
wqJZN0+9fKX1vw0d+.r89ru1gCdgJ1A2z99LTIZjK5Cit4ylA1N7KoJMiae2<br />
C6zoz85y8rkKo7c2+ykLkYsXKO8Jy80cLiT9Y7FyF.FH24fg539S1d976Mcx<br />
NGcfgiNPOoSVvnS54nSb3nSrmzIMXzAeFuwrueAhNGLTmlN3fQGz4nSQ3nSg<br />
mzAEL5jbN5jGN5j6IcRBFcfmiNYgiNYdRGXvny47Fyd8EJ5f7jNgwc74YEDG<br />
rGV93NgKOGOBKMslsbsfw0psU4lZV.drcuuvaOa63Ldq.vC+GGLZ5yjlv3fI<br />
0fd4OgqxCX5GJsOzmeUIObOs7QKCGZoGtpXIqWugJUc1z5Js07+CgzbZ1L6o<br />
Lt6TaA6QRpYG7c829pBhHx1Rt0s0a2Hc07+XgY6EZGm+L8+wpYGFn<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#zl zl] object (in its '''zl rot''' form). Useful for performing rotations of lists.<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T06:05:07Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]). As the examples below suggest, it's useful for single-sample delay lines, calculating averages, computing velocity and acceleration, and permutating lists by rotating them.<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
===Velocity and Acceleration===<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
[[File:Bucket-in-action.png]]<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
===Running Averages===<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
===A Bucket for Symbols===<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
<br />
===Arbitrary List Rotation ===<br />
<br />
One way to think of the {{maxword|name=bucket}} object is a as an object that adds new input values and rotates the list by one position. While you can rotate a list forward or backward using the ''r2l'' and ''l2r'' messages to the {{maxword|name=bucket}} object, performing arbitrary list rotations can be done using the {{maxword|name=zl}} object and specifying the '''rot''' option:<br />
<br />
[[File:Bucket-in-action-2.png]]<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
1116.3oc2Y1zbaqBEFds8uBtZtK80iPf9HcWW1scamNYP1DGZk.O.xIoc5+8<br />
q.jh+H1wXEEZFOYhrEBc3bdz6AyA86oShJEORUQfOA9FXxjeOcxDaSlFlzc9<br />
jnZxiKpHJa2hVHpqobczL20zzG011+xcfmDMfGHbMPK.RglnolljfJlRCJeB<br />
TKjTf9dBGH3TvZghoYB9LPixzLE7qJysADk+ftPOG7UZMstjJM2h1YPFekwP<br />
zMTNf2XtnB7.qpBTQIanfUj0p+o2ypXb5BQC25d3tFuSv0bRM05xeVxHU8cu<br />
0bLdEUaiRXWiqkTUavRL94sxVuxQJDFNOdFHAgMeD2c.78slRzn6sUbusH5E<br />
22F.6ZGTl4dQ4Hm4JLejsqoL9qh8Kq+BSl2aK1Ra.zRp+qnO.tStpzNdyiMM<br />
7moSMGl44iUGMiFFl1OfS5Z00j9o0TWzFwLxFPTIguJ54H7XXovgEKjSs3MA<br />
dJnfNFTPQOacYaXnoxaobRYk8VFBdpoJEYE8EpdEUC9W3EhsjihM3ovlOrJM<br />
2bDaOBu4hXENZ.73TyBXxWzl7S4SZimZlJn8KptrU.guDzFfqaz1L91t2ToG<br />
EU2qjlgw34o85ojBaVVxkkkgvWeoYoNoCLsXm7rKDKIich1GJ.gd6.BdMCH7<br />
HnfhupAzaWAkby0LfPucETRwUMfFAET90LfRFAET1UMfFAED58EPaHxm4yGJ<br />
zkWXV3XBJevnC9pIe89sps50k2RzZIqrQS29MUGC6fnAUUMTwc8M229tluRv<br />
WcbbtW2T2KjZO5WO2PG4ZLdaI7jpWFQGqWcSn0CuC5xFlh0aC20sRp9OtT8E<br />
8gV5+hxSzfR.68UaYEUybZLezVYtZcSrmbgZqznQrT1TLHd2+9KVTKNta+Ub<br />
0y51dDXwkAmAUWaaNmVvu.c.7U0AdLubRd+rJG77e2XAEMd4.x1ZvE0.X767<br />
S3yl.f1YmKxSGxbqvwT+6j8ayB9atoN2XwABieC5+3QTyzsyrnQgImbpSyzl<br />
9HYPtoGFjlIeDoxZxheBX6+2ERnhQT0zuPuNwS1MC.OYiHdJaV7SpFTLJ+da<br />
wqJZN0+9fKX1vw0d+.r89ru1gCdgJ1A2z99LTIZjK5Cit4ylA1N7KoJMiae2<br />
C6zoz85y8rkKo7c2+ykLkYsXKO8Jy80cLiT9Y7FyF.FH24fg539S1d976Mcx<br />
NGcfgiNPOoSVvnS54nSb3nSrmzIMXzAeFuwrueAhNGLTmlN3fQGz4nSQ3nSg<br />
mzAEL5jbN5jGN5j6IcRBFcfmiNYgiNYdRGXvny47Fyd8EJ5f7jNgwc74YEDG<br />
rGV93NgKOGOBKMslsbsfw0psU4lZV.drcuuvaOa63Ldq.vC+GGLZ5yjlv3fI<br />
0fd4OgqxCX5GJsOzmeUIObOs7QKCGZoGtpXIqWugJUc1z5Js07+CgzbZ1L6o<br />
Lt6TaA6QRpYG7c829pBhHx1Rt0s0a2Hc07+XgY6EZGm+L8+wpYGFn<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#zl zl] object (in its '''zl rot''' form). Useful for performing rotations of lists where the list offset is an odd number greater than 1.<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=File:Bucket-in-action-2.pngFile:Bucket-in-action-2.png2013-04-30T06:04:35Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div></div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T05:46:11Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]). As the examples below suggest, it's useful for single-sample delay lines, calculating averages, computing velocity and acceleration, and permutating lists by rotating them.<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
===Velocity and Acceleration===<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
[[File:Bucket-in-action.png]]<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
===Running Averages===<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
===A Bucket for Symbols===<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#zl zl] object (in its '''zl rot''' form). Useful for performing rotations of lists where the list offset is an odd number greater than 1.<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T05:42:35Z<p>Gtaylor@rtqe.net: /* People who looked at/used this object also looked at.... */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]). As the examples below suggest, it's useful for single-sample delay lines, calculating averages, computing velocity and acceleration, and permutating lists by rotating them.<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
[[File:Bucket-in-action.png]]<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#zl zl] object (in its '''zl rot''' form). Useful for performing rotations of lists where the list offset is an odd number greater than 1.<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T05:42:16Z<p>Gtaylor@rtqe.net: /* People who looked at/used this object also looked at.... */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]). As the examples below suggest, it's useful for single-sample delay lines, calculating averages, computing velocity and acceleration, and permutating lists by rotating them.<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
[[File:Bucket-in-action.png]]<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#zl zl] object (in its '''zl rot''' form). Useful for performing rotations of lists where the list offset is an odd number greater than 1.<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T05:39:53Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]). As the examples below suggest, it's useful for single-sample delay lines, calculating averages, computing velocity and acceleration, and permutating lists by rotating them.<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
[[File:Bucket-in-action.png]]<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=File:Bucket-in-action.pngFile:Bucket-in-action.png2013-04-30T05:38:44Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div></div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T05:31:44Z<p>Gtaylor@rtqe.net: /* Using the {{maxword|name=bucket}} object */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]). As the examples below suggest, it's useful for single-sample delay lines, calculating averages, computing velocity and acceleration, and permutating lists by rotating them.<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T05:29:23Z<p>Gtaylor@rtqe.net: /* Using the {{maxword|name=bucket}} object */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
The {{maxword|name=bucket}} object implements a [//en.wikipedia.org/wiki/Bucket_brigade bucket brigade] device (in the electronics world, this is sometimes referred to as [//en.wikipedia.org/wiki/Bucket-brigade_device a discrete time-analogue delay line]).<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T05:23:55Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tutorials */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
In the Max tutorial on abstractions, you can find a classic example of why the {{maxword|name=bucket}} object is so useful - [//www.cycling74.com/docs/max6/dynamic/c74_docs.html#basicchapter15 this Max tutorial] demonstrates its use as a single sample delay for number values useful for constructing drawing commands.<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-30T05:18:34Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
Lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data. The terms &quot;first and second derivative&quot; are math-speak for keeping track of:<br />
<br />
* the rate that things are changing (that's what velocity (the first derivative) is - the rate of change in a value over time.<br />
<br />
* the ''rate of the rate'' that things are changing - that's what acceleration (the second derivative) is.<br />
<br />
Here's a patch that does that:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
The {{maxword|name=bucket}} object is a little unusual in that you don't need to worry about using arguments to the object in order to have it work with floating point values. In fact, {{maxword|name=bucket}} is ''so'' useful that people often ask whether or not there's a Max object that is similar but will work with symbols or lists. While there isn't a specific object, here's a Max patch that does exactly that (and it also helpfully outputs stuff in standard right-to-left order, too):<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
778.3oc2X10bhBCEF9Z7WACWy5jOfjvd296Xmc1A0Ta5ffCDacam9eeIm.pc<br />
KsDEw05zYTOGfj22mdxW7xDufYEakUA9e2+m9dduLwyCRYR30D6ErJc67rzJ<br />
31BVIqpRWJCBsWSK2pg72UrorMY9lUp7LoFdBRSx0kxJYtNUqJx+cobt11q7<br />
D9z3PeBYJJzG07g+u12REazsMEtsoR0yuWku78MSLzLTh42XwAMjZAnxhYO7<br />
MJtUm2UjqySWIgK8iRUZV6Urcp9Oqk1lOHXWKYdnJ0yvEv0cmI6qSlX9HbfL<br />
TeeoTdRPjJL9lDMPHRoG.QnI+PHhtZg3SEmBBYLKBGXcHiCOqK0gjjqUDVj+<br />
4UgtSCbryzP7UkFePAkHhCETb9vpnDTfdDjEknOaTIgciMpjyvf4E3ANyVTh<br />
6PL9la8AF2Ze9.wHiwcGiQWqXr2sp3LOhEQtyC5+adjKepVHuCGOm4WJWdRk<br />
U1o2wwtruCRuKSfiguhPVl9AX7j18V3WDTRPnAhxDg6nDcihR6jTX9vPIWfb<br />
Fk3ja5pRgXXnTvntiR5ULJ09Y9yL+0IMwcxkn9m3CYWdtc00tAC+D4xrz7ku<br />
6aWXEbOAYp7+8MD.Nwj+s.rpdc04s8bih8w65oExJsJGJwN3dLSB4u2u2qVr<br />
PBWG0jYkZw5BUttQCbDeJlUeZMdcaSXFfYRE2Dsu2TUoyxj.95t.3XbAoGWX<br />
F+eTtPjLUPoTLcuKpSMxtf1mKnGmKDbxNIG9lnQv.lCHdf351A7iy.LRjQxB<br />
X32AAig7SFA4yStTxmhN+xmGAqJbQjO97KeAheojO2A0Sv8H+yXsrKECly+c<br />
vr+iodvtL1xbr9KkdntnG1ESODWp9MmO8Z5+W39zSGKoBueQ3vnhHbGQQw1Q<br />
rzcQiwL8tL5.P.9311yd+viSrupg2D03NLZTcmS0RniycMyd13GFm0Qj0cbh<br />
vc2Y2.a550OJKqZTHXr585+PQoIjEBgpbaHrC9fR4ip16mBYRKq25ttde6aJ<br />
sa6dqfELwzOuN4u.mi5K2B<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-02T19:56:38Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
While lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data.<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an stream or unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-02T19:55:54Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
While lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data.<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an unspecified set of values, you'd use the {{maxword|name=mean}} object). Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-02T19:55:31Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
While lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data.<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some finite set of events (if you want a running average for an unspecified set of values, you'd use the {{maxword|name=mean}} object. Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-02T17:27:06Z<p>Gtaylor@rtqe.net: /* People who looked at/used this object also looked at.... */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
While lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data.<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some history of events. Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
The [http://www.cycling74.com/docs/max6/dynamic/c74_docs.html#cycle cycle] object<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-02T17:24:27Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
While lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data.<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
I also tend to use the object quite a bit in situations where I desire a running average over some history of events. Here's an example that calculates the average of the last 8 floating point input values:<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
498.3ocuV1sajBBEG+Z8ofvkabm.9AZ6c84nYyFFkYKsJZTrc11z28UO3z1Y<br />
CyHocJwnjywCG9wePN9RX.da6dw.FcM5VTPvKgAAfqYGAK1A3F99xZ9.DFtc<br />
TWKz3HyqTiMR0jM7N56NMQAdIKd635x6jp+76dQo1Lhz7zMjHTbbFz71SzuV<br />
5irxLlau+m4GFxx1lFgBx.FO650vv4GQNNA.dsxOwJ+zU4mUbB7MYQ+2NgId<br />
L11LicolYJwSS46P1zh8lT8CDYCMNy5TNdw4tVkdP9LvIMdymUInWQmaRuBj<br />
Bx4jhc0sbsU83MRmgRwafdfuoWxqufpRGu7AztiurJQEWXIJwzvHaxVSirJO<br />
odQddtFML1702yDutfvRf8LYqumAGcBMIwKZx1wxGDZTwYO7yIUoXcUgvbea<br />
RzYtsIWT2jKnq3Zo5+qP.XO6+XMbncru7.TKeIidm6JwfVp3ZYq5CwjeTL2I<br />
qpDpOdXbkbfusV.vSrtV5JMLGng5MZRbflLuQSpCzj3MZlWEnqPS5Qw7cSSr<br />
CzD6MZRbflDuQSpCzj5MZxbflLuQCyAZXdilbGnI2azPbflOy4MlxV7ttGE8<br />
CKoD.YpH+8s8ylrHvTpLlPsabu3Q4g3geaAy6mpNqmJMO1aJQtufMUfbZbdM<br />
7efczjOq<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-02T06:01:11Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
While lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data.<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=bucketbucket2013-04-02T05:59:49Z<p>Gtaylor@rtqe.net: /* {{maxword|name=bucket}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#bucket bucket online refpage]==<br />
<br />
==Using the {{maxword|name=bucket}} object==<br />
<br />
=={{maxword|name=bucket}} Tutorials==<br />
<br />
=={{maxword|name=bucket}} Tips and Workarounds==<br />
<br />
While lots of people use the &lt;strong&gt;bucket&lt;/strong&gt; object for shifting data in series, it's computationally useful for calculating first and second derivatives for streams of data.<br />
<br />
&lt;maxcode&gt;<br />
----------begin_max5_patcher----------<br />
863.3oc4XFrbaBCDF9r8SgJmZmwICRf.bu0mgbrISGLHaqDP3QHbcZl7tWoE<br />
vA2ZrAFC8Pu.dEBs69oesR32lOyZU1AVtE5qnuilM6s4ylAMYZXVk8LqzvCQ<br />
Ig4P2rhxRSYBk0hxmoXGTP6psLjLTwPYqQM+cz1PwF1ihOmyhxDwnXljuOTw<br />
2y9xih5QIgKzOsP.CEopQQQJWjvTfewUMtKTEskK17CIKRUF2d1d2au.4rz2<br />
bC6EXt4pMPOU8R7XHDyV87cjk09bclPIBSYvi9ljGlX8giyJT0d1tt+xMq.6<br />
6saLB47eAi.lbr4cRVtlP5bLSbRXRg.y1L.n5KnmLuz6ymatr3FNGbj6q4xb<br />
0HfcW+flXGiuH1CFOrO..pc0JlzpmYrS.AR0xYPJbkX2RB612DlbzwRcuUL4<br />
OXhvUIrSfw4Ubkih50crx.0haDGHqUZIf0fTXoEIJddBOt+TpZ4HojOXLXgc<br />
BZgSjgSiblRGR53tzw2QONubzS5tjqds70nsQKCplbLUs7oqXBOpXpkRV0wn<br />
i6okrlF3px1rQO38cQJApG4srd04EViZednh6.TO6RtoVCUkqcTCgCtYZH6i<br />
0AmJwff8ScN7W63oiWY1YwF4pXqpNtK9RZDreeqii6Ys5gWjtElDKKDuXxND<br />
8rjw45jg.qd7cuHY7FaxL3kTs.lOcmV31WwR81Y1NvocJKHhaAImkHODJxQO<br />
nO+05dgEpOlz5Bo0IYg2V3rpH5ElBQF318XO3Vf+k3CYP7gL.9byKzLHsS89<br />
mcQ637en1ohOcR639OT6.wC70R+wmJC4jo8SYVdVgLpd3pJLf9HqhY4Jt.Nr<br />
Ui9XNIbiNskGGyDM2CNlma1VFPx4+nmtFNlON4pwio9NhLIwiSWvC9J3IkGu<br />
KSukQ0TjqVNQ0I.Ivbqo0GN5lk..qtJPCltIX6tDO9SV7zI931uIXGGOyTJl<br />
BkMplfAqwXB1uqqXlnIXsmvWKbNoOWkmdAN.AWB+MUd5u4q1ZD3IoK3bxnYm<br />
p+LrxONvV+zR1dpElBa64goGsFAR61AkhS+TJTJsgRgZ6MlJktrUky.UJk6q<br />
Gta2dlLuZHg.QepmmyjFSuEfIWTZBGlwRx1yq6ObBCqPo9rMJ8AaJjkGL4Pf<br />
m0biede9u0DMhQJ<br />
-----------end_max5_patcher-----------<br />
&lt;/maxcode&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=bucket}} object==<br />
<br />
[//www.maxobjects.com/?request=bucket Maxobjects.com listing for the bucket object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions ( symbol, A - F)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=mtofmtof2013-03-27T18:14:44Z<p>Gtaylor@rtqe.net: /* {{maxword|name=mtof}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#mtof mtof online refpage]==<br />
<br />
==Using the {{maxword|name=mtof}} object==<br />
<br />
=={{maxword|name=mtof}} Tutorials==<br />
<br />
=={{maxword|name=mtof}} Tips and Workarounds==<br />
<br />
Since frequency is exponential rather than linear, using a simple slider never gave me good results for doing things like setting filter cutoff frequencies.<br />
<br />
The '''mtof''' object is perfect for this use. The ability to work with floating point values means that you can produce smooth filter cutoff values by sending the '''mtof'''object a floating point value between 0. and 127. for cutoff frequencies between 8.176 and 12541. Hz.<br />
<br />
&lt;maxpat&gt;<br />
----------begin_max5_patcher----------<br />
656.3oc0VssaiBCD8YxWAhmoQXtkj8s86XUUjSvI0UD6HaCaZq59su1iwIjM<br />
PKDEgz9.fYlQiOyYNdfOl4ErgehHC7+g+u7879XlmGXxXvq4cufC3SaKwRHr<br />
.x6E3s+IHz5hUcfxJIJvWbiwiX01Wnr8qEjsJatiSSmuHKzOEsbdj9Ql6t+y<br />
WxDuR4RUTiUZAro7Mu9zx.ioOmMybKbfnsjVSluGSYmQbMVvvGH83cr0SbdN<br />
TIPUgRx6sfxtsfVDbN+BMhTDwZBCuoDvFpwmMEp2NRrabfjtmgKCBauxbsqj<br />
iUlEkToFjNTHw0jh0XkRP2ToHWVIaXsFZyPLkUD9NmYm81vqhQUR0aVDlFda<br />
.GzjuwmgT5xKkY79zhnN8S0ompqHnPitPkWEjiJ5JAxW3BU+c2qhsjy12Un1<br />
HAYl6wH0bLxu0sWWyUQNorl4TIoagFpegFZEBjVKiAcFn1hi5UlgtUlk61xc<br />
b1Ex4mBCS2xij9tU3E65M8p87e9wwJx5ccyIIC3vWRhgNxVMO6KIkzaIkrGN<br />
oD9kqtKJSejVWHmmRHHRBSgUTNqEYjfV.ZhbXDTTys1LwfzYw4YszYqV7M5r<br />
3aozzumR6ZPWzHo6yy41fY6eD75XYnX3.YVz3Ynj+aXndNrdPo+9vcRaYvY0<br />
jzwO.C83NqdMa.PPO6m8u+ADTFF6WSQRdkXqKUMSQ7uTHEDohxfymshQ+Ude<br />
z4XdgVTPXs6pETooQCkaTmspghlq2otQyxIEMQC.MQSBZFZmZZPS9.PS1jgl<br />
zAhloQ2fF.ZRmLtIY.nAcmnwN9Ae7XMQHaRI.D8r3W4B3+nCgWoL6qvvw.Ao<br />
l5h2ZAKzScU5QtUB6vwSKy0+Hqde9b1eAH1SDsC<br />
-----------end_max5_patcher-----------<br />
&lt;/maxpat&gt;<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=mtof}} object==<br />
<br />
[//www.maxobjects.com/?request=mtof Maxobjects.com listing for the mtof object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions (G - M)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=mtofmtof2013-03-27T18:11:54Z<p>Gtaylor@rtqe.net: /* {{maxword|name=mtof}} Tips and Workarounds */</p>
<hr />
<div>==[//www.cycling74.com/docs/max6/dynamic/c74_docs.html#mtof mtof online refpage]==<br />
<br />
==Using the {{maxword|name=mtof}} object==<br />
<br />
=={{maxword|name=mtof}} Tutorials==<br />
<br />
=={{maxword|name=mtof}} Tips and Workarounds==<br />
<br />
Since frequency is exponential rather than linear, using a simple slider never gave me good results for doing things like setting filter cutoff frequencies.<br />
<br />
The '''mtof''' object is perfect for this use. The ability to work with floating point values means that you can produce smooth filter cutoff values by sending the '''mtof'''object a floating point value between 0. and 127. for cutoff frequencies between 8.176 and 12541. Hz.<br />
<br />
==Third-Party Max externals similar to the {{maxword|name=mtof}} object==<br />
<br />
[//www.maxobjects.com/?request=mtof Maxobjects.com listing for the mtof object]<br />
<br />
==People who looked at/used this object also looked at....==<br />
<br />
==Errors or Clarifications==<br />
<br />
(please list things that you believe to be errors or omissions from the existing refpage)<br />
<br />
[[Category:Max Refpage extensions (G - M)]]<br />
[[Category:Refpage extensions]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_4Max Guitar Processor, Part 42013-02-06T23:26:10Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>At this point, we have a pretty useful guitar processing &quot;rack&quot;, but it could use a little spice. This spice will come from two additional processors: a looping delay unit, and a basic reverb system. Also, to help keep the output useful, we will drop a limiter on the back end of the entire rig.<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-4.maxpat.zip Download the patch used in this tutorial].<br />
<br />
===Tutorials in this series:===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
<br />
==Looping Delay==<br />
<br />
The first processor we will add is an alternative version of the delay line – one that provides tap tempo, looping and sound-on-sound functionality. Unlike our previous delay module, this one will not provide modulation (for flanging and pitch shifting effects); rather it will be focused on capturing a loop, and allowing overdubs of additional sounds.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/4-Tap_TempoB.jpg&lt;/img&gt;<br />
<br />
As with any delay line, the most important setting is the delay time. We use a standard floating-point number box for entry, but it is probably most convenient to use the &quot;tap tempo&quot; function that is implemented. By clicking on the tap tempo button four times, you generate a delay time that will match your taps.<br />
<br />
The tap tempo function is provided by the taptempo abstraction at the top level of the patch. It counts four incoming bang messages, determines the three intervals between the taps, takes the average and uses that for the tempo calculation. Since it is assumed that we are tapping quarter notes, but want to use a four bar measure, the result is multiplied by four to give us a delay time value. This is an area where you might want to modify the function to meet your needs – if you really want to have the delay run at the rate you tapped, you can remove the [* 4] object at the end of the processing chain.<br />
<br />
The basic delay design, as found in the loop_handler subpatcher, is very similar to the layout of the modulating delay. The few tweaks provided are there to support the looping functions. First, when the &quot;Freeze&quot; button is &quot;on&quot;, the feedback is switched to 100% feedback. This gives us a standard looping function. The feedback loop has a lowpass filter in it, which will change the audio in the loop if it is not fully open. The &quot;Input Active&quot; button is very important – it determines if the input signal is sent into the delay path. If it is off, the only output of the delay line is whatever is currently playing – if the delay is &quot;frozen&quot;, you will hear the loop, while with freeze off you will only hear the remaining contents of the loop line feedback. What is cool about this is that, when you freeze the delay line, you can still overlay audio parts onto the loop – giving you sound-on-sound overdubbing.<br />
<br />
I've also implemented a click track that cycles at the same speed as the delay time. This way, if you want to work up some one-bar loops, you can hear the timing (in quarter note click) even before you begin recording. Most of these concepts are classic delay techniques, but this sort of looping processor is exactly why many people first get into Max/MSP. Even if you aren't into guitar processing per se, you may find this looping delay system can jump-start your Max experiments.<br />
<br />
==Reverb==<br />
<br />
What would an effects processing rig be without a reverb? As is typical for any processing rack, I've installed a reverb as the last effect in the system – this way, we will get consistant reverb from both our looped and our live guitar lines. To provide reverb, I've gone to a third-party external object: Nathan Wolek's &lt;strong&gt;gverb~&lt;/strong&gt;. I happen to like the sound of it well enough, and I've wrapped it up in another abstraction so I can replace it in the future (if I decide to do that).<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/4-Reverb_HandlerB.jpg&lt;/img&gt;<br />
<br />
If you look into the subpatcher reverb_handler, you'll see that I expose the reverb time control to the top-level patch, but I also provide a reverb mix control that uses the pan2 abstraction found in Max's examples folder. This gives me a decent equal power pan – but why would I need to pan? In fact, I don't; but I can use them as equal power mixers as well. By using only one output of the panner, and reverse panning the live sound, I can get a decent mixing function will little effort. This may not be the most efficient processing stream, but it sure was easy to implement!<br />
<br />
===And a Limiter at the end…===<br />
<br />
Finally, to make sure everything stays under control, I've added a limiter to the end of the processing chain. I'm using the &lt;strong&gt;omx.peaklim~&lt;/strong&gt; object, which implements a good quality limiter. The parameters for this object are a little weird, so after some experimenting, I found a set that worked for me. These are loadbang'd into the object during startup, and never change. I also reconfigured the output section of the Presentation Mode to make everything fit a little better, but the functionality should all be familiar from previous weeks' articles.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/4-Limiter_HandlerB.jpg&lt;/img&gt;<br />
<br />
==Conclusion==<br />
<br />
This is the conclusion of new module additions, but far from the conclusion of this series. For my money, some of the most important information will be found in our next article, where we will cover preset management ('cuz I don't want to be mousing too much on-stage) and MIDI parameter controls (using my FCB-1010 foot controller). Get familiar with our new modules, and prepare for a big finale with our next Guitar Processing entry!<br />
<br />
[[Max_Guitar_Processor,_Part_5|Click here to see the next tutorial]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_3Max Guitar Processor, Part 32013-02-06T23:24:59Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In the last article, we added some basic tonal effects: distortion/overdrive and EQ/filtering. This time, we will expand our virtual effects rack to include both a phase shifter and a full-featured modulating digital delay. As we add these effects, you will begin to see why a DIY effects system can trump any commercial product.<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-3.maxpat.zip Download the patch used in this tutorial].<br />
<br />
===Tutorials in this series:===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Adding a phase shifter==<br />
<br />
The first module I’ve added is a phase shifter. It’s a full-featured implementation, featuring a variable number of phase shift stages and a frequency spread to provide a more complicated sound. Since this is obviously a well-considered piece of work, I surely had to steal from someplace, right? Of course! Luckily, I have access to some of the Pluggo source patches, and I’ve always liked this particular phase shifter’s sound. So I opened up the patch and copied the whole thing! By placing it in a subpatcher (phasor_handler), I keep it out of my hair at the top level. About all that I added to the patch is some scaling of the inputs to help keep the control ranges sensible.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/3-Phasor_HandlerB.jpg&lt;/img&gt;<br />
<br />
One of the interesting aspects of this patch is the use of the phaseshift~ object to provide the effect. Normally, a phase shift is almost imperceptible, but when the frequency is moving a classic phase shift sound is created. Stacking a few of these on top of each other (with the serial application of the onestage subpatcher) allows us to vary the depth of the effect by adding (or subtracting) phase shifting stages.<br />
<br />
==The modulating delay==<br />
<br />
The next module is a digital delay, complete with modulation, feedback (with filtering) and stereo enhancement. This is also the place where we go from mono processing to stereo, allowing each output to have a different (but related) delay time. The key to this is the “RHS Factor”, which determines the Right Hand Side’s delay time relative to the left side. Modest difference (like .98) will provide subtle depth, while more radical settings (like .5 or 1.5) will give rhythmic ping-pong echoes.<br />
<br />
If we switch to the Patching Mode and open the delay_handler subpatcher, we see that most of the work is being done by a pair of tapin~/tapout~ objects and some scaling functions. Creating the modulation – which allows this module to perform flanging, chorusing and vibrato effects – is accomplished by varying the delay time. We use a cycle~ object to drive the change; but you need to note that the delay time is consistently maintained as a signal routing, rather than an event routing. This causes the delay time to change without interruption, giving us smooth delay time transitions that can be used to our advantage.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/3-Delay_HandlerB.jpg&lt;/img&gt;<br />
<br />
==Dealing with the details==<br />
<br />
As you can see in the patching view, we’ve continued our patching patterns by creating a master patch for each effect module, with controls maintained at the top-level patch. If you switch to the Presentation Mode, you will see that we’ve also maintained another pattern: using knobs (the dial object) for controls that are best set by ear, and number boxes for controls that may need precise settings. For most people, a screen full of number boxes is confusing and intimidating – and this becomes worse when you are using a patch or program onstage. By limiting the use of number boxes to those controls that will specifically need them, you can reduce the amount of stress experienced when working with a patch.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/3-Patch_LayoutB.jpg&lt;/img&gt;<br />
<br />
Since the phase shifter and delay modules take up one full “rack space” in Presentation Mode, we also want to put another level meter at the end of the rack. However, since we now have split the sound into stereo, we need to use two meters instead. This gives us a quick visual to make sure that neither the phase shifter nor the delay unit settings are causing output distortion.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GTR-3-1.jpg&lt;/img&gt;<br />
<br />
==Conclusion==<br />
<br />
At this point, we’ve created a credible guitar processor with the most common effects in place. In our next article, we will dive into less familiar territory by taking on looping and reverb. See you then!<br />
<br />
[[Max_Guitar_Processor,_Part_4|Click here to see the next tutorial]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_1Max Guitar Processor, Part 12013-02-06T23:24:25Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In this series of tutorials, I will be building a Max-based guitar processing &quot;rig&quot;, and will give you the opportunity to look over my shoulder as I design and implement this system.<br />
<br />
'''''Note:''''' ''You may also be interested in an earlier article which appears on the Cycling '74 website by Andrew Benson and Ben Bracken titled [http://cycling74.com/2008/03/12/expand-your-guitar-vol-1/ Expand Your Guitar], which covers the basics of connecting a guitar to a Max-based processing system, includes a few guitar-oriented effects patches.''<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-1.maxpat.zip Download the patch]<br />
<br />
===Tutorials in this series===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Designing the System==<br />
The first thing I did was to plan the processing chain that I would create. I wanted a rather typical guitar rig, with the addition of a looping delay line. I decided on the following functional graph:<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-RigDesign.jpg&lt;/img&gt;<br />
<br />
I also made a few decisions about general program functionality. Since this will be a stand-alone program/patch, I wouldn't worry about limiting system usage; therefore I wouldn't wrap subpatches inside of &lt;strong&gt;poly~&lt;/strong&gt; objects (to reduce their CPU load when unused). Also, I decided to take full advantage of the Max 5 Presentation Mode layout, allowing me to code in a convenient way and worry about the performance layout in a separate step.<br />
<br />
Since I am a dyed-in-the-wool tweaker, I wanted to structure the code in such a way that I could manipulate it easily - even during live performance. This means that I needed to create an easily-to-follow patch that was well-labeled, and I needed to encapsulate at a level conducive to on-the-fly changes.<br />
<br />
Finally, in order to build this quickly, I decided to beg, borrow or steal as much of the programming as possible without resorting to the use of VST plug-ins (which would reduce tweak-ability). Throughout these articles, you will see me reuse older code, appropriate from other applications and use third-party objects whenever necessary. I also take full advantage of some design patterns I've developed that allow for quick coding of more complex patch routings.<br />
<br />
==Input and Gain Handling==<br />
<br />
Since this is a stand-alone patch, we need to control our own input and output. Let's start by creating an input section. If you open the patch [http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-1.maxpat.zip GtrProc-1.maxpat], you will see that I have discrete patch segments that correspond to the individual functions described in my processing graph. Place the patch into Presentation Mode, and you will see that these segments jump into a &quot;rack style&quot; package that is easy to follow during performance.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-RackLayout.jpg&lt;/img&gt;<br />
<br />
Move back into Patching Mode, and look at the top-left section of the patch. It is labeled &quot;Input&quot;, and includes several controls connected to an abstraction named &quot;input_handler&quot;. Double-click on the input_handler subpatcher to see its contents.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-InputHandler.png&lt;/img&gt;<br />
<br />
This subpatch is pretty simple: it contains a number of &lt;strong&gt;adstatus&lt;/strong&gt; objects that allow my controls to display and alter the audio settings used at runtime. The function is similar to using the DSP Status window, but exposes only those items I considered important for realtime performance. Since I don't use the &lt;strong&gt;adstatus&lt;/strong&gt; object very often, I don't know the functional arguments by heart. While I could have used the documentation to learn about the object, I decided to steal the functions from the help patch instead!<br />
<br />
By viewing the help patch, I can learn about the function of an object. However, all help patches are also functional Max patches. In this case, I was able to unlock the &lt;strong&gt;adstatus.maxhelp&lt;/strong&gt; patch, copy the functional objects that I needed, then paste them into my subpatcher. By connecting a few inlets and outlets, I'd created the small and efficient input setup handler that I needed.<br />
<br />
In addition to setting the DSP Settings, I also want to control gain at this point. This is especially important with an instrument-driven patch, since different input hardware will provide vastly different levels. In my case, I may be using an IK Multimedia StealthPlug, a mixer with an audio interface, or even a direct connection into my Mac's audio input - so I want good control of my front-end gain. I did this by adding a &lt;strong&gt;*~&lt;/strong&gt; object to the input section, then routed the input into this control. By using a scale control, I'm able to change the normal range of the gain knob (0-127) into a range that goes from 0.0 (silent) to 2.0 (double-volume).<br />
<br />
==Compression==<br />
<br />
The next stage of the patch is a compressor. Since compression can have a very significant effect on the sound of the instrument, I wanted detailed control over its parameters. Therefore, I am using number boxes (rather than knobs) to control the values; this gives me precise control over the compressor's operation without having to guess at a knob's output value.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-KompressorB.jpg&lt;/img&gt;<br />
<br />
Again, this section is mostly a set of controls connected to an abstraction named &quot;comp_handler&quot;. Double-click on this subpatcher to view its contents. This is a very simple subpatch; I've just borrowed the komp subpatcher (found in examples/effects/kompressor/lib of the Max folder) without change. I set a one parameter (lookahead) directly with a &lt;strong&gt;loadbang&lt;/strong&gt;, but mostly expose the functions directly to the main patcher. Since this subpatcher is so simple, why didn't I just use komp directly in my main patch?<br />
<br />
In the future, I may want to develop my own compressor system, or I may choose to implement the omx-based compressor included with MSP. I may even break down and use a VST compressor. In any of these cases, I would want to change the compressor &quot;engine&quot; without having to disturb my main patcher. By placing the compressor in a subpatch, I can change the underlying compression engine without ever having to change the top-level patch or the user interface.<br />
<br />
This is a &quot;high detail&quot; compressor, giving me the kind of control I want for a flexible rig. If you aren't that familiar with compression, though, it may seem a little intimidating. Here are a few settings that I've found useful with this processor:<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-table.jpg&lt;/img&gt;<br />
<br />
&lt;em&gt; (Sidebar)&lt;/em&gt; In each of the processing areas, you will see a small grey panel - it doesn't seem to do anything. However, when you switch into Presentation Mode, you should see these panels expand to become the background of the individual processing sections. This is an example of using the Presentation Mode's ability to change an object's geometry to keep my patching view clean, but give me an attractive user interface.<br />
<br />
==Output Staging==<br />
<br />
The final processing section for this tutorial controls the output. This section will be familiar to any Max/MSP programmer - it's the basis for audio output in almost any audio patch. The output of the compressor is sent to the two faders, which provide left/right volume control. The signal is then routed to an &lt;strong&gt;EZDAC~&lt;/strong&gt;, which is also our DSP on/off control. If you have your guitar (or other instrument) plugged into the computer, you can check the settings on the input module, turn on the DSP, turn up the volume and hear your instrument through the patch.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-OutputStuff.png&lt;/img&gt;<br />
<br />
However, it's not always convenient to test with an actual instrument. For example, some of this patch was done while I was waiting in an airport. The last thing the PSA wants to see is for me to pull out a guitar and start wailing. What I've done is to include a &quot;test fixture&quot; - some standard audio generating code - that I can use to test the patch as it is being built. You will notice that this section (labeled &quot;test fixture&quot;) gives me the opportunity to load and play a file or to generate noise. This is a small bit of code I've copied from another patch of mine - I use it as a test fixture for almost every audio patch I write.<br />
<br />
The output of this fixture is routed to a &lt;strong&gt;send~&lt;/strong&gt; object labeled &quot;test&quot;. This audio is received in the input section, at the same point that my patch would see an instrument from the audio input. This way, I can test patches without having an instrument plugged in, helping me to be productive when the guitar isn't easily available.<br />
<br />
==Conclusion==<br />
<br />
We've created the basic I/O blocks for our performance patch. In the next article, we will expand it by adding a good-sounding distortion/overdrive system and a highly controllable filter/EQ. In the meantime, work with this basic patch, learn to understand the routing between the objects and explore the use of the compressor. Until next time - have fun!<br />
<br />
[[Max_Guitar_Processor,_Part_2|Click here to see the next tutorial]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_2Max Guitar Processor, Part 22013-02-06T23:23:35Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In the last article, we did a lot of setup - we got input/output handling in place, and added a compressor to the processing chain as an example of an “effect module”. In this article, we will continue adding effects, including a dual overdrive module and a three-stage EQ/Filter module. With these additions we will further explore Max 5’s user interface options, as well as taking a look at some of the “tweaks” that make Max/MSP functions a little more guitar-faithful.<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-2.maxpat.zip Download the patch used in this tutorial].<br />
<br />
===Tutorials in this series:===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Adding an Overdrive Section==<br />
<br />
First up is an overdrive processor. I’ve found that the way to get the most variety with this sort of processor is to have two &lt;strong&gt;overdrive~&lt;/strong&gt; objects in series with a lowpass filter between them; the result is a controllable distortion/overdrive capable of some crazy variations. I have, again, encapsulated the overdrive functions in a subpatcher (in this case, called &lt;strong&gt;od_handler&lt;/strong&gt;), which implements the dual &lt;strong&gt;overdrive~&lt;/strong&gt; setup, as well as a &lt;strong&gt;selector~&lt;/strong&gt; that provides the bypass functionality.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/OD_HandlerB.jpg&lt;/img&gt;<br />
<br />
I’ve also added a level adjustment that allows us to tame the output levels post-overdrive~. This can be very handy, since some of the more extreme overdrive settings can cause high levels (both real and perceived). I’ve also connected a &lt;strong&gt;meter~&lt;/strong&gt; object to the output of the subpatcher, giving me a way to eyeball the output of the compressor-overdrive combination.<br />
<br />
==Adding an EQ/Filter==<br />
<br />
Next up is the creation of a EQ/Filter modules. This is going to use the &lt;strong&gt;cascade~&lt;/strong&gt; filter, which is a version of a biquad filter that takes lists of coefficients to create a complex filter curve. In order to control it with simplified controls, we will use a function of the &lt;strong&gt;filtergraph~&lt;/strong&gt; object that converts frequency/level combinations into biquad-type coefficients.<br />
<br />
By now, you should be able to see the design pattern in use: I create a subpatcher with the “guts” of the effect module, then attach controls for all of the variable parameters. Open the “filter_handler” subpatcher to examine the DSP funtions used. Most of this subpatcher converts the incoming values into useful frequency and level values, then sending them into &lt;strong&gt;filtergraph~&lt;/strong&gt; objects. I could have just as easily used &lt;strong&gt;filtercoeff~&lt;/strong&gt; objects, but using the &lt;strong&gt;filtergraph~&lt;/strong&gt; lets me see the individual filter settings, helping me verify that the individual filter parameters are being set correctly. The coefficient outputs of the &lt;strong&gt;filtergraph~&lt;/strong&gt; objects are “pak’d” into a list of 15 floating point values (five for each filter), then prepended with the cascade message. This informs connected filter objects that more than one coefficient set will be used to create a complex filter.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/Filter_HandlerB.jpg&lt;/img&gt;<br />
<br />
This list is now sent to a &lt;strong&gt;cascade~&lt;/strong&gt; object, which implements the equivalent of serial biquad filters that implement the cascaded filter settings. This could just as easily be implemented as several &lt;strong&gt;biquad~&lt;/strong&gt; objects, but using the single &lt;strong&gt;cascade~&lt;/strong&gt; object allows us to keep the signal count down.<br />
<br />
An important addition to this subpatcher is filter clearing. Biquad filters are based on delay lines that can occasionally get overloaded. In these cases, the filter is “blown”, and will not produce any output. The easiest way to fix a blown filter is to send it a clear message, but the downside is that it resets all of the filter coefficients, but doesn’t update any of the user interface elements that control the filter. So, in this case, when we receive a message in the “clear filters” inlet, it not only sends a clear message to the cascade object, but also sends a bang to receivers of the “fil_clear” send object.<br />
<br />
There is only one receiver of fil_clear: a receive object embedded in the subpatcher called “filter_clearer”. This simply resets all of the user interface elements to default values, providing visual feedback of the filter’s newly cleared state. It is important to implement a function like this whenever you are working with MSP filters, since blowing a filter is a common problem when experimenting with extreme filter settings.<br />
<br />
==In Review==<br />
<br />
Put the patch into Presentation Mode, and you will see that I’ve reordered the modules to maintain the row-column orientation of the signal flow. I’ve also added level meters at the end of each row. This is something that I’ve learned to do for performance patches - to place meters in strategic places, helping me to see “where” something is wrong when something goes wrong. As this patch develops, we will place a meter at the end of each row, combining useful debugging information with a cool, flashy display.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/Screen-1.jpg&lt;/img&gt;<br />
<br />
I also decided to make the visual EQ/Filter display very large in Performance Mode. This helps me see the result of subtle changes, and gives a better visual indication in the heat of battle. If you want to create and add modules of your own, you might want to make this part of the patch a little smaller - but be careful, since the EQ module can have a pretty drastic effect on your sound, and you will want as much control as possible.<br />
<br />
With the addition of the overdrive and EQ/Filter units, we have created tools to sculpt the sound of the guitar. Next, we will add a few more “effect-y” modules, including a smooth phaser and a modulating delay line. Until then, have fun with our new modules, and try to make some of your own using some of the techniques we’ve developed.<br />
<br />
[[Max_Guitar_Processor,_Part_3|Click here to see the next tutorial]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_2Max Guitar Processor, Part 22013-02-06T23:22:42Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In the last article, we did a lot of setup - we got input/output handling in place, and added a compressor to the processing chain as an example of an “effect module”. In this article, we will continue adding effects, including a dual overdrive module and a three-stage EQ/Filter module. With these additions we will further explore Max 5’s user interface options, as well as taking a look at some of the “tweaks” that make Max/MSP functions a little more guitar-faithful.<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-2.maxpat.zip Download the patch used in this tutorial].<br />
<br />
===Tutorials in this series:===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Adding an Overdrive Section==<br />
<br />
First up is an overdrive processor. I’ve found that the way to get the most variety with this sort of processor is to have two &lt;strong&gt;overdrive~&lt;/strong&gt; objects in series with a lowpass filter between them; the result is a controllable distortion/overdrive capable of some crazy variations. I have, again, encapsulated the overdrive functions in a subpatcher (in this case, called &lt;strong&gt;od_handler&lt;/strong&gt;), which implements the dual &lt;strong&gt;overdrive~&lt;/strong&gt; setup, as well as a &lt;strong&gt;selector~&lt;/strong&gt; that provides the bypass functionality.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/OD_HandlerB.jpg&lt;/img&gt;<br />
<br />
I’ve also added a level adjustment that allows us to tame the output levels post-overdrive~. This can be very handy, since some of the more extreme overdrive settings can cause high levels (both real and perceived). I’ve also connected a &lt;strong&gt;meter~&lt;/strong&gt; object to the output of the subpatcher, giving me a way to eyeball the output of the compressor-overdrive combination.<br />
<br />
==Adding an EQ/Filter==<br />
<br />
Next up is the creation of a EQ/Filter modules. This is going to use the &lt;strong&gt;cascade~&lt;/strong&gt; filter, which is a version of a biquad filter that takes lists of coefficients to create a complex filter curve. In order to control it with simplified controls, we will use a function of the &lt;strong&gt;filtergraph~&lt;/strong&gt; object that converts frequency/level combinations into biquad-type coefficients.<br />
<br />
By now, you should be able to see the design pattern in use: I create a subpatcher with the “guts” of the effect module, then attach controls for all of the variable parameters. Open the “filter_handler” subpatcher to examine the DSP funtions used. Most of this subpatcher converts the incoming values into useful frequency and level values, then sending them into &lt;strong&gt;filtergraph~&lt;/strong&gt; objects. I could have just as easily used &lt;strong&gt;filtercoeff~&lt;/strong&gt; objects, but using the &lt;strong&gt;filtergraph~&lt;/strong&gt; lets me see the individual filter settings, helping me verify that the individual filter parameters are being set correctly. The coefficient outputs of the &lt;strong&gt;filtergraph~&lt;/strong&gt; objects are “pak’d” into a list of 15 floating point values (five for each filter), then prepended with the cascade message. This informs connected filter objects that more than one coefficient set will be used to create a complex filter.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/Filter_HandlerB.jpg&lt;/img&gt;<br />
<br />
This list is now sent to a &lt;strong&gt;cascade~&lt;/strong&gt; object, which implements the equivalent of serial biquad filters that implement the cascaded filter settings. This could just as easily be implemented as several &lt;strong&gt;biquad~&lt;/strong&gt; objects, but using the single &lt;strong&gt;cascade~&lt;/strong&gt; object allows us to keep the signal count down.<br />
<br />
An important addition to this subpatcher is filter clearing. Biquad filters are based on delay lines that can occasionally get overloaded. In these cases, the filter is “blown”, and will not produce any output. The easiest way to fix a blown filter is to send it a clear message, but the downside is that it resets all of the filter coefficients, but doesn’t update any of the user interface elements that control the filter. So, in this case, when we receive a message in the “clear filters” inlet, it not only sends a clear message to the cascade object, but also sends a bang to receivers of the “fil_clear” send object.<br />
<br />
There is only one receiver of fil_clear: a receive object embedded in the subpatcher called “filter_clearer”. This simply resets all of the user interface elements to default values, providing visual feedback of the filter’s newly cleared state. It is important to implement a function like this whenever you are working with MSP filters, since blowing a filter is a common problem when experimenting with extreme filter settings.<br />
<br />
==In Review==<br />
<br />
Put the patch into Presentation Mode, and you will see that I’ve reordered the modules to maintain the row-column orientation of the signal flow. I’ve also added level meters at the end of each row. This is something that I’ve learned to do for performance patches - to place meters in strategic places, helping me to see “where” something is wrong when something goes wrong. As this patch develops, we will place a meter at the end of each row, combining useful debugging information with a cool, flashy display.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/Screen-1.jpg&lt;/img&gt;<br />
<br />
I also decided to make the visual EQ/Filter display very large in Performance Mode. This helps me see the result of subtle changes, and gives a better visual indication in the heat of battle. If you want to create and add modules of your own, you might want to make this part of the patch a little smaller - but be careful, since the EQ module can have a pretty drastic effect on your sound, and you will want as much control as possible.<br />
<br />
With the addition of the overdrive and EQ/Filter units, we have created tools to sculpt the sound of the guitar. Next, we will add a few more “effect-y” modules, including a smooth phaser and a modulating delay line. Until then, have fun with our new modules, and try to make some of your own using some of the techniques we’ve developed.<br />
<br />
* [[Max_Guitar_Processor,_Part_3|Next tutorial]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Tutorials:_A_Max_Guitar_ProcessorTutorials: A Max Guitar Processor2013-02-06T21:13:38Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>Take a look over [http://cycling74.com/author/ddgcycling74com/ Darwin Grosse's] shoulder as he builds a Max-based guitar processing patch that includes modules for compression, gain/overdrive, filtering/EQ, a phasor, a modulating digital delay, looping, reverb, and MIDI control.<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Max_Guitar_Processor, Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Max_Guitar_Processor, Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Max_Guitar_Processor, Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Max_Guitar_Processor, Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Max_Guitar_Processor, Part 5]]<br />
<br />
[[Category:MaxTopics]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Tutorials:_A_Max_Guitar_ProcessorTutorials: A Max Guitar Processor2013-02-06T21:13:09Z<p>Gtaylor@rtqe.net: Created page with &quot;Have a look over [http://cycling74.com/author/ddgcycling74com/ Darwin Grosse's] shoulder as he builds a Max-based guitar processing patch that includes modules for compression...&quot;</p>
<hr />
<div>Have a look over [http://cycling74.com/author/ddgcycling74com/ Darwin Grosse's] shoulder as he builds a Max-based guitar processing patch that includes modules for compression, gain/overdrive, filtering/EQ, a phasor, a modulating digital delay, looping, reverb, and MIDI control.<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Max_Guitar_Processor, Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Max_Guitar_Processor, Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Max_Guitar_Processor, Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Max_Guitar_Processor, Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Max_Guitar_Processor, Part 5]]<br />
<br />
[[Category:MaxTopics]]</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_5Max Guitar Processor, Part 52013-02-06T19:44:04Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In this, the final episode of our guitar processing extravaganza, we are going to step away from making effects and focus on performance support. For a system as complicated as this, performance support means two things: patch storage and realtime control. Thus, we will learn to create a preset system and manipulate the various on-screen controls with an inexpensive MIDI footpedal system.<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-5.maxpat.zip Download the patch used in this tutorial].<br />
<br />
===Tutorials in this series:===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Preset Handling==<br />
<br />
The &quot;pattr&quot; objects manage the basics of preset handling for complex patches. This subsystem revolves around an object called pattr, which maintains the state of a control and allows it to be saved or remotely controlled. In our patch, we won't use the &lt;strong&gt;pattr&lt;/strong&gt; object directly; rather, we will use the &lt;strong&gt;autopattr&lt;/strong&gt; object (which creates a virtual pattr for all named objects) and the &lt;strong&gt;pattrstorage&lt;/strong&gt; object (which provides for preset storage and remote dispatching).<br />
<br />
In order to make &lt;strong&gt;autopattr&lt;/strong&gt; work, we need to name all of the controls that we want maintained by the pattr system and we also must make sure that controls we want left &quot;untouched&quot; are unnamed. If you select a control and bring up the Object Inspector, you will see that I've named all of the appropriate controls, using a naming convention that identifies the module and control function for each UI element.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/5-InspectorB.jpg&lt;/img&gt;<br />
<br />
In addition to naming all of the controls (so they can be seen by &lt;strong&gt;autopattr&lt;/strong&gt;), I've also added a &lt;strong&gt;textedit&lt;/strong&gt; object that will be used as a preset name. This &quot;no-nothing&quot; field isn't connected to anything, but it is named – therefore acting as a place to put our patch name. Gotta have a patch name…<br />
<br />
Once the &lt;strong&gt;autopattr&lt;/strong&gt; object is in place, we also need to handle the selection and storage of preset data. That is what the &lt;strong&gt;pattrstorage&lt;/strong&gt; object does. We can use a &lt;strong&gt;number box&lt;/strong&gt; (in this case, with an up/down control) to select patch slots, and create messages that will store the current settings as a preset. We also need to add controls for saving and restoring the contents to a file. With remarkably little patching, we've created a complete device preset system.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/5-MIDI_HandlerB.jpg&lt;/img&gt;<br />
<br />
==MIDI Control==<br />
<br />
Another important aspect to a usable live guitar rig is MIDI control – specifically, control from a MIDI pedal board. I happen to have a Behringer FCB1010 MIDI Foot Controller, and I've integrated its use into this custom patch. I've created a simple set of functions to create a list of MIDI inputs and to select a set of control functions, then manage the MIDI input within the subpatcher called midi_handler.<br />
<br />
Incoming MIDI information is parsed (using the midiparse object), with program changes used to set the current preset slot. In addition, I use the program change command to act as a tap tempo button, since I have set the FCB1010 to produce the appropriate messages.<br />
<br />
The most important section of this patch, however, is the routing of MIDI control messages. I have a subpatch that compares incoming MIDI CC messages with our selected controller numbers, and only outputs valid control messages. This is then sent to a gate object, which routes the value to the correct message box (and, in some cases, a scale object that scales the values). These message boxes prepend the pattr name of a control to the value, then send this set back to pattrstorage.<br />
<br />
The result is an automatic update to the control, based on pattrstorage's message handling! This is a little known way of controlling pattr'd controls; we use pattrstorage as a &quot;dispatcher&quot; of messages, and let it update the control (and the current patch setting).<br />
<br />
One thing to watch out for, though, is that these changes overwrite the current setting in the pattrstorage preset slot. So, if you load a preset file, change a setting with the foot pedal, then save the preset file, your changes will become the new setting for that control. It's a good idea to always review your current patch when working with pattrstorage, and to separate preset creation from live performance!<br />
<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/gtr5-fullimage.jpg&lt;/img&gt;<br />
<br />
==Conclusion==<br />
<br />
I hope that this series have been inspirational to you. The design and execution of the final patch is particular to my performance needs, but should be easy enough to modify into a system that will work for you. I've included a file (mypresets.xml) with a few of the preset I use with this rig – you may want to start your customization by making presets of your own. But best result would be for you to take this patch, rip it apart, and create your dream guitar processor!<br />
<br />
Thanks for following the series, and feel free to [mailto:ddg@cycling74.com email me] with any questions or comments.</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_5Max Guitar Processor, Part 52013-02-06T19:43:22Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In this, the final episode of our guitar processing extravaganza, we are going to step away from making effects and focus on performance support. For a system as complicated as this, performance support means two things: patch storage and realtime control. Thus, we will learn to create a preset system and manipulate the various on-screen controls with an inexpensive MIDI footpedal system.<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-5.maxpat.zip Download the patch used in this tutorial].<br />
<br />
===Tutorials in this series:===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Preset Handling==<br />
<br />
The &quot;pattr&quot; objects manage the basics of preset handling for complex patches. This subsystem revolves around an object called pattr, which maintains the state of a control and allows it to be saved or remotely controlled. In our patch, we won't use the &lt;strong&gt;pattr&lt;/strong&gt; object directly; rather, we will use the &lt;strong&gt;autopattr&lt;/strong&gt; object (which creates a virtual pattr for all named objects) and the &lt;strong&gt;pattrstorage&lt;/strong&gt; object (which provides for preset storage and remote dispatching).<br />
<br />
In order to make &lt;strong&gt;autopattr&lt;/strong&gt; work, we need to name all of the controls that we want maintained by the pattr system and we also must make sure that controls we want left &quot;untouched&quot; are unnamed. If you select a control and bring up the Object Inspector, you will see that I've named all of the appropriate controls, using a naming convention that identifies the module and control function for each UI element.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/5-InspectorB.jpg&lt;/img&gt;<br />
<br />
In addition to naming all of the controls (so they can be seen by &lt;strong&gt;autopattr&lt;/strong&gt;), I've also added a &lt;strong&gt;textedit&lt;/strong&gt; object that will be used as a preset name. This &quot;no-nothing&quot; field isn't connected to anything, but it is named – therefore acting as a place to put our patch name. Gotta have a patch name…<br />
<br />
Once the &lt;strong&gt;autopattr&lt;/strong&gt; object is in place, we also need to handle the selection and storage of preset data. That is what the &lt;strong&gt;pattrstorage&lt;/strong&gt; object does. We can use a &lt;strong&gt;number box&lt;/strong&gt; (in this case, with an up/down control) to select patch slots, and create messages that will store the current settings as a preset. We also need to add controls for saving and restoring the contents to a file. With remarkably little patching, we've created a complete device preset system.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/5-MIDI_HandlerB.jpg&lt;/img&gt;<br />
<br />
==MIDI Control==<br />
<br />
Another important aspect to a usable live guitar rig is MIDI control – specifically, control from a MIDI pedal board. I happen to have a Behringer FCB1010 MIDI Foot Controller, and I've integrated its use into this custom patch. I've created a simple set of functions to create a list of MIDI inputs and to select a set of control functions, then manage the MIDI input within the subpatcher called midi_handler.<br />
<br />
Incoming MIDI information is parsed (using the midiparse object), with program changes used to set the current preset slot. In addition, I use the program change command to act as a tap tempo button, since I have set the FCB1010 to produce the appropriate messages.<br />
<br />
The most important section of this patch, however, is the routing of MIDI control messages. I have a subpatch that compares incoming MIDI CC messages with our selected controller numbers, and only outputs valid control messages. This is then sent to a gate object, which routes the value to the correct message box (and, in some cases, a scale object that scales the values). These message boxes prepend the pattr name of a control to the value, then send this set back to pattrstorage.<br />
<br />
The result is an automatic update to the control, based on pattrstorage's message handling! This is a little known way of controlling pattr'd controls; we use pattrstorage as a &quot;dispatcher&quot; of messages, and let it update the control (and the current patch setting).<br />
<br />
One thing to watch out for, though, is that these changes overwrite the current setting in the pattrstorage preset slot. So, if you load a preset file, change a setting with the foot pedal, then save the preset file, your changes will become the new setting for that control. It's a good idea to always review your current patch when working with pattrstorage, and to separate preset creation from live performance!<br />
<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/gtr5-fullimage.jpg&lt;/img&gt;<br />
<br />
==Conclusion==<br />
<br />
I hope that this series have been inspirational to you. The design and execution of the final patch is particular to my performance needs, but should be easy enough to modify into a system that will work for you. I've included a file (mypresets.xml) with a few of the preset I use with this rig – you may want to start your customization by making presets of your own. But best result would be for you to take this patch, rip it apart, and create your dream guitar processor!<br />
<br />
Thanks for following the series, and feel free to [mailto:ddg@cycling74.com email me] with any questions or comments: &lt;a</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_1Max Guitar Processor, Part 12013-02-06T19:39:58Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In this series of tutorials, I will be building a Max-based guitar processing &quot;rig&quot;, and will give you the opportunity to look over my shoulder as I design and implement this system.<br />
<br />
'''''Note:''''' ''You may also be interested in an earlier article which appears on the Cycling '74 website by Andrew Benson and Ben Bracken titled [http://cycling74.com/2008/03/12/expand-your-guitar-vol-1/ Expand Your Guitar], which covers the basics of connecting a guitar to a Max-based processing system, includes a few guitar-oriented effects patches.''<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-1.maxpat.zip Download the patch]<br />
<br />
===Tutorials in this series===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Designing the System==<br />
The first thing I did was to plan the processing chain that I would create. I wanted a rather typical guitar rig, with the addition of a looping delay line. I decided on the following functional graph:<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-RigDesign.jpg&lt;/img&gt;<br />
<br />
I also made a few decisions about general program functionality. Since this will be a stand-alone program/patch, I wouldn't worry about limiting system usage; therefore I wouldn't wrap subpatches inside of &lt;strong&gt;poly~&lt;/strong&gt; objects (to reduce their CPU load when unused). Also, I decided to take full advantage of the Max 5 Presentation Mode layout, allowing me to code in a convenient way and worry about the performance layout in a separate step.<br />
<br />
Since I am a dyed-in-the-wool tweaker, I wanted to structure the code in such a way that I could manipulate it easily - even during live performance. This means that I needed to create an easily-to-follow patch that was well-labeled, and I needed to encapsulate at a level conducive to on-the-fly changes.<br />
<br />
Finally, in order to build this quickly, I decided to beg, borrow or steal as much of the programming as possible without resorting to the use of VST plug-ins (which would reduce tweak-ability). Throughout these articles, you will see me reuse older code, appropriate from other applications and use third-party objects whenever necessary. I also take full advantage of some design patterns I've developed that allow for quick coding of more complex patch routings.<br />
<br />
==Input and Gain Handling==<br />
<br />
Since this is a stand-alone patch, we need to control our own input and output. Let's start by creating an input section. If you open the patch [http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-1.maxpat.zip GtrProc-1.maxpat], you will see that I have discrete patch segments that correspond to the individual functions described in my processing graph. Place the patch into Presentation Mode, and you will see that these segments jump into a &quot;rack style&quot; package that is easy to follow during performance.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-RackLayout.jpg&lt;/img&gt;<br />
<br />
Move back into Patching Mode, and look at the top-left section of the patch. It is labeled &quot;Input&quot;, and includes several controls connected to an abstraction named &quot;input_handler&quot;. Double-click on the input_handler subpatcher to see its contents.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-InputHandler.png&lt;/img&gt;<br />
<br />
This subpatch is pretty simple: it contains a number of &lt;strong&gt;adstatus&lt;/strong&gt; objects that allow my controls to display and alter the audio settings used at runtime. The function is similar to using the DSP Status window, but exposes only those items I considered important for realtime performance. Since I don't use the &lt;strong&gt;adstatus&lt;/strong&gt; object very often, I don't know the functional arguments by heart. While I could have used the documentation to learn about the object, I decided to steal the functions from the help patch instead!<br />
<br />
By viewing the help patch, I can learn about the function of an object. However, all help patches are also functional Max patches. In this case, I was able to unlock the &lt;strong&gt;adstatus.maxhelp&lt;/strong&gt; patch, copy the functional objects that I needed, then paste them into my subpatcher. By connecting a few inlets and outlets, I'd created the small and efficient input setup handler that I needed.<br />
<br />
In addition to setting the DSP Settings, I also want to control gain at this point. This is especially important with an instrument-driven patch, since different input hardware will provide vastly different levels. In my case, I may be using an IK Multimedia StealthPlug, a mixer with an audio interface, or even a direct connection into my Mac's audio input - so I want good control of my front-end gain. I did this by adding a &lt;strong&gt;*~&lt;/strong&gt; object to the input section, then routed the input into this control. By using a scale control, I'm able to change the normal range of the gain knob (0-127) into a range that goes from 0.0 (silent) to 2.0 (double-volume).<br />
<br />
==Compression==<br />
<br />
The next stage of the patch is a compressor. Since compression can have a very significant effect on the sound of the instrument, I wanted detailed control over its parameters. Therefore, I am using number boxes (rather than knobs) to control the values; this gives me precise control over the compressor's operation without having to guess at a knob's output value.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-KompressorB.jpg&lt;/img&gt;<br />
<br />
Again, this section is mostly a set of controls connected to an abstraction named &quot;comp_handler&quot;. Double-click on this subpatcher to view its contents. This is a very simple subpatch; I've just borrowed the komp subpatcher (found in examples/effects/kompressor/lib of the Max folder) without change. I set a one parameter (lookahead) directly with a &lt;strong&gt;loadbang&lt;/strong&gt;, but mostly expose the functions directly to the main patcher. Since this subpatcher is so simple, why didn't I just use komp directly in my main patch?<br />
<br />
In the future, I may want to develop my own compressor system, or I may choose to implement the omx-based compressor included with MSP. I may even break down and use a VST compressor. In any of these cases, I would want to change the compressor &quot;engine&quot; without having to disturb my main patcher. By placing the compressor in a subpatch, I can change the underlying compression engine without ever having to change the top-level patch or the user interface.<br />
<br />
This is a &quot;high detail&quot; compressor, giving me the kind of control I want for a flexible rig. If you aren't that familiar with compression, though, it may seem a little intimidating. Here are a few settings that I've found useful with this processor:<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-table.jpg&lt;/img&gt;<br />
<br />
&lt;em&gt; (Sidebar)&lt;/em&gt; In each of the processing areas, you will see a small grey panel - it doesn't seem to do anything. However, when you switch into Presentation Mode, you should see these panels expand to become the background of the individual processing sections. This is an example of using the Presentation Mode's ability to change an object's geometry to keep my patching view clean, but give me an attractive user interface.<br />
<br />
==Output Staging==<br />
<br />
The final processing section for this tutorial controls the output. This section will be familiar to any Max/MSP programmer - it's the basis for audio output in almost any audio patch. The output of the compressor is sent to the two faders, which provide left/right volume control. The signal is then routed to an &lt;strong&gt;EZDAC~&lt;/strong&gt;, which is also our DSP on/off control. If you have your guitar (or other instrument) plugged into the computer, you can check the settings on the input module, turn on the DSP, turn up the volume and hear your instrument through the patch.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/1-OutputStuff.png&lt;/img&gt;<br />
<br />
However, it's not always convenient to test with an actual instrument. For example, some of this patch was done while I was waiting in an airport. The last thing the PSA wants to see is for me to pull out a guitar and start wailing. What I've done is to include a &quot;test fixture&quot; - some standard audio generating code - that I can use to test the patch as it is being built. You will notice that this section (labeled &quot;test fixture&quot;) gives me the opportunity to load and play a file or to generate noise. This is a small bit of code I've copied from another patch of mine - I use it as a test fixture for almost every audio patch I write.<br />
<br />
The output of this fixture is routed to a &lt;strong&gt;send~&lt;/strong&gt; object labeled &quot;test&quot;. This audio is received in the input section, at the same point that my patch would see an instrument from the audio input. This way, I can test patches without having an instrument plugged in, helping me to be productive when the guitar isn't easily available.<br />
<br />
==Conclusion==<br />
<br />
We've created the basic I/O blocks for our performance patch. In the next article, we will expand it by adding a good-sounding distortion/overdrive system and a highly controllable filter/EQ. In the meantime, work with this basic patch, learn to understand the routing between the objects and explore the use of the compressor. Until next time - have fun!</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_2Max Guitar Processor, Part 22013-02-06T19:39:27Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In the last article, we did a lot of setup - we got input/output handling in place, and added a compressor to the processing chain as an example of an “effect module”. In this article, we will continue adding effects, including a dual overdrive module and a three-stage EQ/Filter module. With these additions we will further explore Max 5’s user interface options, as well as taking a look at some of the “tweaks” that make Max/MSP functions a little more guitar-faithful.<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-2.maxpat.zip Download the patch used in this tutorial].<br />
<br />
===Tutorials in this series:===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Adding an Overdrive Section==<br />
<br />
First up is an overdrive processor. I’ve found that the way to get the most variety with this sort of processor is to have two &lt;strong&gt;overdrive~&lt;/strong&gt; objects in series with a lowpass filter between them; the result is a controllable distortion/overdrive capable of some crazy variations. I have, again, encapsulated the overdrive functions in a subpatcher (in this case, called &lt;strong&gt;od_handler&lt;/strong&gt;), which implements the dual &lt;strong&gt;overdrive~&lt;/strong&gt; setup, as well as a &lt;strong&gt;selector~&lt;/strong&gt; that provides the bypass functionality.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/OD_HandlerB.jpg&lt;/img&gt;<br />
<br />
I’ve also added a level adjustment that allows us to tame the output levels post-overdrive~. This can be very handy, since some of the more extreme overdrive settings can cause high levels (both real and perceived). I’ve also connected a &lt;strong&gt;meter~&lt;/strong&gt; object to the output of the subpatcher, giving me a way to eyeball the output of the compressor-overdrive combination.<br />
<br />
==Adding an EQ/Filter==<br />
<br />
Next up is the creation of a EQ/Filter modules. This is going to use the &lt;strong&gt;cascade~&lt;/strong&gt; filter, which is a version of a biquad filter that takes lists of coefficients to create a complex filter curve. In order to control it with simplified controls, we will use a function of the &lt;strong&gt;filtergraph~&lt;/strong&gt; object that converts frequency/level combinations into biquad-type coefficients.<br />
<br />
By now, you should be able to see the design pattern in use: I create a subpatcher with the “guts” of the effect module, then attach controls for all of the variable parameters. Open the “filter_handler” subpatcher to examine the DSP funtions used. Most of this subpatcher converts the incoming values into useful frequency and level values, then sending them into &lt;strong&gt;filtergraph~&lt;/strong&gt; objects. I could have just as easily used &lt;strong&gt;filtercoeff~&lt;/strong&gt; objects, but using the &lt;strong&gt;filtergraph~&lt;/strong&gt; lets me see the individual filter settings, helping me verify that the individual filter parameters are being set correctly. The coefficient outputs of the &lt;strong&gt;filtergraph~&lt;/strong&gt; objects are “pak’d” into a list of 15 floating point values (five for each filter), then prepended with the cascade message. This informs connected filter objects that more than one coefficient set will be used to create a complex filter.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/Filter_HandlerB.jpg&lt;/img&gt;<br />
<br />
This list is now sent to a &lt;strong&gt;cascade~&lt;/strong&gt; object, which implements the equivalent of serial biquad filters that implement the cascaded filter settings. This could just as easily be implemented as several &lt;strong&gt;biquad~&lt;/strong&gt; objects, but using the single &lt;strong&gt;cascade~&lt;/strong&gt; object allows us to keep the signal count down.<br />
<br />
An important addition to this subpatcher is filter clearing. Biquad filters are based on delay lines that can occasionally get overloaded. In these cases, the filter is “blown”, and will not produce any output. The easiest way to fix a blown filter is to send it a clear message, but the downside is that it resets all of the filter coefficients, but doesn’t update any of the user interface elements that control the filter. So, in this case, when we receive a message in the “clear filters” inlet, it not only sends a clear message to the cascade object, but also sends a bang to receivers of the “fil_clear” send object.<br />
<br />
There is only one receiver of fil_clear: a receive object embedded in the subpatcher called “filter_clearer”. This simply resets all of the user interface elements to default values, providing visual feedback of the filter’s newly cleared state. It is important to implement a function like this whenever you are working with MSP filters, since blowing a filter is a common problem when experimenting with extreme filter settings.<br />
<br />
==In Review==<br />
<br />
Put the patch into Presentation Mode, and you will see that I’ve reordered the modules to maintain the row-column orientation of the signal flow. I’ve also added level meters at the end of each row. This is something that I’ve learned to do for performance patches - to place meters in strategic places, helping me to see “where” something is wrong when something goes wrong. As this patch develops, we will place a meter at the end of each row, combining useful debugging information with a cool, flashy display.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/Screen-1.jpg&lt;/img&gt;<br />
<br />
I also decided to make the visual EQ/Filter display very large in Performance Mode. This helps me see the result of subtle changes, and gives a better visual indication in the heat of battle. If you want to create and add modules of your own, you might want to make this part of the patch a little smaller - but be careful, since the EQ module can have a pretty drastic effect on your sound, and you will want as much control as possible.<br />
<br />
With the addition of the overdrive and EQ/Filter units, we have created tools to sculpt the sound of the guitar. Next, we will add a few more “effect-y” modules, including a smooth phaser and a modulating delay line. Until then, have fun with our new modules, and try to make some of your own using some of the techniques we’ve developed.</div>Gtaylor@rtqe.nethttps://cycling74.com/wiki/index.php?title=Max_Guitar_Processor,_Part_3Max Guitar Processor, Part 32013-02-06T19:39:05Z<p>Gtaylor@rtqe.net: </p>
<hr />
<div>In the last article, we added some basic tonal effects: distortion/overdrive and EQ/filtering. This time, we will expand our virtual effects rack to include both a phase shifter and a full-featured modulating digital delay. As we add these effects, you will begin to see why a DIY effects system can trump any commercial product.<br />
<br />
[http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GtrProc-3.maxpat.zip Download the patch used in this tutorial].<br />
<br />
===Tutorials in this series:===<br />
<br />
* [[Max_Guitar_Processor,_Part_1|Part 1]]<br />
* [[Max_Guitar_Processor,_Part_2|Part 2]]<br />
* [[Max_Guitar_Processor,_Part_3|Part 3]]<br />
* [[Max_Guitar_Processor,_Part_4|Part 4]]<br />
* [[Max_Guitar_Processor,_Part_5|Part 5]]<br />
<br />
==Adding a phase shifter==<br />
<br />
The first module I’ve added is a phase shifter. It’s a full-featured implementation, featuring a variable number of phase shift stages and a frequency spread to provide a more complicated sound. Since this is obviously a well-considered piece of work, I surely had to steal from someplace, right? Of course! Luckily, I have access to some of the Pluggo source patches, and I’ve always liked this particular phase shifter’s sound. So I opened up the patch and copied the whole thing! By placing it in a subpatcher (phasor_handler), I keep it out of my hair at the top level. About all that I added to the patch is some scaling of the inputs to help keep the control ranges sensible.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/3-Phasor_HandlerB.jpg&lt;/img&gt;<br />
<br />
One of the interesting aspects of this patch is the use of the phaseshift~ object to provide the effect. Normally, a phase shift is almost imperceptible, but when the frequency is moving a classic phase shift sound is created. Stacking a few of these on top of each other (with the serial application of the onestage subpatcher) allows us to vary the depth of the effect by adding (or subtracting) phase shifting stages.<br />
<br />
==The modulating delay==<br />
<br />
The next module is a digital delay, complete with modulation, feedback (with filtering) and stereo enhancement. This is also the place where we go from mono processing to stereo, allowing each output to have a different (but related) delay time. The key to this is the “RHS Factor”, which determines the Right Hand Side’s delay time relative to the left side. Modest difference (like .98) will provide subtle depth, while more radical settings (like .5 or 1.5) will give rhythmic ping-pong echoes.<br />
<br />
If we switch to the Patching Mode and open the delay_handler subpatcher, we see that most of the work is being done by a pair of tapin~/tapout~ objects and some scaling functions. Creating the modulation – which allows this module to perform flanging, chorusing and vibrato effects – is accomplished by varying the delay time. We use a cycle~ object to drive the change; but you need to note that the delay time is consistently maintained as a signal routing, rather than an event routing. This causes the delay time to change without interruption, giving us smooth delay time transitions that can be used to our advantage.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/3-Delay_HandlerB.jpg&lt;/img&gt;<br />
<br />
==Dealing with the details==<br />
<br />
As you can see in the patching view, we’ve continued our patching patterns by creating a master patch for each effect module, with controls maintained at the top-level patch. If you switch to the Presentation Mode, you will see that we’ve also maintained another pattern: using knobs (the dial object) for controls that are best set by ear, and number boxes for controls that may need precise settings. For most people, a screen full of number boxes is confusing and intimidating – and this becomes worse when you are using a patch or program onstage. By limiting the use of number boxes to those controls that will specifically need them, you can reduce the amount of stress experienced when working with a patch.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/3-Patch_LayoutB.jpg&lt;/img&gt;<br />
<br />
Since the phase shifter and delay modules take up one full “rack space” in Presentation Mode, we also want to put another level meter at the end of the rack. However, since we now have split the sound into stereo, we need to use two meters instead. This gives us a quick visual to make sure that neither the phase shifter nor the delay unit settings are causing output distortion.<br />
<br />
&lt;img&gt;http://1cyjknyddcx62agyb002-web-assets.s3.amazonaws.com/GTR-3-1.jpg&lt;/img&gt;<br />
<br />
==Conclusion==<br />
<br />
At this point, we’ve created a credible guitar processor with the most common effects in place. In our next article, we will dive into less familiar territory by taking on looping and reverb. See you then!</div>Gtaylor@rtqe.net