My new track - Chaos Engine

It is a scientific fact that the amount of entropy in the universe increases all the time. One day it may break the hell lose on our world, leading to a new Big Bang.

Entropy is the Engine of Chaos, and this is its song of destruction.

Download the track

Composing and producing electronic music: week 2

The assigmnent for week 2 of Composing and Producing Electronic Music was to make a drum groove for a Drum’n Bass track. Here’s how I did it.

I started with recreating Amen Break in FL Studio.

First of all, I found that I am not good at playing drums. After I “played” it I had to heavily edit it in the piano roll to match the groove. Next time when I do my own complex groove from scratch, it will make sense for me to draw the groove on paper first, then play it and edit.

Here’s the 100% quantized groove:

100% quantized groove

Then I dropped the original Amen Break groove into Slicex, which automatically sliced it. Oops, made a mistake here: before slicing the loop should have re-detected it tempo or manually set it to 138.

Slicing in Slicex

Then dumped into piano roll as groove template.

Groove template in piano roll

After that I quantized my drum’s piano roll based on the groove template:

Quantizing based on groove template

And here’s the final Amen Break in MIDI:

Amen Break in MIDI

You can see the waveform of the original Amen Break in the background. It is helpful for matching velocities.

The drums sounded ok, but I wasn’t satisfied with the riding cymbals. It seemed like somebody was kicking the bottom of the can. I ripped them off this midi track. Then I found the cymbal sound I liked in my library and recreated the cymbals using the Step Sequencer.

Then applied 50% swing:

Applying 50% swing

I also adjusted the cymbal’s pitch to match the original Amen Break:

Adjusting the cymbal’s pitch

Then I added an orchestral hit into the same step sequencer. And again, adjusted its pitch.

Here’s final Amen Break in MIDI:

Just to add a little variety I found a DnB an appropriate drum kit in Drumaxx and used it for the drums track. Then I laid the sub kick I did in Massive over it. Audio editing is frustrating in FL, so to the limited available time I decided to do away with it this time.

As for mixing, I assigned all the drums to the same mixer track and used the level knobs on the pattern tracks to adjust relative volumes of the tracks:

Adjusting relative volumes of tracks

As far as I can see, FL does not have a concept of a mixer bus. Instead output of each mixer track can be directed to an input of one or more of other mixer tracks. And vice versa, any track can take input from multiple other tracks (hence serve as a submix track).

In the screenshot below I created a “Drums” track (1) to serve as a submix of all the drums tracks (2-7).

Mixing drum tracks

The circled pictograms on the screenshot above indicate that the output of Dummaxx track 2 is directed to the input of Drums track 1. And the output of “Drums” track is routed to Master:

Routing drum tracks to master

FL puts a limiter into the master track by default, and I left it there with the default settings. As a result, the drums sound compressed but I reckon it’s actually better that way.

Limiter

Here’s the end result:

That’s all for this assignment. If I had more time, I would program 1 or more different drum patterns a switched them after 8 or 16 bars.

Databases matter

Database

Databases are at the core of virtually all modern information technology systems. Sometimes these databases are exposed, for example, as in data warehouse systems. The centrepiece of a system like that is a powerful industrial database such as Oracle, or Sybase, or Microsoft SQL Server, or something similar. The presence of a database is pretty obvious in that case – only these powerful databases can crunch the immense amounts of data processed by data warehouses. In other cases databases are hidden. For example, Apple iTunes uses a SQLite database to store the details of music tracks on your computer. That database is not obvious; it does not advertise itself, but it’s there. It makes sure that the ratings you assigned to songs are saved and can be synchronised between all your iPhones and iPads. It counts the number of times every song was played so that you don’t listen to the same song twice when you put your iPhone on shuffle. Databases are everywhere. They all serve the same purpose – to store data and make its retrieval as easy and fast as possible – but they are also vastly different from each other.

Let’s take another example. When you log into your Google account and bring up your Gmail inbox, all the emails you see are actually stored in the remote database. That database is called BigTable, and it contains not only your emails, but all the emails of all Gmail users in the world, and also virtually all of Google’s data. While your iTunes SQLite database may be about 50 megabytes in size (and that’s assuming you have A LOT of songs), Google’s BigTable contains petabytes of data. That’s your iTunes database times one billion.

If you think about it, it becomes obvious that these databases require vastly different approaches to the way the data are stored and retrieved: You can fit an iTunes database into memory and query it whichever way you like without a performance penalty. At the same time, no machine has been built yet that could apply the same approach to Google’s BigTable.

Unfortunately, not all software developers understand that. Databases once were an inspiring topic but in recent years they went out of fashion. Software developers are geeks; they like new toys; they all want to work on something latest and greatest and cutting-edge. So many new exciting things are happening in the area of Information Technology – Web 2.0, HTML5 and Apple iOS to name just a few – that databases just fade in comparison, despite the fact that they make all these new shiny things tick. Most of the developers these days take a database just as generic data storage: “We’ll just stuff the data in and we don’t care what’s inside.” 10 years ago SQL language was a necessary skill for database application developers. Nowadays the majority of programmers don’t know SQL. They rely on frameworks such as Hibernate to produce SQL statements for them. They think that all databases are the same and therefore, if necessary, they can take one system that uses MS SQL Server as a backend and put it onto Oracle and it will work just fine.

Well, that may be true for very simple applications. The myth that all databases are the same is flawed, especially when it comes down to performance. Today cloud computing is a buzzword, and Google is the patriarch of the cloud. Google’s servers process billions of requests every day, crunching petabytes of data. Yet, every request made to a Google search engine is served within seconds. This places such a high demand on the Google’s database layer, that Google’s engineers couldn’t afford using even the most powerful of industrial databases, and they had to develop their own – the aforementioned BigTable. If you told these guys that “all databases are the same”, they would laugh into your face, and rightfully so, because Google knows that performance matters and they try to squeeze every bit of performance out of their systems.

Databases matter, and if you consider yourself a decent software developer, you need to learn how to tame them. Learn the differences between them. Learn what they are, what makes them tick, and the most importantly, how to make them tick faster, because writing applications that are slow is just bad taste.

Nokia+MSFT: Power of incentives

Considering that the present Nokia’s CEO Stephen Elop is one of the largest individual shareholders of Microsoft, no wonder they tied a knot.

Stephen Elop: 130,026 Microsoft shares

Source: dailyfinance.com

And it’s not a surprise he tries to talk the Nokia’s share price down. He doesn’t currently have any Nokia shares, but he will have to buy some soon. And the cheaper Nokia shares are, the less he will pays for them.

As Charlie Munger puts it:

‘I think I’ve been in the top 5% of my age cohort all my life in understanding the power of incentives, and all my life I’ve underestimated it. And never a year passes but I get some surprise that pushes my limit a little farther.’