Sunday, March 20, 2011

Baba O'Riley intro sound - tutorial

Let's try to explain how to obtain the sound used in the intro of one of The Who's masterpieces. Pete Townshend in the original recording used a Lowrey organ with a feature called "Marimba Repeat" that gives the exact effect of the song. Basically it is an arpeggiator-like technique: the notes on the keyboard are splitted into two parts. The first ones play down beat and the others upbeat, thus creating a rapid alternating of them.

So, in Baba O'Riley, F and C play down beat and, say, D and E play upbeat. I managed to emulate that effect using my KORG Triton with 2 custom arpeggiators and splitting the keyboard. Maybe I'll write something about it or just upload the patch. Instead, I wanna explain how to use a simple VST I coded for the exact reason of emulating the "Marimba Repeat".

First of all, you need to use some kind of modular or semi-modular VST host (the kind that allow you to "wire" audio & midi i/o the way you want) because, due to techinal issues, applications like Cubase don't allow you to use the plugin as a "MIDI Effect". A good host is Plogue Bidule.

This is a picture of the patch you have to create:


It is pretty simple: Input Device -> Marimba Repeat Emu -> VSTi (mdaEPiano in the image) -> Audio Output. The brighter wires are MIDI connections. The audio i/o of Marimba Repeat Emu are dummy and are there only to make some VST hosts happy.
All you have to do now is playing some notes to hear how it sounds like.

Let's explain the MRE interface:


It's pretty minimalistic and there's also a small help if you click on "Help/About". This is how it works: instead of playing certain notes down beat and the others upbeat it splits the keyboard in two part (much like my Triton patch does) so that the left keys play down beat and the right upbeat. It also allows you to transpose the right part of the keyboard. The "keyboard split" parameter adjust the key used to split the keyboard. "BPM" obviously sets the speed and velocity (%) sets the MIDI velocity associated with the notes.

So, to play Baba, with the left hand keep plaing F C F C F and so on in sync with the arpeggiator and with the right hand play, for example, D and E.

I made this crappy video to show my triton patch but, since the principle is the same, it gives you an idea of what you get doing what I suggested.



Download: Marimba Repeat Vst

Tuesday, February 1, 2011

Merge Google Maps chunks in a single, large, image

Yesterday I was asked by my brother (an art student in Venice) to write some kind of application to merge Minecraft-Overviewer map chunks in a single image for a project he is doing for an exam (I have not a clue of what he is gonna do :D).

Minecraft-Overviewer can be used to render Minecrat's maps and make them navigable in a browser using Google Maps API, so my python script actually works on any Google Maps image chunks.

To use it, just type in a terminal:
./mergeMap.py <blahblah/ZoomN> <output.ext>
Where "ext" can be any format supported by Python's PIL library (so PNG & JPG for sure).

BIG WARNING:
With Zoom > 4 the processing time / disk space required / RAM required could easily become a problem and the OS could freeze ;)

Download: mergeMap.py
Screenshot: Zoom6.jpg Zoom5.jpg
(Sorry, no thumbinals... they are HUGE images :D something like 10K x 10K and 20K x 20K pixels)

Tuesday, January 18, 2011

Yann Tiersen Transcription

I transcribed a simple (yet beautiful) piece of music by French composer Yann Tiersen. Check it out ;)

Comptine d'été n° 3

I made them with MuseScore (an Open Source program that's a bit of an hack) and should be 99% correct ;) If not, please let me know.

Monday, March 1, 2010

First post about my music ;)

I composed this some time ago from an idea I got while "improvising" on my father's acoustic guitar. I'm not a guitarrist so it is a simple song (actually it is a part of a song) but I like it and I'm trying to finish it. The drum kit part isn't appropriate because I can't play the drums so I wrote only something to give an idea, leaving the task of writing the final version to some drummer friend of mine xD.

WARNING: The midi file is played by sequencer of windows so it doesn't sound very well ;)

Download link:
3mpty - Empty (Work In Progress)
(All rights reserved, at least for the moment)

Tell me what ya think :)
3mpty

[Ongoing projects: a pesudo-funky prog metal song :D]

Friday, July 24, 2009

Experimenting with haXe

So, I found on the web this nice language that can compile to flash/javascript/php and other bytecodes (even to pure binary) and I decided to give it a try.

And, also, some time ago I started to wonder if I could make a Facebook app (a game).
I started to think to something easy to make and funny to play and then a little flash game on a site with some simple tutorials reminded me of a stupid game I wrote in C at school using only OpenGL's rectangle and triangle.

I spent something like 3 hours trying to code a GameMaker-like engine in flash, but I wasn't able to figure out how the flash drawing system works.
Tired, I pointed my browser to Google and found this nice tutorial on making a 2D game with haXe. Its approach to bitmap blitting is odd: it creates a BitmapData object for the screen, then it creates a Bitmap from it and adds it to the root (flash.Lib.current).

I adapted some of the tutorial code to my engine and now I have some rectangle moving on the screen :). The next step will be to add support for animating sprite and then I can start the funny part: programming the gameplay.

Here is the demo (only 6Kb, you should understand why it is so small xD):

Thursday, June 25, 2009

New release of KlonDuke

New release of my tool to edit iPod Klondike savefiles!

Well, actually it is not a new release, I just rewrote the old code using Qt4 instead of FLTK.
Advantages? Easier to compile, solves some issue and looks nicer :).

You can download the linux binary or the source code from emptylabs @ Google Code (it is name v0.2).

Some screenshots (before, after, about):


P.S.: If someone manages to compile it under MSVC or XCode I'll be happy to link it here :)

Sunday, May 24, 2009

iPod Lyrics

Tired of manually downloading songs lyrics and copy-paste into plain-text files to view them in iPod's "Notes", I searched the web for a site that could do it for me. I only found some applications to download and use on my computer but it was not what I was looking for, so i wrote a simple python script to do the job.
After thinking a little about it I realized that I could simply write a "one page" website that sent request to my little script... so I did it and if you open you browser at http://ipodlyrics.x10hosting.com/ you'll find a beta version of it.

3mpty

Friday, April 3, 2009

Ingen: Opensource Modular Synth

After trying alsa modular synth and seeing it crashing every 2 mins, I decided to search the web for something better... and I found Ingen.

A simple MIDI-controlled synthesizer patch

Ingen is a software that uses LADSPA and LV2 plugins, connected with each other, to create synths. LV2 is a new format of plugin, that probably will substitute the old and limited LADSPA if all goes right.
LV2 gives the programmer the possibility to create a custom GUI, just like VSTs do.

You can install Ingen from your distro's repository, but if the version you get is not up to date, you should checkout the latest from SVN: If you are able do deal with the console, the second is the better choice, because it means more stable software.

On this page there's the step-by-step guide to compile it from SVN.
(The build system, waf, needs python 2.x to work.)

If you get an error ending with
/giomm-2.4/giomm/error.h:97: error: expected declaration before ‘}’ token Build failed
-> task failed (err #1):
{task: cxx ConnectWindow?.cpp -> ConnectWindow?_1.o}

I managed (in a not so good way) to "solve" it:
Just open the file error.h (that should be in some folder like "/usr/include/giomm-2.4/giomm/") and skip the source to the line indicated by the number indicated (in this case, 97). After that, change the line from "HOST_NOT_FOUND," to "HOST_NOT_FOUND_," and do the same for the next line.
Then recompile with ./waf and all should work fine. After compiling, reopen error.h and revert the changes.

Now, a simple "sudo ./waf install" or "./waf install" if you are already root installs the app on your system.
To run it, if you don't see it on the app menu, open a shell and write "ingen -eg": this will start ingen with the graphical frontend.

As I wrote before, Ingen needs plugins installed on your computer, otherwise it is quite useless.
Here are some links to good plugins:
Ingen automatically adds LV2 plugins in its menu, while for LADSPA ones you must right click->find.

If you have any problem or question, just leave a comment or write some line on Ingen's IRC channel on freenode.

I hope to write a short tutorial to describe how to create a simple synth with ADSR ampli.

3mpty