Udoo Additive Light Synth

Participation at the Barcamp and Hackathon at CeBit 2014 in Hannover, Germany, where I tested the Udoo Board for feature requests. The idea behind it is collecting light data with some LDRs (light resistors) and the creation of an additive light synth.

Seven LDRs were soldered on a shield and connected to the Arduino on the Udoo Board. The values were inverted and clipped to 8bit, which means that white (light) is set to zero and black (dark shadow) is 255. The data were send via serial to Puredata. The amplitudes of seven oscillators with different frequencies (from midi notes) were then multiplied with the incomming data. After this step, all signals were added together.

The patches and codes can be downloaded at the bottom.

the udoo screen

me, while hacking

cebit hackathon participants

the udoo and the shield with the ldr’s

hand drawn schematic

Download the project data here.

8 responses to “Udoo Additive Light Synth”

  1. tuxun says:

    Hi dude, nice project!
    A question, just to be sure?
    Are these 10k Ohm resistors?

  2. tuxun says:

    Hello again , I’ve two questions:
    what’s the night’s resistance of these LDRs?

    And could you please add one or two comment to the PD and Arduino sketch?

    It’s pretty heavy for a beginner, especially the “this pin is this pd string and not another” things


    • enrico says:

      what are you meaning with the nights resistance?
      The arduino reads the voltage over the ldr’s and send this data to the pd sketch. the pd sketch is a little bit messy, but he reads the incoming data an combined it with a frequency for the synth.

  3. tuxun says:

    little piece of contrib!

    a fritzing file, the jpeg schematic from it, a README.txt:

    for everyone please read the README! there are still work to do on the fritzing file, especially on the PCB.

    the pin out spacing have to be at scale of udoo/arduino due

  4. tuxun says:

    I didn’t know “mtof” yet”, it could be nice if a comment describe the sketch “way of working”.

    the night resistance is the resistors default value at light or night, when I looked at available LDR there were 1Mohms 100Kohms, 10Kohms.

    I understand it as it’s the resistance of the component with no light or at his max ligth detection…

    • enrico says:

      hey tuxun,
      ok i will try my best to explain the pd patch. the arduino serial with the voltage values is read by pure data. i could figure out why i can only send one value at the time but that is why i use the pack object. this means, i pack the first incoming value to storage 0 … until the last value is read, then repeat the procedure.
      the route object has two functions, first sum all values and divide them by 50 (experimental value 😉 ) as the midi offset. the second function is to send the data to the corresponding oscillators, divided by 1000 as the amplitude for the sound.
      the next step are the sound creation, i have the sum of all values as midi start value for the first oszi. mtof is a object that read midi notes and create frequencies for the osc object. the other oscillators get an midi offset by 3 notes, but you can change them.
      at the end, als signals are add togheter and multiplied by the master slider on the right side.
      i hope this explanation is enough for you 😉

Leave a Reply

Your email address will not be published. Required fields are marked *