MIDI – Jacob N Calvert https://jacobncalvert.com/blog-archive Fri, 02 Mar 2018 02:58:44 +0000 en-US hourly 1 https://wordpress.org/?v=6.0.17 https://jacobncalvert.com/blog-archive/wp-content/uploads/2018/02/cropped-icon-32x32.png MIDI – Jacob N Calvert https://jacobncalvert.com/blog-archive 32 32 New MIDI protocol extension paves way for “significant expansion” https://jacobncalvert.com/blog-archive/2018/03/01/new-midi-protocol-extension-paves-way-for-significant-expansion/ https://jacobncalvert.com/blog-archive/2018/03/01/new-midi-protocol-extension-paves-way-for-significant-expansion/#respond Fri, 02 Mar 2018 02:58:44 +0000 http://jacobncalvert.com/?p=211 The Musical Instrument Digital Interface (MIDI) spec has been around since the early 1980s. The introduction and wide adoption of the standard has allowed multitudes of musicians, musical enthusiasts, hackers, programmers, and geeks/nerds of all varieties to create, modify, update, and generally hack this awesomely simple protocol into many instruments and tons of other stuff (see these crazy but cool MIDI interfaces). A New Spec These days the MIDI spec can be be found implemented on tons of hardware, from…

The post New MIDI protocol extension paves way for “significant expansion” appeared first on Jacob N Calvert.

]]>
The Musical Instrument Digital Interface (MIDI) spec has been around since the early 1980s. The introduction and wide adoption of the standard has allowed multitudes of musicians, musical enthusiasts, hackers, programmers, and geeks/nerds of all varieties to create, modify, update, and generally hack this awesomely simple protocol into many instruments and tons of other stuff (see these crazy but cool MIDI interfaces).

A New Spec

These days the MIDI spec can be be found implemented on tons of hardware, from synthesizer boxes and keyboards, to guitar amplifiers with built-in General MIDI support. Recently, the MIDI Manufacturers Association (MMA) ratified a new extension to the MIDI spec called MIDI Capabilities Inquiry or MIDI-CI. This new extension allows MIDI-CI compatible devices to communicate about Profile Configuration, Property Exchange, and Protocol Negotiation. Additionally, this new functionality will not trample on simple MIDI 1.0 devices on the bus. So what does this addition bring to the table?

Profile Configuration

The new Profile Configuration aspect of MIDI-CI will allow complex controller mappings to be communicated to devices via profiles. This simplifies large control surface setups so that they are simpler and quicker to implement.

Property Exchange

The Property Exchange (PE) feature brings together the worlds of metadata and music data. This element allows the storage and retrieval of “product name, configuration settings, controller names, controller values, patch names and other meta data, etc“. This has many, many uses in the future.

Protocol Negotiation

This feature is the most straightforward  addition to the MIDI spec. Protocol Negotiation makes it possible so that newer generation controllers and devices can take advantage of newer features (more channels, increased resolutions, etc.), while not trampling on devices that only implement the base MIDI 1.0 spec. This opens the door for greater flexibility in the number and types of MIDI devices that can be networked down the road.

MIDI is still super cool!

All in all, the MIDI spec is still cool, useful, and very much alive. Even though we have ubiquitous 1GbE, ubiquitous 10GbE right around the corner, high-speed USB everywhere, and tons of other bus technologies, MIDI still has its niche (and I’m really happy about that).

Check our the MIDI.org article for more information about MIDI-CI.

The post New MIDI protocol extension paves way for “significant expansion” appeared first on Jacob N Calvert.

]]>
https://jacobncalvert.com/blog-archive/2018/03/01/new-midi-protocol-extension-paves-way-for-significant-expansion/feed/ 0
Presenting…. The MIDI Control Surface (Rev. A) https://jacobncalvert.com/blog-archive/2017/04/06/presenting-the-midi-control-surface-rev-a/ https://jacobncalvert.com/blog-archive/2017/04/06/presenting-the-midi-control-surface-rev-a/#respond Thu, 06 Apr 2017 17:33:25 +0000 http://jacobncalvert.com/?p=82 Hi all! I’ve finally gotten around to posting the pics of the MIDI control service project I was working on. Here are the details on this guy: Total Cost to Build: ~$60 if you count the hot glue gun, $45 ish if you don’t Total Time to Build: ~A month of planning, a weekend of building, a few weeks of tweaking software How’s it made? The guts This project has the following components: 1 wooden cigar box from a hobby…

The post Presenting…. The MIDI Control Surface (Rev. A) appeared first on Jacob N Calvert.

]]>
Hi all!
I’ve finally gotten around to posting the pics of the MIDI control service project I was working on. Here are the details on this guy:
Total Cost to Build: ~$60 if you count the hot glue gun, $45 ish if you don’t
Total Time to Build: ~A month of planning, a weekend of building, a few weeks of tweaking software

How’s it made?

The guts

This project has the following components:

  • 1 wooden cigar box from a hobby shop ($7)
  • 1 clone Arduino Mega from Amazon ($9)
  • 4 faders and 8 pots from digikey ($18)
  • 1 1602A LCD from Amazon ($8)
  • 1 rotary knob with pushbutton from Amazon ($3)
  • 4 LEDs in different colors (freeee – I have a bunch already)
  • 1 SPDT switch from Amazon ($1)
  • 1 hot glue gun and hot glue sticks from hobby shop ($15)

Manufacturing

I first drew out a few templates on graph paper of what I wanted the end product to look like. Then I took each variation and taped it to the box’s top and tried to visualize using it in that form factor. Once I had decided on the way it was to be laid out, I went to the shop.
I taped over (with clear tape) where I would cut and drill so the layout template wouldn’t tear off, then I used a drill press to put holes in the right places and the jigsaw to my the slots and the LCD hole.

The Assembly

The first parts I put in were the faders. I used Gorilla Glue to tack them in position, and I let them cure for about 2 days. Then I put in all the other pots, switches, and hot-glued the LCD in place. Finally I put in the LEDs and hot-glued them in place.

Here’s a picture before all the hardware was in:

MIDI Control Surface w/ Some Components

MIDI Control Surface w/ Some Components

 

I used solid core wire and high quality solder to build the wiring harness. The last step in assembly was to cut a slot for the USB cable go through the side of the box and wire up the microcontroller.

The uC

I used the Arduino Mega form factor, but did not use the IDE. The code I used was AVR-libc based and was an extension of the littleKernel project I had been working on. I eventually added the optiboot bootloader so I didn’t need to pull the Mega from the box to update the code. I’ll get around to putting the code up eventually (probably).

What does it do?

Here, a feature list makes sense:

  • MIDI TX and RX lights
  • Power good light
  • Debug light (always good to have)
  • Reset switch
  • 12 control surfaces which can be independently mapped to different MIDI channels and Change Control numbers
  • LCD and scroll knob user interface for setting up the aforementioned options
  • A settings Save and Recall function using the uC EEPROM
  • A settings Dump and Load function using the serial interface


All in all, this was a really fun project. Perhaps I’ll put up a demo of me using it with a DAW…
Anyhow, here are the pics of the final product and an early prototype for reference! Thanks for reading!

The post Presenting…. The MIDI Control Surface (Rev. A) appeared first on Jacob N Calvert.

]]>
https://jacobncalvert.com/blog-archive/2017/04/06/presenting-the-midi-control-surface-rev-a/feed/ 0
I’ve been busy working, but I’ve started a side project https://jacobncalvert.com/blog-archive/2017/02/02/ive-been-busy-working-but-ive-started-a-side-project/ https://jacobncalvert.com/blog-archive/2017/02/02/ive-been-busy-working-but-ive-started-a-side-project/#respond Fri, 03 Feb 2017 04:43:40 +0000 http://jacobncalvert.com/?p=90 Hi folks! It’s been a long while since my last post. I’ve been working like crazy and preparing for my wedding! I have picked up a side project however. I wanted to learn about how a multitasking kernel does its thing at the basic level. So I grabbed an ATMEGA328P and built a little kernel for myself. You can go explore it at my GitHub repo. Introducing littleKernel As the name implies, it is a little kernel. I’ve built this little…

The post I’ve been busy working, but I’ve started a side project appeared first on Jacob N Calvert.

]]>
Hi folks!
It’s been a long while since my last post. I’ve been working like crazy and preparing for my wedding! I have picked up a side project however. I wanted to learn about how a multitasking kernel does its thing at the basic level. So I grabbed an ATMEGA328P and built a little kernel for myself. You can go explore it at my GitHub repo.

Introducing littleKernel

As the name implies, it is a little kernel. I’ve built this little multitasking kernel for a project I’ve got in mind down the road. For now though, I’m going to learn as much as I can about multitasking while improving my own littleKernel project.

The project down the road

I love to make music. Whether it be from a physical instrument, digital instrument, or a combination — I love doing it. I’ve built the hardware for a 12 channel MIDI control surface. I built a 4 channel prototype earlier this year, but wanted to do a bigger, more multi-functional version of that. I’ll post pics later on, but this project is the primary reason for home-rolling a multitasking kernel for a microcontroller.
Until next time…

The post I’ve been busy working, but I’ve started a side project appeared first on Jacob N Calvert.

]]>
https://jacobncalvert.com/blog-archive/2017/02/02/ive-been-busy-working-but-ive-started-a-side-project/feed/ 0