lunes, 23 de febrero de 2009

Dorkbot


A dorkbot is a meeting of people who enjoy doing strange things with electricity. It happens in cities all over the world with different frequencies, sometimes once a month, sometimes less often (depends on the geekiness of the people in the city, I assume).

So I went to my local Dorkbot last Friday. It had been almost 2 years since my last time (I sound like an AA guy). My last time was THIS time, when I actually became an spontaneous presenter of the work I had done in the "circuit bending" course I had attended to. Since then it became very hard for me to attend, if I was in the city I was not available at the time of the dorkbot and viceversa, but last Friday I had no excuse to miss it.

The agenda was the following:
  • "MIDI for dummies"
  • "MIDI for pros: DIY contoller scracth, Contrologic AP"
  • "Rompetechos: una plataforma aérea abierta"
The Midi for dummies showed how to use arduino to send midi signals to ableton live. There is a lot of info on this topic here (in Spanish, sorry) (I got this link from the dorkbot mailing list, thanks again). UPDATE: similar thing but in english here. It was very interesting to find out there is a driver to convert any serial signal to midi, making it very easy to implement midi over USB with arduino... this actually triggered some ideas in my mind (which is the whole purpose of the dorkbots, IMHO).

The Midi for pros was kind of disappointing. A guy had made a platform which was very, very, very similar to what can be done with MidiBox, but he had done it from scratch, only using MidiBox as a reference. He showed two great midi controllers, I have to admit that, but I did not see anything new in them... it seemed to be what you can do with Midibox. Maybe the scratch wheel he showed can not be done with midibox, but that is something that I am not really intrigued with...

I left after the "Midi for pros" presentation, so I can not tell about the remaining presentation, sorry... since all the music stuff was done and I was starting to get hungry, I decided to leave, although it did seem to be an interesting presentation (check it out here).

If you want to to find if there is a dorkbot in a city near you or you want to start a dorkbot in your city click here.

If you live in Madrid, check out the local dorkbot here. Since that webpage is not updated very often, make sure you subscribe to the announce mailing list and the "discussions" mailing list.

lunes, 16 de febrero de 2009

Benge, Twenty Systems


I got this CD/Book called "Twenty Systems" today. I heard about this CD in "Fluido Rosa", a radio program from the spanish public radio called Radio3. Bian Eno said about this CD:

"A BRILLIANT CONTRIBUTION TO THE ARCHAEOLOGY OF ELECTRONIC MUSIC"

The CD has 20 songs, each of them made with a different synthesizer built on each year from 1968 to 1987. The booklet includes pictures and description for each of them and a small description of how the track was made. It starts with old analog synths (Moog modulars, ARPs) and ends with digital synths from the late 80's (Xpander, Synclavier...). Some of the big misses are: MiniMoog, Korg MS-20, Prophet V, Roland Juno, TB-303... Hopefully a second part will come out soon with other synths.


I got the CD from ROTOR discos.
You can find more info, samples and pictures of the booklet in this myspace webpage.

Musicwise it is interesting, but not the kind of CD you listen to over and over again, worth listening to though. 100% recommended if you drool when watching old synths (like I do).

domingo, 15 de febrero de 2009

Arduinome/Monome + Polygome + Ableton Live, instructions and video

I am going to explain in this post how to run Arduinome/Monome with Polygome triggering sounds from Ableton Live in a PC with Windows Vista (it should be quite easy to translate these instructions to any other midi sequencer or similar OS). Polygome is IMO one of the coolest apps for monome.

I am assuming you have already installed your monome and now all the basics about it (monomeserial, setting the right prefix, etc...).

First thing you need to do is to install Midi Yoke. At the time of writing this post, there was no Vista version for Midi Yoke, but the XP/NT version happens to work if you disable Windows Vista User account control (Control Panel=>User Accounts=>Disable User account control). You need to disable the user account control both when installing Midi Yoke and when using it. If anyone knows an alternative for Midi Yoke that works with Vista, please let me know.

Once Midi Yoke is installed, open Ableton Live "Midi Sync" configurations (in options=>preferences) and Enable the "track" and "Sync" from "In From Midi Yoke: 1" and from "Out To Midi Yoke: 2". Add your synth of choice to a Midi channel and arm it. Press the Play button (this is necessary to generate the sync clock).

In Polygome:
  1. Select "Out To Midi Yoke 1" as midi output destination
  2. Select in the clock options "beat clock" as clock source.
  3. Disable the internal clock
  4. Set the "Send beat clock to" to "Out To Midi Yoke 1"
  5. Set the "Receive beat clock from" to "In From Midi Yoke 2"

Pressing any Monome button should trigger the predefined patterns and start making sounds.

Here is a video I made using Polygome:



The drum sounds are the same I used for my AVR synth demo here. The synth sound is one of the synths available in Ableton Live. Eveything was configured as explained above. Sorry about the poor video and audio quality (and my lack of skills with Monome, I need to practice more).

More arduinome stuff here

jueves, 12 de febrero de 2009

Arduinome phase 3: programming Arduino

Once the Hardware is completely done, the next step is to program the FTDI chip with the correct device name and the Arduino with the Arduinome firmware.

Programming the FTDI chip

The FTDI chip in arduino is the chip responsible for doing the USB connection between the PC and the microcontroller in the Arduino board. The idea of programming the FTDI chip with a different device name than the default is for the "Arduinome serial" application to recognize the device as an Arduinome. Follow these steps to program the FTDI chip:

  1. Download an install the D2XX drivers and the MProg application (in that order)
  2. Connect your arduino to the PC and run MProg.
  3. Select Device => Scan from the Menu. You should get a message like the following in the box bellow:

    Number Of Blank Devices = 0
    Number Of Programmed Devices = 1

  4. Select from the menu "Tools" => "Read and Parse".
  5. At this point I saved the configuration I did "File" => "save as". This is not really needed, but I did it just in case I happen to screw up later on, to be able to recover the original configuration.
  6. Check the “use fixed serial number” box and change the serial number value. Your board should have a serial with this shape: a40h-xxx (I'm using : a40h-des)
  7. Save the configuration ("File" => "save as")
  8. Once saved, program the FTDI by clicking on the flash icon (or doing "device" => "program").
  9. Unplug / plug back your board from the usb port.
  10. Download and install Arduinome serial.
  11. Run Arduinomeserial, you should see a device with the name you gave your arduinoe in step 6.

Programming the Arduinome Firmware
This step is quite simple if you have a relatively new Arduino board (the NGs with Atmega168, Diecimila, Duemilanove and any other newer boards). The steps to follow to program the arduinome firmware are the following:
  1. Download the latest arduino software (if you have not already).
  2. Follow the instructions from the Arduino website to figure out how to install and use the Arduino.
  3. Download the Arduinome firmware.
  4. Open the pde file in the arduinome firmware with the arduino application, verify and then "upload to the I/O board".
That's it!!! You can now connect your Arduino to the arduinome shield and the button pad, connect arduino to the PC, start Arduinome serial... and enjoy.

My particular case was not so easy... I was using an old arduino board, an NG with Atmega8 instead of Atmega168, which was not compatible with the available firmware. I could have just bought a preprogrammed Atmega168 for a few dollars, but that was too easy and would have taken a few more days to get my monome working, so I had to analyze the problem deeply and try to find a solution. The incompatibilities with the firmware were because the firmware was using TIMSK0, TIMSK1 and TIMSK2 registers to configure the timers and those registers are not available in Atmega8, the Atmega8 uses only the register TIMSK instead. After reading through the datasheets of both the Atmega8 and the Atmega168, I found the solution. Here you can find my modified version of the firmware, supporting both the newer board (with Atmega168) and the older NGs (with the Atmega8).

So I had the arduino ready to be used. I plugged it in and unfortunately my 74164 was connected backwards in the socket (ouch) and nothing was working. The 74164 got damaged and when plugged it correctly, each button press was being detected as if the whole line of buttons were pressed. Replacing the 74164 fixed this issue. LEDs were working correctly at first try, except for some (7) of the LEDs that apparently got burned when soldering them. I had to remove the damaged LEDs and solder new ones.

And that's it, that is how I got my arduinome working!!!
The next step is to do the enclosure for the arduinome, which I still need to figure how, although I already have some ideas.

I will have a video soon (whenever I manage to improve my "monoming" skills).

Check out the whole Arduinome build log here.

martes, 10 de febrero de 2009

Arduinome phase 2: soldering components (and II)

After soldering all the diodes and LEDs, I worked on my personal approach to the Arduinome Shield. Instead of buying the shield in the monome blog I decided to make my own using a stripboard. There are frequent group buys of the arduinome shield in the monome forum and it is not particularly expensive, so if you are not experienced in electronics, I recommend you go for that option.

I use sockets for all the chips, it is safer since the heat of the soldering iron does sometimes burn them. This is how my stripboard looked like:
Once the stripboard had all the components soldered, I soldered wires to connect the stripboard to arduino. This is how the stripboard looks when connected to the Arduino:


The last step was to connect the button pad to the shield. This is probably the step where it is easier to make a mistake and where you can probably benefit more from using the "official" Arduinome shield. This is how it looks like at this step:

Frontside:


Backside:

So I am done with the soldering iron (unless I made a mistake in this whole phase).

I got the schematic for this phase from Julien Bayle's webpage here, but there are other sources.

This phase is over now. The next phase consists on programming the Arduino.

Check out the whole Arduinome build log here.

lunes, 9 de febrero de 2009

Webpages that make you go CTRL+D: Spotify

I recently discovered this web page called Spotify. As its webpage describes it, it is a "world of music. Instant, simple and free"... it can not be described better.
It works by invitation or with a monthly fee. Once you get the invitation (or pay the €10 fee for a month), you get access to an amazing database of music, which you can listen from your computer connected to the internet. I can not say that you will find absolutely everything available in the world of music, but almost, although apparently, what you get depends on the country where you are.
Enjoy!!!

martes, 3 de febrero de 2009

Arduinome phase 2: soldering components (I)

I started this second phase of my Arduinome build process by soldering the 1N4148 diodes in the SparkFun button pad. The diodes are a two terminal device that normally have a mark in one of the terminals. The mark on the terminal should match the marks in the diode pads in the backside of the SparkFun Buttonpad, as can be seen here:


This is how the 4 boards look with all the diodes mounted:


I soldered the diodes on the botton side of the board, which is not the usual (normally you would solder the component in the oposite side of the board where you placed it). The reason for doing that is to avoid the solder and the small part of the terminal left over damage the silicone.

This is how it looks with all dioses soldered and terminals cut:



The next step was to solder the LEDs. The first thing was to place the LEDs on the top side of the SparkFun Button Pad PCB:



The LEDs do also have two terminals (it is not surprising since they are also diodes). The pad marked in the PCB for the LEDs have a circle with a flat side. The flat side is where the terminal named cathode should be soldered. The cathode is also the shortest terminal of the LED. More info about the LEDs in this wikipedia page.

This is how the boards with the diodes and LEDs soldered looks like:



The next thing I did was to glue the four boards together and to solder wires connecting all the grounds in columns and all the switches and LEDs connections in rows. This is the result:




There are better Arduinome building instructions in bricktable's webpage.

And that is all for now. Still missing from this phase:

- Making the Arduinome Shield (I am brewing my own instead of buying the PCB)
- Making the connections between Arduino and the Arduinome Shield.
- Making the connections between the Button Pad and the shield.

Check out the whole Arduinome build log here.