How to design a wireless 3d printed digital musical interface (quick and dirty tutorial)
A friend asked me, this morning, if I could give her some pointers on how to start designing a 3d printed digital musical interface. realizing that the answer would be more than a few paragraphs I decided to write a blog post on the topic, for posterity. then as I started mind mapping an outline I began to realize how little of the process is digital or computer-y in any way. and when I say “the” process, I really mean “my” process. As I am a self trained designer, I developed processes which work amazingly for me but which, I have been told by engineer friends, are strange but OK, since the results work well. I will attempt to keep this post short enough not to need to take a break but long enough to be thorough.
realizations from my own exploration into form and function
When the y2k bug failed to send the earth hurtling off into space, all attention focused on another date in the future; the end of the Mayan calendar; Dec 21, 2012 when the end of time was supposed to happen. as I type this in April of 2014, I can safely say that the movie-esque version of this conceptualization of “end of time” didn’t happen, but, examined another way, the world is very different than a few years ago. maybe it wasn’t down to the day or even year of said prediction, but it must be noted that we live in an age of exponential change unlike anything we could have predicted and the rate of change is increasing, as well as the rate of the rate of change. thus is exponentiality. but what does this have to do with creating a 3d printed digital musical interface. EVERYTHING. we are swimming in a sea of perpetually changing and mutating technologies, this article would have been completely different 5 years ago and would have been science fiction 10 years ago. some of the techniques in this article that are so common place now, are thoroughly based in the now, not the past. of course it all builds on the past, but we are on the other side of a tipping point of possibility and must approach our expression exploration from that point of view.
The key technologies that we are building on here are the reprap and the arduino platform. I could exchange the term “reprap” with “3d printer” and keep it general, but I choose not to. I think the reprap platform is more important than 3d printing because it is 3d printing with the open source ethos built into its DNA. every reprap can build other repraps. if it can not, it is merely a 3d printing appliance which falls in line with consumer products and market forces. the reprap, lives in digital space and when called out of that space as a physical machine, it allows the creation of form, from mind, in 2-3 steps, max! as a comparison, before repraps, which kickstarted the whole 3d printer craze, manufacturing, plastic or otherwise, took a workshop with specialized tools which were usually expensive and or dangerous, and years of training, which was usually expensive in either time, money or both. with the open source reprap project, one could download the plans and build one for less than $1000. a reasonably dedicated amateur could create something, realistically, within weeks or months, not years. and once you’ve built one reprap, you can build another, usually better one, easily. not so with commercial 3d printers, so for me, reprap is the way to go.
many repraps electronic systems are based on an open source platform called arduino. this was intended to be a way for children to learn about electronics but soon satisfied a need that didn’t exist before it provided a solution; an easy to investigate electronics platform. all of a sudden, sufficiently interested individuals could buy a $20 circuit board and create or adapt things that were of importance to them. or maybe just something they thought was cool. in either instance, the arduino allowed a low barrier of entry and increasingly sophisticated use cases based on its open source genome; there is an endless amount of information on how to adapt it to do anything…ANYTHING. flying robots, weather tracking, small satellites, autonomous vehicles and for our purposes, wireless digital musical interfaces.
the less significant but still very noteworthy technologies that we are spoiled with here in the future are plentiful cheap sensors, discoverable in internet based shops, deliverable anywhere in the world, and equally accessible CAD design environments and programming languages that talk to these systems and allow you to talk to your new lifeforms and in some cases, teach it to talk back with increasing syntactical ability. the one I will be gushing over is called Pure Data www.puredata.info and specifically, pd-extended. this is a “data flow” language that you program by calling functions called “objects”, which are onscreen boxes with the name of the function in them, joined together by onscreen wires/cables. I love pd because at its heart, it is really just a math program with sound outputs. it is open source, free and can also communicate visually, as or over a network and can talk to anything that can be connected to a computer, like the arduino mentioned above.
all of the above mentioned tools are great singularly but for our purposes we need to make them work together. a musical interface must allow for the investigation of Self, through sound. that is my definition. if you want to play “an instrument” then there are are many to choose from. but the desire to create a musical interface from scratch, at such a low level, is really the investigation and expression of Self; how you move and think about what expression is for YOU. so going into this exercise with this goal in mind, will speed up your design process and result in something that evolves and grows as you do, possibly, for the rest of your life. it is not the creation of a thing, rather…
it is the physical manifestation of the beginning of an ongoing, evolving process trajectory.
the most important tool to begin with is a trinity of mind, paper notebook and pencil. your mind is your most important tool. it is your primary design software. if you can not build it in your mind first-imagining how it works, imaging playing it, how it feels, what it sounds like-then everything after that is a crap shoot. to do this part, my suggestion is to take large swaths of time to simply sit somewhere and let the mind wrap itself around the idea of what you want to create. at first it may be hard, maybe, but after a while, it becomes much easier to imagine your designs and iterations in multiple dimensions (cad design, code, sound, etc). (there is more I could put here about this stage, but it could fill a book. if there is interest in such a thing, let me know and I can look into it).
after doing this for a while(sometimes hours or days, sometimes weeks, months or years, depending on the idea), the pencil pretty much guides itself to the paper without having to force yourself into long drawn out session where you attempt to coax yourself through some selfhelp/mystical bullshit. the key thing to remember, is that…
your drawings are NOT art.
they are notes for YOUR mind.
a squiggly line might be a cable…or it might be your way to remember to pick up some eggs on the way home…this is YOUR space outside of your mind to begin to give your idea form.
I find that sometimes a drawing isn’t enough so I like to keep modeling clay around. I can, from my drawings, make a basic 3d form from clay then use my calipers to measure it before I take it into my CAD environment for 3d modeling. clay is your friend.
now that you have a basic idea of the form that you are shooting for, you will need to shift gears. it is at this point I like to shift to electronic concerns. once the form is developed, don’t move straight to CAD modeling because you now need to wrap that form around a basic function set and those functions are expressed using electronic parts, which have a defined shape and sometimes orientation. if you try to design and print the form now, without knowing what is going to go in/on/around it, you will inevitably have to start over to do this step any way, and will have wasted time and materials in the process.
with a basic drawn form you can now investigate the sensors, boards, lights and batteries required to make your system work. so first is to determine what sensors will allow you to do the thing you want to do. developing strong Google search-fu and proper online forum etiquette is crucial.
organize your thoughts at this time. I can not live without mind mapping software. I currently use xmind, but there are dozens of open source, free mindmapping programs for all platforms. what it does is allow you to get down to the precise questions you must ask yourself or someone on a forum. the gods of forumdom have little patience for overly broad questions or overly general ones that have been asked ad nauseum by “noobs” who haven’t gone to the trouble of reading the FAQ or searching the archives. do those things first and make note that you have done so before you ask your question. said question should be to the point and detailed enough that someone who knows can, if they are so inclined, check your research and give you an answer. remember, most of the people on them are like you, but maybe a bit more advanced. they have jobs and hobbies too, so don’t be an asshole.
create a mind map and drill down into what you are trying to accomplish (another topic for the book, but suffice it to say, there is lots of info on mindmapping properly, online). in the center of the mindmap is the subject but as you branch sub topics into more detailed subtopics, you end up with a constellation of very specific questions around the outside edge of your mind map. it is these specific questions you should ask, if necessary, after you have researched all that you can on your own and there is no other recourse. once you post the question, if you find the answer your self, it is proper etiquette to post said answer in the thread and mark it SOLVED for those that will inevitably search for it in the future. you become a part of the community in this way, instead of an anonymous leech. this is part of the value proposition built into the idea of open source. respect it.
so at a certain point, your sensors are working with your arduino. note; I use a firmware for arduino called firmata, which turns it into a digital input/output board that only sends and receives to the computer. my concept of digital interfacing is the interface as dumb sensor io, connected to the computer wirelessly. in this way, all the heavy processing is done on the computer, which I find to be more powerful than a purely arduino based system, but that Is pure preference, and not a rule of any sort. this is a good time to connect the arduino to the computer using your wireless transceiver. my choice for the last couple of years, has been the arduino fio/roving rn-xv wifi transceiver combo because it works, its upgradable, the arduino is mated to the wireless transceiver using a socket which also allows for things like xbee or an Ethernet “shoe” for cable connection and if one of these parts dies, I don’t have to replace one$50-100 board. each part costs less than $35. it is also quite small and has a built in battery charger. there are other boards out there that seem to be very cool, but I have been pretty satisfied with this one so I haven’t investigated those yet. (I wrote a tutorial for using this setup here)
one benefit of this system is that I coaxed it to use udp protocol bidirectionally, which means that instead of dealing with tcp/p running over serial, which introduces latency by way of constant error checking, udp is “connectionless”. this means that the computer blast data to the arduino and the arduino blasts its sensor data to the computer and neither cares if there are errors. the result is blazingly fast data throughput, which is very necessary for playing music in realtime. if your design is a singular system transceiver, then you can ad-hoc connect it to your laptop and call it a day. if there are more than one, the you will need to get a wireless router, dedicated to being the interface for your transceivers to connect to your computer, NOT the internet. in fact, if you want the lowest latency performance possible, you will need to ensure that NOTHING else connects to that routers ip address or set qos rules to ensure you have a guaranteed minimum bandwidth.
We will now assume that your electronic systems function on a basic level and you know the size of all the components that will go into your interface. at this point, go back to your drawings and/or clay models and revise the design to account for the actual parts that will go into the interface. now you must begin to think about printability in your design. its all good to want the design to be all swirling shapes but the reality of the reprap is that it prints from the bottom up which means that if it is designed in such a way that the bottom doesn’t touch the print surface or there are weird overhangs, ie printing on a surface that isn’t there, the design fails. I design in interlocking flat pieces. flat pieces stick well to the bed. if a part doest stick to the bed, then I make two pieces I can mate together by hand, after the fact. in fact my whole design process is based around the limitations of the reprap print concept: designs that will stay attached all the way through the print process and fulfill their function. I call it “dominant flat side design” each sub part has to have a dominant flat side. think of this from the beginning of the process and you wont end up with wasteful prints.
using the digital calipers mentioned above, measure each electronic component and/or groupings of components and model fitted templates where those components can mount. if you have enough 3d printer filament, print out the template to see if the components fit snugly (you can also use the data sheet for said component, but I like to measure things myself.) then it s merely a case of assembling these parts together in your cad environment, into a form that is as closely related to your drawings as possible.
with my Mayan calendar example firmly in mind, think of the idea of the 3d printer as enabling form to come from mind to this plane of existence, in 2-3 steps. the 3d printer is a dimensional portal through which physical manifestations of ideas come through, but the limitation of this “early stage” portal is the size of the print surface and the materials used. so although form is coming from another dimension, LITERALLY, the portal, in my case, is 140mm (long) x 140mm (wide) x 120mm (high), so although I could, say, manifest a great many things, they will either have to be that size or smaller, or come through in pieces to be assembled on this side of the vortex. so design accordingly.
As I stated above, this is the super quick run through of my process and at this point, you should have something that basically works, but it will never be perfect in the movie sense of the word. I see “perfect” as a significant point on a process trajectory. if it works at all, then its perfect. yaaaaay, you win! but as soon as it works you will instantly see things that can and should be evolved. welcome to the never ending process trajectory. it can always get better. it is part of you. it evolves as you evolve… as technology evolves. you are all intertwined now. and the most interesting part is that because you built it, you now have “insight”; with commercial “products” you know as much as they want to reveal about their process and “intellectual property”. with your interface, "you know EVERYTHING and can iterate in any direction you please. if something screws up, you can fix it or change it or delete it or start over from scratch. it is yours…it is you. you will begin to think “why isn’t more of my life like this” and your life will evolve along the exponential paths that made your interface possible. welcome to the future.