Skip to content

kcuzner/midi-fader

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
cad
 
 
 
 
 
 
ref
 
 
 
 
 
 
 
 
 
 

Simple MIDI Fader

By Kevin Cuzner

Project Status

  • PCB complete and working (with an additional load added to reduce regulator noise)
  • Firmware feature-complete and mostly working
    • Emulates as HID and USB-MIDI devices
    • Not tested on Windows yet
  • Case OpenSCAD in progress
  • Configuration host software in progress

Featureset

  • Two 60mm analog fader inputs
  • USB Audio Class interface, aiming for driverless on Windows 7 and 10
  • Driverless HID interface for configuration
    • It might be trivially simple to echo the fader status in the HID reports...

Main Component Options

  • Faders (note that they have different footprints and different levers):
    • Expensive faders ($4.74, very light movement force): PTB6053-2010APB103-ND
    • Cheap faders ($1.73): PTA6043-2015CPB103-ND
  • Microcontrollers:
    • 497-17354-1-ND: STM32F070F6P6, $1.48, 32K flash, 6K RAM, 20-TSSOP.
      • No CRS, external XTAL required.
    • 497-15099-ND: STM32F070CBT6, $2.52, 128K flash, 16K RAM, 48-LQFP
      • No CRS, exteranl XTAL required.
    • 497-17344-ND: STM32042F6P6, $2.25, 32K flash, 6K RAM, 20-TSSOP.
      • Has a CRS
      • 24.6mA with all peripherals and HSI48 enabled
  • 609-4052-1-ND: Micro-USB, $0.76
  • 455-1790-1-ND: JST-SH header for programming, $0.63
  • Power supply solution:
    • MCP1603T-330I/OSCT-ND: Cheap buck regulator, but not too cheap. $1.01, TSOT-23
      • Noise issues at low currents (leaves PWM mode and skips pulses).
    • 576-4764-1-ND: MIC5504 buck regulator, $0.11, SOT23-5.
      • At a 100mA load, the case will heat 42.6C. Not over the top, but really quite hot.
      • We could do this AND the buck regulator, but just have this for the analog.

Notes

Notes about the logical MIDI protocol

  • MIDI has two types of bytes STATUS and DATA.
  • A STATUS byte has its MSB set
  • A DATA byte has its MSB cleared (hence why there are only ever 0 to 127 data values)
  • Usually, the lower nybble of the STATUS byte is a channel number (there are 16 channels).
  • The number of data bytes to follow varies by which STATUS byte preceded them.
  • Interesting STATUS commands (upper nybble shown) for this project:
    • 0xB: Control Change. Followed by a controller number (1 data byte) and a controller value (1 data byte). Although there are possibly 127 controller numbers, numbers 120-127 are reserved for "Channel Mode Messages". Several of these are commonly used.
    • 0xE: Pitch Bend. Followed by two DATA bytes encoding a 14-bit value, LSB first. 0x2000 is center.
  • https://www.cs.cmu.edu/~music/cmsip/readings/MIDI%20tutorial%20for%20programmers.html
  • https://www.midi.org/specifications-old/item/table-1-summary-of-midi-message

Notes about USB and MIDI

About

Expandable USB MIDI device with faders and buttons

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published