MusiCirTechUs

Plenty of people who work in technology are musicians. Plenty of humans are musicians, and all of us are listening, even those who cannot hear. In my travels through datacenters and software, I have come across musicians like myself who have not only done double-duty with their computer science and creative lives but also relate and interweave them. If they’re like me, they cannot break them apart. There are hundreds, if not thousands, of us. We all have different stories, came into the worlds of music and of technology from different angles and different backgrounds.

I’ll hazard a guess that when you think about the words music and technology together, it’s likely you’re thinking about music technology. This isn’t surprising, a great deal of music technology surrounds the production, performance, and recording of music. Musical Instrument Digital Interface (MIDI), studio recording, guitar pedals, analog control voltage synthesizers, DJ decks, Ableton Live, Max/MSP, Joe Armstrong running Erlang on Sonic Pi… the list goes on and gets fractally esoteric. All great examples of technology facilitating the art of music, but I’m interested in what’s happening the other way around.

The original impetus for this post was a comment someone made that raised an eyebrow… it made me briefly question the ideas I have about the field of resilience in distributed systems somehow relating to music. But humans share such an indisputably organic relationship with music and musical training that I knew I wasn’t just some crazy person, the connection was there and it was real. How else do I have the job I have now? This pushed me to want to find others that share my views on the close relationship music has with software and operational reliability.

Take Chloe Condon (Dev Advocate at Microsoft), a self-described recovering musical theatre actress. Now, my musical theatre training and tastes are preeetty specific, but I can relate. She pulls her theatre training into her work unforgivingly, and that is awesome because I fear that. Inspiringly passionate about the connections between her performing arts expertise and working in tech.

Recently chatting with her at SCaLE, Chloe clued me in about someone close to my wheelhouse: “Opera Singer turned Software Engineer” Catherine Meyers. Her Mozart could’ve been an Engineer talk correlates music theory and counterpoint to building software. She emphasizes the similarities of pattern recognition between the two disciplines, especially as it relates to learning. Preparing a new piece or constructing a score interpretation is 100% relatable to the software engineer learning a new language or building in a new framework. I especially love how she emphasizes the importance of having different types of minds together in one group, in other words, don’t be afraid to hire a music major.

These folks that are trained in synchronizing common ground through the experience of playing in musical ensembles carry a distinct advantage. Diversity and communication are the trademarks of both successful musical groups and software teams. Establishing common ground through shared learning is crucial to the modern team building and operating distributed software. It is obvious to me that ensemble music not only relates to complex systems but also to highly coordinated teamwork, to wit:

I’ve conducted marching bands, wind ensembles, and jazz bands... They are complex, highly interdependent systems.

Tanner Lund (SRE at Azure)

This couldn’t be more true! I have been in an experimental vocal trio, a free improv quintet, a blues band, a jazz group, an early music ensemble, a 330 piece marching band, uncountable operas with full orchestra and cast, chorales of few to many, piano accompanists by the dozen. There is nothing in any of these situations that doesn’t require common ground and shared experience.

In her blog post, The Origins of Opera and the Future of Programming, Jessica Kerr (Lead Engineer at Atomist) introduces the concept of symmathesy, a state of collaboration that is integrated with learning, all as part of the system (even the tools are team members). She does so by taking us back to the foundations of modern opera in Italy, adeptly adopting the term ‘camerata‘ from the Florentine Camerata example she uses, applying it next to social circles of painters and artists in later centuries, and then to teams creating software. She considers how our mental models evolve and how common ground is reached through the shared experience of a varicolored team from all sorts of different backgrounds, ultimately making the team more powerful. “We are developing whole new ways of being human together” she states, and to me, that’s nowhere more clear than with multi-disciplinary collaboration.

The CS / Math / Music crossover is clearly one I have encountered a lot, from early on. While I was studying voice and music technology in undergrad, I vividly remember walking with a good friend in downtown Blacksburg, and her saying to me “I could never major in music, there’s too much math.” I used to laugh at this because there’s really only as much math as that you wish to encounter. Want to dive into tempered tuning and Kepler’s mathematical ratios for perfect fifths? Go for it. But you know, these days I look at that statement through different lenses. Yes, there is just enough math! And if you study music, you may run the risk of studying computer sciences. * Please be aware that some practitioners of both have reported sudden bouts of inspiration and lightheadedness due to euphoric discoveries that cross disciplines.

On the subject of cross-discipline study…

I find a lot of what of I learned in music performance transfers directly to public speaking.

Amy Tobey (SRE at GitHub)

As a student of opera, I couldn’t agree more. Long ago I had a theatre teacher tell me “you will never be happy not onstage.” I didn’t know what she meant until I myself experienced exactly the same kinds of challenges and rewards with giving talks and public speaking as I did singing Mozart or Fauré in front of large audiences. I discovered that my experiences onstage presenting music are exactly the same headspace as when I’m talking in front of a room of computer people about distributed systems.

When I gave my talk Measuring Distributed Databases Across the Globe at Southern California Linux Expo 13x (2015), a very enthusiastic artiste-cum-techie approached me afterward. They had decided to move into software engineering after art school and said my talk, which combines theories and ideas in music with those of observing and operating huge distributed databases, was inspiring. They had been trying to reconcile their internal ‘artistic identity and self’ with their passion for coding, and I had opened their eyes to a new way of considering it.

I will never forget this. It was exactly like having someone come up after one of my experimental music performances (which are also heavy with technology) being blown away and asking how things worked. Even if one mind out of a thousand is influenced by what I’m doing, whether it’s music or technology, I’m building the camerata through sharing.

Eureka! The audience contributes to symmathesy, too. There are tons of examples; the feedback of a crowd during a DJ set, participants of David Tudor’s Rainforest, someone opening a candy wrapper at the symphony. There’s no getting away from the audience, however small. John Cage preached throughout his career as an avant-garde composer: listeners are participants. Every performance is something new because there are different people in different places every single time. The title of this piece is a play on Cage’s Musicircus, an amalgamation of disciplines and performers occupying the same large space together with the audience.

So consider the sheer experience of music and how it feels oddly in-step with how we think about technology, and take it one step further. Many of us trained in the practice of music consider it so much a part of our bones that it seeps into our work, we don’t have a choice, the pattern recognition pathways seem to match up. They fit into our psyches in a comfortable way, share the same affinity for abstractions, incorporate complex and overlapping systems that stretch the human capacity for comprehension.

Do I have an aptitude for music because I’m successful in understanding the practical application of complex things? Or do I have an aptitude in technical operations because I have been trained in music and theatre arts? Doesn’t it make sense that the diversity of music is a human quality, not a disciplinary one? Why should our work as computer scientists, software engineers, database operators, and network gurus be any different?

Temple Grandin talks about the world needing all kinds of minds. In her view, different people fall amongst three “categories” of thought: Picture (common on the autistic spectrum), Pattern (code, math, music), and Verbal (writers). It resonates with me a great deal because I always feel like I’m thinking in ways others are not. More specifically, though, it underlines how different styles of thinking can bring entirely new perspectives on a particular question, and how crucial diversity is to human endeavor, if not evolution itself.

This post started out as me being passionate about a subject and wanting to search for others who were. I had some bullet points of my own to insert, but as I searched and connected with others in the field, I learned new things and this blog transformed from a list of Twitter handles to real human relationships. I have grown to understand what Kerr means when she says that ideas are for sharing and collaboration, not hoarding and heroism. I for one am claiming my spot in the camerata that pushes us forward through a New Renaissance.

To Build or To Buy, That is the Contradiction.

It’s dead simple. Focus on your team and product.

Yes! An easy tweetable answer! Except that it’s loaded with questions and assumptions. Instead, what I will talk about here are technology decisions. Those that really matter are about things that elevate your ability to build what you are building at the velocity you need.

In Operations and SRE, we are not only tasked with evaluating and testing technologies, we are often requested (or sometimes instructed) to support the decisions others make. This isn’t an ideal situation, and in some cases, impractical because it feels like a policing. In fact, it might sound a little selfish to think that SRE needs the ability to say “yay” or “nay” to a decision. If you think that feels slightly siloed, you’d be right. I prefer working with all vested parties to come up with a solution that fits the problem, not just make blind leaps of faith on a particular platform. Flexibility and cooperative evaluation work really really well, believe it or not.

In my experience, it takes a minimum of six months for a team to work up a brand new (to them) technology or platform and have it be supportable in production. Even then, if the software team building it won’t be permanently oncall for it (which is something else I believe), they should at least be on the hook for a minimum of six months further as the kinks are worked out. This seems fairly straightforward for something like a development framework or a particular platform specific to operating the software system in question. For example, adopting Redis as a DBRE-supported platform in production. There are clear reasons why the software needs this kind of ultraspeedy k/v store, and building up widespread support in SRE for it means other software teams benefit. That is a highly opinionated decision and one that’s fairly easy to make especially because it’s free!

But is it? In contrast, what happens when you need to fulfill the needs of infrastructure? This is where Operations tires really hit the road. This doesn’t mean it’s a siloed decision, for example introspecting the system is as important to reliability engineering as it is to the folks developing the software. The Redis example above shows how technology decisions become a crucial part of the collaboration among everyone involved building your product, whether it be dev or sec or ops or everything in-between. However, it doesn’t quite reflect the reality of infrastructure requirements, particularly tooling that supports the needs of reliability. “We need monitoring and we need it yesterday!”

So, I posit: There is no “Build or Buy”. There is only Buy.

I build electronic instruments. My product is the music I make, and one the central philosophies in my approach to improvisation and performance is the concept of “original sound”. What music does a plucked cactus make when amplified, or how can a mercury tilt-switch and photoresistor create sound from electrons? The top picture here is of a breadboard, a prototype of a device that will eventually drive something called a “Voltage Controlled Oscillator”, or VCO. To the left is a photo of a professionally designed, tested, and built VCO. I have no need to design and build a VCO, even though fun, it is a distraction – both in time and money – from my main purpose: the creation of a new kind of analog synthesizer controller. I’d rather buy the VCO and the accompanying support of the experts who not only built it but are passionate about its success. Then I can focus resources on my creativity.

The technology decision to be made is heavily informed by what kinds of resources you want to spend on it. Building a platform in-house, using your own people, is sometimes only feasible with very large companies that have the ability to staff for this, and often have custom circumstances. It’s not hard to notice that a few very successful software platforms come out of organizations in this position. These teams also must deal with all the infrastructure costs, maintenance, reliability, and complex aggregations of data and transports. These problems have indeed been solved many times over by third party SaaS/PaaS/IaaS solutions, but sometimes the amount of customization required demands it. Or the development of these systems may be so clearly aligned with the company objectives that it is a non-question (e.g. Netflix pioneering Chaos Engineering or Google producing Borg/Kubernetes).

These days, such cases are the exceptions. Most of us are with companies where this luxury and concentration of engineering ability aren’t present. It may make a ton more sense to choose an expert in the field, whose company mission is specifically to provide this need. The argument that Ops Is A Cost Center is underlined, because the focus should really be on the product. “We’re good enough we can run a custom log aggregation stack at the same time we’re developing this completely dependent but orthogonally related product” is probably an approach that should be questioned, unless of course you are prepared to buy those resources through hiring and operational expenses.

Either way, you’re building something. Recall the decision to choose Redis, and how long it took to enable that system in production. The same will apply to any in-house platform or tooling. Nevertheless, it’s a tradeoff. To buy resources for building in-house or buy a third party SaaS, each have their own layers of complexity, complication, and frustration. Yep, it might be fun to build, but is embarking on such a project really the right choice for the team and the product?

Like many in Ops, I once considered the “Elastic Search / Logstash / Kabana” (aka ELK) stack for datacenter log aggregation. All its various pieces are a fun complex thing to put together, and it’s an extremely useful resource for gathering and displaying events. All these pieces are freely available things, but our SRE teams were already pretty busy with the task of running our own product and other custom bits of infrastructure. It would take at least a single SRE’s full time and attention to keep the stack running across multiple server farms of 10,000+ nodes. Not to mention training and documentation for others. Maintained, tested, resilience-hardened, budgeted, the list goes on. I’m definitely going to be “buying” a lot here, and it’s a messy looking BOM. ELK’s competitors at the time ranged from fairly entry-level cloud-based SaaS to “Enterprise” packages, but one vendor, in particular, would be a great solution. Was there a cost and the administrative toil of negotiating a contract and keeping a vendor relationship going? Yep. It’s also a single invoice, takes much less time from the SRE team to manage, and is much simpler to integrate with the farm.

Would you rather focus on building the instrumentation into your software and have a team of external experts guide, consult, and ultimately provide the intelligence platform to which they have dedicated their careers? Or would you rather split focus and build your own customizations into the infrastructure? It’s not black and white, either. One method may outweigh the other depending on whether you’re bare-metal or in the cloud. There may be security reasons to do one over the other. As the software product matures, these needs may blur. What needs to be bought may be simple and small or complex and large, and grow in either direction.

So let’s be clear: a third party platform isn’t automatically “more expensive” than creating an equally performant service or fulfill a particular infrastructure reliability need in-house. Do the research and compare, make the investment that makes the most sense for your team.

Don’t be fooled, though. Either way, you’re buying it.

DIY Audio: UNPLUGGED

Probably around five years ago now, while much further in the depths of a thrice-laid-off financial hole the technology industry bestowed upon me, I became fixated with actually building my own electronic instruments. Ensuing the expertise to make music that way, I departed into the wide unknown universe of DIY audio.

The first time I encountered a small, personal modular synthesizer was during a long gallery installation and collaborative work by Achim Wollscheid in Chicago (I also happened to have given him a ride to where he was going his first night there, and had rich conversations for the short time we were all together). I had my motley collection of contact-mics and sampling objects and looping pedals and probably what could be called a portable John Cage concert, which I used to improvise alongside Achim as he did the same over enormous loudspeakers placed in the ceiling of the large public space in this gallery (yes, I recorded). Anyway, someone else coming in to collaborate set up next to me on the balcony overlooking the space, revealing a portable Doepfer A-100 suitcase model.

That’s when it was over. That’s the exact moment when a lot of things clicked, but apropos to our topic it was definitely the first time I felt the urging pang of modular desire, and barely realized it.

Fast forward ten years; as of 2012 I am the proud owner of a new disease known casually as idiomatic modularsynthacropy, or the addiction to building complex systems realized by modular synths. I think it’s genetic, because this is an occupation my wife lovingly calls “The Rocket” due to my studio resembling a half-built starship cockpit (or at least the bar in one), and my brother being an actual rocket scientist.

It first manifested itself after Chicago “event” in the form of electronic tinkering and eventually the building of my own simple devices, made specifically to be used alongside other analog/acoustic instruments of improvisation. As it happened certain events also related to my unlucky job streak in the Internet business ended up affording me a barebones entry-level one 3U rack half-full beginner outfit: 8 ‘eurorack’ style modules, the format Doepfer popularized, and in fact some are the very same kind I had first seen in that suitcase ten years ago.

Muffwigglers is the forum for this disease, and there’s even a forthcoming documentary. A lot of the musicians I admire the most are modular users, and I’m happy and fortunate to join their ranks along with a pretty decent wealth of electronic building knowledge under my belt in addition to the musicality. So I shared some of my accumulated knowledge recently on that forum, and wanted to post it here and add a bit of history.

 


Everything listed here except for the first book were published after I started into the DIY world of audio, and after spending literally DAYS of searching and reading electronics tutorials and articles online, they have become my ‘go-to’ stack for reference and inspiration.

1. If you aren’t familiar with Forrest Mims, get familiar with him. I just picked up Vol I. of his “Engineer’s Mini Notebook” series, which is titled: Timer, Op Amp & Optoelectronic Circuits & Projects. It should have been titled: The Building Blocks of Analog Modular Synthesis, and I wish I had discovered it five years ago when I first started into building this stuff, cause it is indispensable. All the “how do i build a 555 timer?” and “how do i correctly power an opamp?” or “what frequencies do i get if i change these resistors?” questions that you search for hours on the Internet? It’s all in here – there’s even a chapter on photocouplers – aka ‘varactors’ – which are used a lot for CV audio systems.

2. Another specific project-oriented book but much more glossy and full of awesome examples and a DVD (which I haven’t gotten around to watching yet, shame on me) is Handmade Electronic Music by Nicolas Collins. This one is specific to DIY audio hacking and electronic building, covering everything from building oscillators (different chips than the Mims books!) to circuit bending and experimental electronics.

3. Make has started releasing awesome print publications (I have two of the Maker’s Notebooks and love them). The one I’ve found the most applicable and helpful to audio DIY is by Charles Platt and is one of the first: Make: Electronics. Simple, easy to understand tutorials on the foundations of… well, making stuff. With Electronics.

4. Finally the most general of all of them but something that is a great learning resource for a wide range of electronic applications, by Michael Jay Geier, How to Diagnose and Fix Everything Electronic. The title doesn’t lie. Every chapter is basically a Cliff’s Notes on that particular subject or piece of equipment, summarizing how it works, what might go wrong with it or often does, and how to troubleshoot and fix it. It also includes quick introductions to fundamentals of physics and other things related to electronic parts and machines… and most importantly to us, a wonderful introduction to oscilloscopes and how to both choose and use them.

All these books together will probably cost you as much as a good VCO module! lol But they are worth it, I highly recommend any of these to the DIY audio muffer.


Line6 ignoring Mac users?

Someone showed me this incredibly awesome looking ‘DIY’ pedal being done by Line6 called the ToneCore DSP Developer’s Kit. At first I think, aaah what a cool platform for custom DSP pedal effects, what a nice little generic pedal with cool ways of creating my own DSP configurations… you can imagine the excitement, so unfortunately diffused by this paragraph:

Will this platform be available on the Mac?

Probably not, sorry. Freescale, the company that makes the processor, writes the development tools and as far as we know, they have no Mac development tools planned. However, it may be possible that these tools may work on an Intel-based Mac using one of the Windows emulating solutions.

WHAT? Are you kidding me? Come on, Line6, couldn’t you have picked an actual OPEN platform like Arduino or something?

“Booglitchoo” Synth Prototype

Here we go… I’ve optimized the way I’m using power, love the way the dual jfet opamps (TL082) sound, and have the mixing elements mostly decided.

To be done on this prototype:

  1. use either capacitor switching or a simple 4017 sequencer to change up the textural possibilities of the oscillator
  2. add switches to the voice modulator to allow for “skipping around” pitches instead of only up or down changes
  3. CV input

I went through quite a few opamps before finally deciding on the dual jfets, and now I really dig how they’re working with the complex waveform of the four NAND gates (NTE4093)… I use it first as a multipole low-pass filter to shape the sound of the chained oscillators.

Because of the nature of the sounds I don’t find much use for the vibrato section of the voice modulator (HT8950), but don’t mind at all because it reduces the component count and I’m finding an incredible amount of possibilities already. You’ll also notice I’m using my fingers on a couple of resistors to change the pitch… I discovered this by accident, but really like the gestural aspect of it so much that I’m planning on building a touch interface into the final design. 🙂

The whole thing is finally mixed into another dual opamp, with a follower/buffer and a high-gain resonant Q notch filter to add some harmonics and really cool sweep possibilities.

Excited to have this core design done, LOVE playing with it! Now it’s just a matter tweaking and expansion.

Matrix Mixering

I’m building a 3×3 matrix mixer and have been scouring the Internet for examples and technical ideas. Even though a Google search can give you days of examples of opinions on which OpAmp to use at what stage, I’m more interested in the actual pedagogy of building the thing in the first place. So here are some of the better links I’ve uncovered that are useful for getting your head around the entire idea of designing a matrix mixer.

A lot of good guidance here, using OmAmps for buffering, though I think the best thing about this page is the nice wiring schematic at the very bottom on how to wire buses.

This JFET style mixer is basically a step up from a passive mixer with no buffers, sometimes used in place of an OpAmp:

These are a selection of great starting points for learning how to build simple input/output buffers, focused mostly on JFET, but with some discussion of JFET OpAmps:

Ken Stone’s well known mixer designs. PCB’s are no longer available, but the theory and technique is there:

The Doepfer A-100 DIY Matrix Mixer example schematic (about halfway down the page):

The Bucha Matrix Mixer Clone thread at Electro-Music contains vtl5c3’s posts about his 8×8 project, which follows the Buchla design. The only place I’ve been able to find the Buchla schematic online, and has great photos of the mixer’s guts:

 


UPDATE:

I’ve breadboarded the input/output stages with NTE451 JFET’s using a 50k pot and 56k ‘mixing’ resistors, I think I’ve found the perfect combination out of parts I already own… I need to swing by Orvac later today and possibly pick up more transistors and resistors so I can build the protoboard. -mrd 20110411

My synth project: complete!

Here’s something I thought I’d never see myself do in my own lifetime: build a synthesizer from scratch.

Actually it’s a simple design: 2 555 timers in astable configuration producing square-waves. This means it’s a burst of sound every interval, pretty annoying and not very useful except for maybe starting earthquakes. So to give it a little flavor, I put a low-pass, 2-pole filter on the output of each oscillator, using a traditional operational amplifier.

K2 Schematic

A bit over a year ago it started out as a learning experience for me, I had never gotten into building things with analog circuitry – although I dated a chick in college who was an EE, so I was vaguely familiar with a breadboard. As a result, my design is über simple, and in reality was the design I could “get to work” from the opamp (a weird beast in itself, I will be tackling it again soon enough).

After a lot of experimentation and research on the web (these days a DIY’ers first reference), I came up with a 2-rail power design that provided 9V for the oscillators and 4.5V for the bipolar opamp (just left of the battery in the schematic). Moving left, the 741 opamp (NTE941) provides a low-pass, 2-pole filter to the signal from the 555 timer (NTE955).

completed synthguts

The cutoff frequency of the filter is controlled with a potentiometer, as is the pitch of the oscillator. You can also see my modification in the lower left for a “range” switch, which wasn’t on the breadboard prototype, but made it onto my final PCB because I think it adds a lot more interest and possibilities.

This was an intense project, no doubt. I got some training on soldering little kits that got made into sculpture, and I am a proud builder and owner of a bleep labs thingamakit, and have recently built the wave sheild for my new arduino board (which I haven’t quite gotten to work yet, so I hope it’s my programming skills and not my soldering skills).

As much as I tried to plan out wire distribution inside the chassis where the pots and switches would not interfere too much with the PCB, sure enough I drilled the holes sort of on the wrong end of the enclosure, so the edges don’t match unless I flipped it, and of course I only discover this after everything is screwed into the front. So, fixing it meant pulling all the knobs and switches back out, and removing the PCB from its mount on the inside and flipping it 180 degrees, then re-attaching everything.

In the end it really didn’t make that much of a difference and the whole thing came together fairly perfectly anyway. What I haven’t really done is add any decoration or labels, which I do want to do… inspiration will strike when I least expect it, perhaps it will not only get illustration but also a name, and it will evolve!