Docendo discimus

$self->explain

  • Calendar

    April 2024
    M T W T F S S
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
  • Archives

  • Recent Posts

  • Bling

YAPC::EU 2011 in Riga

Posted by brunorc on September 10, 2011

It’s almost one month after the conference… but anyway.

I liked everything, to start with Riga itself – it’s really beautiful and green city – the venue (although the contrast between the main auditory and other rooms was big) and the food, ending on the conference and its atmosphere and content. Since I went to give my MIDI related talk, I was lucky enough to participate in the Speakers’ Workshop by Damian Conway & Alex Kapranov. It definitely helped me to improve my presentation and the talk itself.

There is a lot of new stuff happening in the Perl Community – the language constantly evolves and a lot of new ideas from Perl 6 are backported to Perl 5, what I really like. What I don’t like, though, is that some people are actively dissing Perl 6 as “completely different language, not Perl”. That’s not the disadvantage by itself; moreover, Perl community constantly borrow (steal?) ideas from other languages – some talks in Riga were good example of this, presenting cute ideas taken from Lisp and Haskell.

I can understand that Perl 6 may not appeal to some users of Perl 5. What I cannot understand, is that some notable members of Perl community spend their time & effort on explaining, why Perl 6 is not what should be called “the next step in the evolution of Perl 5” and by no means can be attached to the name of Perl. This actually harms the progress of all the work around Perl 6, slowing it down and bittering it needlessly.

However, in Riga yet again we were able to see that Perl 6 has no choice after Duke Nukem Forever was released… there were many talks about what can be already done in Perl 6, and what will be possible once it gets finished. To be fair I have to admit that the presentation from Jesse Vincent about Perl 5.16 also brought many new ideas (like differently “tailored” releases of next versions of Perl 5 and the backward compatibility controlled by use VERSION – to name a few).

I also met my friends from Poland and from Spain, and – what was a huge surprise for me – one of them decided to apply for job at Booking.com; few days ago he informed me, that he was accepted. Good luck, Quim!

And last but not least – I was able to spend a lot of time with some completely crazy Perl folks from the whole world. I will remember the party at the balcony of Getty’s room for a long time…

Update: An article from Jesse Vincent “5.16 and beyond” – also just look at the second comment. *sigh*

Posted in Perl, Perl 6 | Tagged: , , , , | 1 Comment »

Perl & MIDI

Posted by brunorc on August 10, 2011

I thought it will never happen, but finally there is – the first post filed under both MIDI and Perl categories. This is the convergence of two threads that were running through this blog.

Right now it’s only an announcement, that after all those problems I found a way to connect my MIDI equipment to the Perl code. And I’m not talking about processing MIDI files with Perl and then sending them to my synths. I’m able to process what I play – and with process I mean filtering, transposing, multiplying and triggering arpeggios. I’ll be presenting a talk about this on YAPC::EU in Riga, so I’m not going to reveal all the aces hidden upon my sleeves yet ;-)

Thanks to ALSA and MIDI::ALSA module I can access my eMagic Unitor8 from Perl running on Linux. Even if I have two Unitors stacked together, ALSA sees only one; even if I can record from all eight inputs of my Unitor8, I can send to only one. But it still leaves me 16 MIDI channels and plenty of possibilities.

At the moment my code is very crappy – no modules (thus no API), just scripts that do stuff. After reaching some reasonable level of functionality I’m going to stop, clean it up and release some initial version on CPAN. My goal is to approach the idea of Zyklus, but we will see… Stay tuned!

Posted in MIDI, Music, Perl | Tagged: , , , , | 2 Comments »

E-mu Morpheus & UltraProteus

Posted by brunorc on March 31, 2011

Some time after getting the Proteus 2000 I discovered the long history of E-mu sound modules. I started digging in the Internet, only to discover the Harmony Central database, full of user reviews. People more familiar with E-mu gear were referring to Morhpeus and UltraProteus, regarding their potential in the filter department.

I especially recall one quote:

Forget endless possibilities; lots of synthesizers have “endless possibilities”. The Morpheus has FRIGHTENING possibilities.

Whoa, I thought. That’s something for me. I was already quite excited with Proteus 2000 filters. But while this sound module had about 50 filters, Morpheus had 197 filters. That could sound far better – as if the number of filters, enclosed in the box could influence the overall sound quality… But I was starting to dig in the Proteus 2000, and GAS (Gear Acquisition Syndrome) kicked in, because after discovering the power of envelopes and modulation matrix I found out, that Morpheus had something even more powerful – Function Generators, which appeared to be envelopes on steroids. That must have had an amazing sound!

A short digression – Proteus 2000 gives access to 50 filters after upgrading the OS – which is an amazing thing by itself, this was the first time in my life when I was installing an operating system through MIDI. This may sound strange, but Yamaha RM1x, released more or less in the same period had to have its EPROM replaced in order to get the new OS, while Proteus 2000 was able to receive its operating system through the MIDI IN, check its integrity and bail out in case the transfer or file got corrupted.

OK, let’s go back to Morpheus. At some point I just had some extra cash and found an announcement about the Morpheus for sale. I closed the deal and few days later I received a small, lovely package, including my own incarnation of the god of dreams. Unfortunately, few weeks later I had to focus on completely different things, and then… Long story short, it took me quite some years to actually lay my hands on it and to start discovering its capabilities.

First of all, I have to admit I was a bit disappointed. I think I expected something more from the Virus department, with deep acid filters, squeaking with resonance and all this stuff. The brutal truth is: if you dream about Moog sounds, Morpheus is not the god of your dreams. It’s useless for any kind of analog emulation, but in return it will produce the sounds that no analog can emulate.

Brothers in arms

The filters in Morpheus are the story on its own. Let’s start with the simple statement: those are not filters, but rather filter cubes or surfaces. Imagine a square, with a different filter characteristics in every corner; now imagine, that – using two parameters – you can move in this square, morphing from one filter shape to another. And then you have cubes… truly frightening possibilities. Moreover, most of the filters are not the simple lowpass/hipass stuff. You have flanging filters, overdriving filters, chorusing filters. You have a lot of comb-like filters, which allow you to model the sonic characteristics after an existing instruments (like bell, clarinet or cello) or to shape the sound to mimic the sound of a vowel – all kinds of strange ee-yaah and oo-yeh effects.

Scarce set of controls, but at least the data dial is rock solid

The problem is, that at the beginning all those descriptions sound better than the box. Filters are rather digital and can be very harsh sounding; Morpheus is a wild beast to tame, at least that was my first impression. The interface of the module is even more ascetic than the one of Proteus 2000 – in the latter you have at least four knobs that you can use for so-called “quick editing”. With Morpheus you only have four buttons and the Data dial. That’s all, folks. Building Function Generator patterns can become very tedious. Morpheus was designed by very clever engineers, and it’s definitely an engineer’s synth – having a sheet of paper and a pencil while programming sounds always helps. There’s a lot of tools for shaping the sound. Every sound can use up to two instruments (samples), with the possibility of crossfading or layering them. Every sample has its own set of parameters to control the AHDSR volume envelope, but there’s possibility of creating a custom one (called “alternate envelope”). Sample can be delayed, reversed and even have it starting point adjusted. User is also given the control over the looping of the sound (on/off, as well as so called “loop offset”, which allows to sweep the sample memory). A lot of parameters are related to “solo mode” and portamento, which gives some hope of creating convincing replicas of wind or brass instruments (or maybe even bowed strings). And then the famous filters: 197 different types in Morpheus, 288 in UltraProteus. Unfortunately, only one filter parameter – Morph – can be adjusted in realtime. Filter Tracking and Filter Transform 2 (used in cubes only) retain their NoteOn value. What is quite interesting, every filter can be reversed – this operation actually changes the direction of all filter related controls (incuding the “auxiliary envelope”). There’s plenty of modulation possibilities: two LFOs per instrument, as well as two Function Generators. Those are the finest modulating tools, capable of yielding arpeggio-like effects and – in theory – anything you can imagine and describe in a logical way. Every FG has eight steps, and every step you take, can be assigned not only time and level, but also the shape (starting from rather simple linears, exponentials and circles, up to zig-zags, chaotic and random ones). But that’s not all. Steps can have conditions, so they can jump back (or forth), depending on velocity, LFO value or NoteOn/Off status – to name a few. Frightening possibilities…

However, it’s very unique and powerful. Your patience will definitely get rewarded. It also has very clean and selective sound. Getting a typical Korg/Roland pads, which fill the whole mix only by themselves can be a bit challenging, but getting few sounds, one next to each other, operating in different frequency ranges can yield a nice and clean mix – of course, as long as your filter doesn’t peak and breaks all the glasses in the radius of 50 meters.

Logotypes are probably more readable than displays...

Speaking of thick pads – Morpheus is able to deliver really massive sounds, thanks to its Hyperpresets. Proteus 2000 can contain up to four layers in a single patch, and can link two more patches – it gives up to twelve layers. Morpheus’ patches only have two layers, but Hyperpresets can contain up to eight patches, which gives sixteen layers. They are not like Korg Multis – you can use multiple hyperpresets, one next to another, just remember about the 32 voices of polyphony. But even building a hyperpreset out of a single patch can be interesting, since it can benefit from The Free-Run Function Generator. This thing is interesting on its own: this Function Generator starts when the preset gets selected and runs continously (if programmed in the appropriate way), modulating all presets it contains. However, parameter(s) modulated with Free-Run Function Generator are specified on the preset level, for instance one preset can get the Morph (main filter parameter) modulated, while the other will change its pitch and panning.

Connected to a good master keyboard with a decent set of physical controllers, it can be very expressive – it even accepts polyphonic aftertouch! Luckily E-mu uses MIDI Controllers mapping, so while editing patches one has to define the influence of controllers A, B, C and D. At any given moment those controllers can be assigned to a given MIDI CC number, so it can be easily connected even to a synth with hardwired controls (like Yamaha CS1x). It has its downsides, though. It’s noisier than Proteus 2000, and has smaller dynamics range. It has only 8 MB of samples, mostly filled with synthetic sounds. Also, it was the harbinger of “stuck resonance”, present in Proteus 2000. Of two (or three in case of “cubes”) filter parameters only one can be controlled in realtime. It also features very promising settings, which allow to change the physical beginning and end of a raw sample, as well as its loop points, thus providing the possibility of “sweeping” the sample memory. It’s not Wavestation, but can surely make the sound a bit more weird (yes, even more).

Getting a Morpheus can be a little bit tricky. The market stabilized already – those who got disappointed have already sold it. Most owners would definitely keep it. A solution may be to get UltraProteus – the same engine (only with 90 filters more), armed with 16 MB of samples taken from the legendary (at this time) Proteus 1/2/3. For some unkown reasons it is still present on the second hand market. This one is more “bread’n’butter”, but can be found much easier and for a modest pricetag of 150 EUR. I’ve got this one as well – just because 288 filters are better than 197, right? This also allows me to use them more like monotimbral synthesizers, taking advantage of strengths of each one, while ignoring their weaknesses and without worrying about the polyphony.

And the bottom line is: once you get it, you better have some time. After playing a bit with both of them I don’t think I’ve ever scratched the surface of Z-Plane. Presets don’t do the justice, since those boxes are capable of truly amazing effects – I experienced some of them, while not necessarily being able to harness them into the useful and controllable sounds. Of all virtues, patience will be the most wanted one.

Posted in MIDI, Music, Synths | Tagged: , , , , , , , | 1 Comment »