Archive for October, 2008

Rhythm Generation With an Euclidian Algorithm

Sunday, October 26th, 2008

Work by El Buen Matador

The original post on this is at wesen’s where you can pick up the idea and hear some samples. In this post I simply show the Ruby implementation of the algorithm. It doesn’t work with lists, but rather does simple math to achieve the same effect.

The idea of distributing pulses is curious. It lacks one important aspect though — shifting. Currently all patterns start with “1″. Thanks wesen, for sharing this. Here comes the Ruby version.

def distribute(pulses, steps)
  pauses    = steps - pulses
  per_pulse = (pauses / pulses).to_i
  remainder = pauses % pulses

  rhythm = []
  pulses.times do |pulse|
    rhythm << 1
    per_pulse.times { rhythm << 0 }
    rhythm << 0 if pulse < remainder
  end

  return rhythm
end

# 1 0 0 1 0 0 1 0
puts distribute(3, 8).inspect

Amazon needs a better web designer?

Wednesday, October 22nd, 2008

I’m sure Amazon can afford a better web-designer. I have not a single doubt. This little thing below is the part of the Associates registration screen. It’s poorly centered, but the rest of the page is perfectly gray.

Now after several tireless attempts to find a password that it will accept, I’m about to give up. It gives NOT A CLUE why the password I’m entering can’t be used. It just keeps saying…

Another piece of stone age art. It must be my lucky day!

“You were awarded 5 stars”

Wednesday, October 22nd, 2008

Photo by xenob

Half a year ago we were promoting The Product on many software download sites. By many I mean thousands. Now the time has come and some of them coming back with these idiotic messages notifying of the ratings they awarded after careful reviews of whether it’s the application quality or the absence of viruses, or … you name it. In fact, the smallest and the least known sites show the most activity bombarding us every week. Why are they so kind?

All is very simple as usual. When you put their 5-star award banner on your site, you link to them. So what? So the rating of your pages, combined with ratings of other happy winners, contribute to the rating of their site. They don’t really care about you, forget it. It’s another wave of spam, yet more intelligent and nicely veiled. The page rating builds up and up until finally, they wake up one day being a well-known and highly rated software site. Google knows about them, your users/readers know about them, rating is high, life is good, and all you got is their 5-star banner. Enjoy!

Clever trick, isn’t it?

Weekend Ruby: Coding Quality with Style

Saturday, October 18th, 2008

Photo by pdxnielson

It seems the community has started to work towards a common set of guidelines for a beautiful and readable Ruby code. Nice…

The idea behind any style guide is largely based on aesthetics and readability. The number of spaces to use for indentation, how to break statements into several lines, when the chain of statements is to be broken into several clauses — all is simple, yet no less important than the code itself.

These days we have many self-taught programmers who neither have a taste nor any special education. What’s worse, many of them don’t really care about clarity and maintainability of their code, preferring to quickly throw some pieces together to get their payments quickly without any proper design, testing, formatting and anything else. It’s a “poor job” and a “job poorly done”. I encourage everyone who purchase code to demand The Quality, and I equally encourage everyone who produces code to do their homework — study the best code samples, read guidelines, do their testing and follow (if not all, but as many as possible of) the best established practices. It’s the hard work that eventually becomes fun.

Here’s one of the attempts to summarize good coding practices into a guideline that I stumbled upon this week: The Elements of Ruby Style. It’s obviously incomplete, but it’s a good start that has all chances to evolve. There always will be people who disagree with certain points (including me, who would rather use “boolean ? 3 : 5″ instead of “if boolean then 3 else 5 end”, which is redundantly complex), but if you need to start from somewhere, it still is a great starting point.

In the same vein, here’s Rails Code Quality Checklist and the Code Quality Checker. These are mostly for the code design control, but since we talk about code quality today…

Enjoy your weekend studies!

Working on another piece

Thursday, October 16th, 2008

Spent a good deal of yesterday’s evening working on another piece for my future live set. Several amusing ideas came in the process.

Analog sounding. Why they still continue to argue about the digital vs analog sound. Where the hell can you still hear it in the original analog form? Almost everything that is recorded these days is distributed on a digital media, which is bits and bytes in its essence. Having that, it all comes down to creating the “correct” analog-sounding sequence of bytes to reproduce that unique sound that you still want to hear on your iPod. Am I right or am I right? What about vinyl records? What about them? I love vinyl and have the collection of my own. Nothing can beat a great grind and especially in techno domain, but… from a producer standpoint, hey, you still need to get the sounds to someone who cuts the plates. Do you use magnetic tapes for that?

During the last few weeks, largely inspired by the banks of sounds concept behind the hardware machines (thanks wesen and 909techno for the monomachine and machinedrum video), I came up with an entirely different setup for my Ableton Live session view when I’m working on a pieces. I now use a couple of Drum Racks that represent some branch of sound (minimalistic, synthesized sounds etc), but never write clips directly for them. Instead I use several MIDI tracks for each individual sample or a group of samples that I route to the channel holding the Drum Rack. This way, I can program patterns for the sounds individually. Let me illustrate it with a picture:

What I have here is the Drum Racks on channels 1 and 5. They are holding my custom kits. The channels 2 through 4 are routed to the first kit (channel 1) and the channel 6 is to the second (channel 5).

If you read attentively, you probably noticed I said I never use the Drum Rack channels. Well, it’s not true. It’s very convenient to create a clip there, play with it and once it’s finished, move it to a separate MIDI track. It’s like a sketch book.

What are the benefits of this layout:

  • You keep all your related (kit) samples in one place
  • You don’t duplicate kits in multiple channels just to keep things separated
  • You do keep things separated, but in more natural way, like how would you do with the hardware
  • Thanks to the flexibility of the Drum Rack (and Instrument Rack), you can add effects to each individual sample as well as to the whole channel. In other words, if I need to add some reverb to high hats, I no longer need to take them on a separate channel, I just open the rack and add it. Rarely do I need the same sound with different effects in my tracks. Even if I do, I can easily duplicate the sound in the rack for that.

And by the way, here’s how the piece sounds at the moment:

TR1 by alg

Music The Way I Do It

Tuesday, October 7th, 2008

Several days ago I was totally bedazzled by Wesen’s openness and the willingness to share information when he laid down all tiniest details of his techno music construction workflow to the readers of his blog. He posted a carefully crafted PDF file with textual information accompanied by the set of loops, samples and sysex data ready for immediate action. You can take it all, play with it, feel it the way he felt and get all inspiration you can.

I had several awe moments, and in this writing I would like to attempt to share my own experience. It’s not going to be as nicely put, but still may be interesting to read and compare to your own views and techniques.

(more…)