Romekmil
Published © LGPL

Cantor organ conversion to MIDI-controler for VPO (GrandOrgu

Cantor analog organ conversion to MIDI-controler for Virtual Pipe Organ (GrandOrgue, Hauptwerk)

IntermediateProtip883
Cantor organ conversion to MIDI-controler for VPO (GrandOrgu

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
×1
Arduino UNO
Arduino UNO
×1

Software apps and online services

Funtoo Linux for Beaglebone AI and Beagleboard X15
Suzie Linux Funtoo Linux for Beaglebone AI and Beagleboard X15
Arduino IDE
Arduino IDE
Windows 10
Microsoft Windows 10

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires

Story

Read more

Schematics

Schemat diode matrix 4x14 for Arduino NANO - Midi OUT

Schemat diode matrix 4x14 for Arduino NANO - Midi OUT

Code

MIDI_registers-14x40-Cantor-Bialystok-NANO-SurfaceControll.ino

C/C++
The program sends MIDI noteOn and noteOFF on channel 9 according to a 4x14 switch matrix
/**
 * for ATmega1284p or Arduino mega
 * @brief   This example demonstrates the use of push buttons that send note 
 *          events.
 * 
 * ### Connections
 * 
 *  - 2:  momentary push button (to ground)
 *  - 3:  momentary push button (to ground)
 * 
 * The internal pull-up resistors for the buttons will be enabled automatically.
 * 
 * ### Behavior
 * 
 * Pressing the first button will send note on/off events on middle C.
 * Pressing the second button will send note on/off events for middle C sharp.
 * 
 * Written by PieterP, 28-01-2019  
 * https://github.com/tttapa/Control-Surface
 */

// Include the Control Surface library
#include <Control_Surface.h>

// Instantiate a MIDI over USB interface.
//USBDebugMIDI_Interface midi;
//HardwareSerialMIDI_Interface midi;
//HardwareSerialMIDI_Interface midi = Serial;
HardwareSerialMIDI_Interface midiser = Serial;
//HairlessMIDI_Interface midi;

MIDI_PipeFactory<1> pipes;
// The note numbers corresponding to the buttons in the matrix
const AddressMatrix<4, 14> addresses = {{
  {  36,  37,  38,  39,  40,  41,  42,  43,  44, 45, 46,  47,  48,  49 }, 
  {  50,  51,  52,  53,  54,  55,  56,  57,  58,  59, 60, 61,  62,  63 }, 
  {  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74, 75, 76,  77 }, 
  {  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88, 89, 90,  91 },
   
}};

Small-MIDI-decoder-bialystok-Cantor-alancza-rwdy-led.ino

C/C++
Smalll MIDI decoder - turns on and off the Led connected to the arduino Uno pin after receiving MIDI noteOn and noteOff messages on channel 13.
// Small Midi dekoder Midi - R. Milewski
//Turns on Led 13 when GradOrgue in PC is ready to play!
//GO lights the "Noise Motor" manubrium and this sends a MIDI noteOn message of (value) 71 on channel 13
#include <MIDI.h>   // Add Midi Library
 
//#define LED 13 
//#define LED2 12// Arduino Board LED is on Pin 13
 
//Create an instance of the library with default name, serial port and settings
MIDI_CREATE_DEFAULT_INSTANCE();
 
void setup() {

pinMode (A0, OUTPUT); // Set Arduino board analog pins to output
digitalWrite (A0, LOW);
pinMode (A1, OUTPUT);
digitalWrite (A1, LOW);
pinMode (A2, OUTPUT);
digitalWrite (A2, LOW);
pinMode (A3, OUTPUT);
digitalWrite (A3, LOW);
pinMode (A4, OUTPUT);
digitalWrite (A4, LOW);
pinMode (A5, OUTPUT);

 

  for (int a=2; a<14; a++)
{
pinMode (a, OUTPUT); // Set Arduino board digital pins to output
digitalWrite (a, LOW); // Set Arduino board digitsl pins to KIGH
    
}
 

Credits

Romekmil
15 projects • 12 followers
Contact

Comments

Please log in or sign up to comment.