Chris Ball: Projects

Freelance Creative Technologist

Laser Harp MkII Video

As promised, I’ve recorded a couple of videos of two of my musical devices in use. Enjoy!

[youtube http://www.youtube.com/watch?v=SLf3RHcn0Lw&w=560&h=315]

[youtube http://www.youtube.com/watch?v=Db69eq7A6z4&w=560&h=315]

Next Post

Previous Post

6 Comments

  1. fromastandingstart 29th July 2012

    Chris, was fab to see this today – my little boy was the one going mad on it at the end of the day. Hope you had a great time too.

  2. Brian Cameron 24th August 2012

    I love it. That arduino thingy is really cool I’d like to build a midi foot pedal out of an old organ parts I have laying around, would you like to share your code? Your buttons do exactly what I want mine to do. Do you think that would be a good first arduino project for me?

    Cheers,
    -Brian

    • chrisballprojects 24th August 2012

      That sounds like a great first project! would you be making a single trigger (like a piano sustain pedal) or something continuous (like a wah wah or vibrato)?

      • Brian Cameron 25th August 2012

        Here’s a midi floor pedal I built, http://midipedals.com/forum/?mingleforumaction=viewtopic&t=11

        I now want to make a very trim version where the pedals are not too proud, something like short aluminium extrusions for the “white keys” and pin ball machine buttons for the “black keys”. I want it to match a guitar rig and not look like it came out of me mum’s house.

        -13 notes would be good but no more than 25 notes.
        -Velocity sensitivity is a must as I intend to trigger more than just bass.
        -I like the “notes in key of” feature you put on your circuit, it makes it a lot easier to play guitar and use the bass pedals.

        There are other features that would make it a better pedal;
        -Automatic chord, root note plays major triad, root +3rd minor, etc.
        -Hold a note until change
        -Midi sequencer, simple looper function

        I think I like to dream big.

        – Brian

        • chrisballprojects 11th September 2012

          Hi Brian!

          Sorry for the delay in replying, I’ve been busy but thinking about your problem on and off. The notes triggered on the laser harp (which is essentially just 14 different velocity-sensitive midi triggers) are assigned by scrolling through an array like the one below on the arduino:

          int scales[14][14]={ //setup scales to switch between (values are semitones relative to the fundamental)
          {0,1,2,3,4,5,6,7,8,9,10,11,12,13}, //chromatic
          {0,2,4,5,7,9,11,12,14,16,17,19,21,23}, //major
          {0,2,3,5,7,9,10,12,14,15,17,19,21,22}, //minor
          {0,2,5,7,9,12,14,17,19,21,24,26,29,31}, //pentatonic
          {0,7,12,19,24,31,36,43,48,55,60,67,72,79}, //5th Arpeggio
          {0,4,7,12,16,19,24,28,31,36,40,43,48,52}, //major 3rd, 5th arpeggio
          {0,3,7,12,15,19,24,27,31,36,39,43,48,51}, //minor 3rd, 5th arpeggio
          {0,4,7,10,12,16,19,22,24,28,31,34,36,40}, //major 3rd,5th,7th arpeggio
          {0,3,7,10,12,15,19,22,24,27,31,34,36,39}, //minor 3rd,5th,7th arpeggio
          {0,3,5,7,8,10,12,15,17,19,20,22,24,27}, //some kinda 6 note scale
          {0,4,7,11,12,16,19,23,24,28,31,35,36,40}, //major 3rd,5th,major 7th arpeggio
          {0,3,7,11,12,15,19,23,24,27,31,35,36,39}, //minor 3rd,5th,major 7th arpeggio
          {0,3,5,6,7,10,12,15,17,18,19,22,24,27}, //blues!
          {0,10,20,30,39,49,59,69,79,89,98,108,118,127} //CC values
          };

          The numbers are the number of semitones relative to your fundamental note. You could add chord functionality to this system simply by, for example, telling the midi messages to be sent for the [1] [3] [5] entries in the array e.g. the 1st, 3rd, and 5th notes in your chosen scale. I guess you could extend this to a chord selection array, which might look something like:

          int chords[][]={ //setup scales to switch between (values are semitones relative to the fundamental)
          {1, 0, 0, 0}, //single note (0 denotes note off);
          {1, 3, 5, 0}, //1st, 3rd, and 5th, of the scale
          {1, 3, 5, 7}, //1st, 3rd, 5th, and 7th of the scale
          };

          Although, you might have to to a lot of fiddling around to get it working nicely with the midi trigger you have. If you email me at the address on the contact page I’ll be happy to send the laser harp code and give any further help I can.

© 2024 Chris Ball: Projects

Theme by Anders Norén