# Clojure Sound 3 - Hello MIDI Controller

DevFeed: [Clojure Sound 3 - Hello MIDI Controller](<https://devfeed.tech/articles/clojure-sound-3-hello-midi-controller-20721.md>)

Original publisher: [Read original article](<http://dragan.rocks/articles/22/Clojure-Sound-3-Hello-MIDI-Controller>)

Published: 2022-06-30T21:59:00Z

Content type: tutorial

Language: en

Sources: [Dragan Djuric](<https://devfeed.tech/sources/dragan-djuric.md>)

Topics: [Clojure](<https://devfeed.tech/topics/clojure.md>), [MIDI](<https://devfeed.tech/topics/midi.md>), [Arch Linux](<https://devfeed.tech/topics/archlinux.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [clojure](<https://devfeed.tech/tags/clojure.md>), [connectivity](<https://devfeed.tech/tags/connectivity.md>), [core](<https://devfeed.tech/tags/core.md>), [music](<https://devfeed.tech/tags/music.md>), [sound](<https://devfeed.tech/tags/sound.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [usb](<https://devfeed.tech/tags/usb.md>)

## AI overview

A Clojure Sound tutorial that introduces MIDI controller input and explains how to use it to control software on a computer. It discusses MIDI device connectivity, Clojure Sound, and example hardware such as the Faderfox MX12.

## Source excerpt

You may not know that music instrument were connected devices even in the Stone Age, that is, many decades ago. In the 80's that even resulted in the standard that facilitated connectivity of heterogeneous devices. Typically, you'd have a keyboard, a synthesizer, some external knobs, maybe effect boxes, and many of them could be connected by cable and talk to each other, even though that synth might be 27 years old, and the keyboard 2 years old. That's the power of standard. MIDI might not be technically impressive. Especially for 2022, its transfer rate is unbelievably slow. On the other hand, a random device that you'd pick up at the store, on a yard sale, e-bay, or even at the dumpster, is almost guaranteed to have a MIDI connector. So, even though you'd have a hard time connecting your iPhone with your Linux laptop, my guitar can talk with my Arch Linux desktop just fine (I'm not kidding, it really does!). Making that guitar send a meaningful data to my computer is another pair of shoes. MIDI is very basic, and it's up to the user program to make sense of the data it receives. It is likely that you'll want to use a random exotic device in a very specific way; after all, music and art are all about originality. But, to walk on the Moon, we first have to get up from our bed. That's today's objective: taking input from a MIDI device, and controlling something on our computer by twisting knobs. The software As for the software, we need nothing more than Clojure Sound(), of course! You can read how to prepare a fairly basic Clojure project in the first article in Clojure Sound tutorial series. (require '[uncomplicate.commons.core :refer [close! info]] '[uncomplicate.clojure-sound [core :refer :all] [midi :refer :all] [sampled :refer :all]]) The hardware It is unlikely that you'll have the same controller that I do, but so what? Any MIDI device that has a button or a knob on it will do! At this moment, I'm using Faderfox MX12, not because it's a great device (which it