As soon as a I saw Microchip's new 3D sensing technology, I knew immediately what I wanted to build. I imagined controlling audio with a whole new level of precision with huge dynamic possibilities. I've spent the last year developing it, coming up with ways to expand the musical possibilities and the usefulness of Vectr as an instrument. But, Vectr is also open source hardware and software, so you can use any of its functionality to suit your own purposes. I have imagined all sorts of applications for this technology, and time willing, one day I'll make them. It's very intuitive to play with. The results of your actions are immediately apparent. It's amazing how quickly this new interface technology becomes natural.
Vectr uses Microchip's MGC3130 3D sensing technology with a custom developed sensor circuit board. It's able to resolve the position of an object over the sensor in a volume which is about 3.5inx3.5inx6in with 16 bit precision. I read this data using a PIC32 microcontroller, which is running FreeRTOS. The microcontroller manages all the system tasks, interacting with all the peripheral integrated circuits and controlling all the different operational modes. The 3D sensing is performed using capacitive sensing several orders of magnitude more sensitive than a capacitive touch screen. Using multiple electrodes all being affected by the same transmission, the sensor is able to detect the location of disturbances in a static electric field.
Vectr uses a quad 16 bit DAC to generate analog control voltages in the range of -5V to +5V. There is one analog output for each of the cardinal directions of the 3D sensing.
Vectr uses 36 LEDs for visual feedback. They change in brightness relative to the position of the object in front of the sensor. They are right angle LEDs mounted around the perimeter of a piece of laser cut acrylic, in which dots have been laser engraved in the front to create a 3D floating effect. The LEDs are multiplexed using shift registers and MOSFETs driven with PWM signals from the microcontroller. The brightness algorithm and LED driving is actually a fairly intensive process, but the result is quite mesmerizing.
The LEDs are also used to indicate progression through the menu system which allows the user to change all sorts of parameters and behaviors. Each of the analog outputs is independently configurable. The analog output ranges can be scaled and limited to ranges like 0 to +5V or -2.5V to +2.5V, etc. The analog outputs can be quantized so that the voltage fall on note values in a 1 Volt per Octave scheme. The notes can be on different scales like Chromatic, Major, or Pentatonic. Combining the range settings with quantization you can play scales of different octave lengths. Setting all three outputs to quantization and playing multiple oscillators can have quite astounding results.
Vectr can also record sequences of hand movements. It contains serial SRAM to record for up to 50 seconds. It stores the raw data from the 3D sensor so any parameter available in the menu system can be adjusted after the sequence has been recorded. This provides for massive facility to record and then manipulate the sequence live. The user can speed up and slow down the sequence by making circular gestures, clockwise for faster and counter-clockwise for slower.
Vectr has an overdub capability where you can re-record each of the outputs individually without affecting the others while they are playing back. This way you can create dynamic sequences with continuity. Then, Vectr also has flash memory for storing the sequence to bring it back later after power down. Vectr can hold up to 5 recorded sequences, which can easily be recalled at any time. Each of the recorded sequences stores all the menu settings with it.
Then, there are performance modes. There is sequencer mode, where you can access up to four recorded sequences quickly and switch between them seamlessly. There is quick mute mode where you can turn on and off individual...Read more »