Earlier this week I sent some questions out to Benjamin Klum about his Playtime plugin for REAPER and I just got the answers back.

Click here to read our previous story on Playtime.

A live style session view for REAPER has been requested for years, what made you want to be the guy that made it?

I’m a REAPER user since 2009. Before that I used Cakewalk, Cubase and EnergyXT. I love REAPER. It’s an amazing piece of software and I greatly respect Cockos for pulling off something like that.

As many others, I occasionally was missing a feature that enables me to make music in a non-linear fashion, something like the Session View in Ableton Live. What options did I have? Switching the DAW? Not an option for me. I’ve several solid reasons why I prefer REAPER over the other DAWs out there. Using Ableton Live and REAPER in combination? That sucks in usability. Waiting until this gets implemented in REAPER natively? I would not bet on it.

The idea of making Playtime came to me when I was experimenting with the REAPER extension API in C++. I found out that it is possible to position an item (MIDI or audio) on the timeline in realtime. Intrigued by that discovery, I tried to hack something together that would allow me to reposition an item triggered by pressing a key on my MIDI keyboard. It worked! That’s where it all started. Being able to trigger a loop on the REAPER timeline by pressing a key… that’s the essence of Playtime. To put it simply, the rest is just some nice logic and a fancy user interface 🙂

Being able to trigger a loop on the REAPER timeline by pressing a key… that’s the essence of Playtime.

I personally think there’s no need for another DAW. Switching to another DAW always has two sides. On the one hand, you get the feature you need. On the other hand, much of your existing know-how gets useless and you have to say good bye to other beloved features.

Why not build upon an already mature existing DAW and make it more versatile? I consider that approach as much more user-friendly. Of course, the core developers cannot implement all of the users’ wishes. But Cockos opened up REAPER so much that other developers can help them with that. I have been looking for an “open” DAW for many years and found it. I think REAPER has the potential of becoming the Firefox of the DAW world – in terms of extensibility 🙂

Concerning my coding background: Usually, I write data-heavy server software such as web applications but in the last 2 years I really started enjoying developing software for music creation. Especially because it is one way of combining both of my passions, software and music.

Pretend I don’t know Playtime or Ableton Live’s session view, Can you explain what Playtime can do?

Playtime offers 64 buttons into which you can put loops. If you press one of these buttons, the corresponding loop starts to play. If you press a second button, a second loop will start to play, perfectly tempo-aligned with the first loop. Thus, you can create musical arrangements just by pressing buttons. If you want, Playtime lets you record your arrangement by writing the loops to REAPER’s timeline. That’s the basic concept.

Playtime also lets you trigger loops by pressing keys on your MIDI keyboard. That’s very useful and makes Playtime basically a musical instrument. There are MIDI controllers with visual feedback made for exactly this kind of usage, for example the Novation Launchpad.

This is just a start. There are many more features such as scenes and groups which can come in very handy when making a song. You can get the full picture by trying the free evaluation version and/or browsing the user guide (http://www.helgoboss.org/ projects/playtime/user-guide).

Can we use one-shots and MIDI or just WAV loops?

You can use audio, MIDI, even videos and images… whatever works in REAPER as media item also works in Playtime. You can set for each clip whether you want it to behave like a one-shot or like a loop.

Why did you decide to make a VST rather than a JS effect or an extension like SWS/S&M?

Making it a JS effect was not an option because one cannot access the REAPER extension API from JS effects. Even if it would be possible, JS would be a poor choice for a rather complex piece of software like Playtime. For audio and especially MIDI processing JS is perfect though, I use it extensively!

Playtime is actually kind of both a VST instrument (VSTi) and a REAPER extension. It’s not a REAPER extension in the traditional sense: Unlike SWS/S&M, it’s not loaded on REAPER start. But Cockos had the very good idea to allow VST plugins to access exactly the same functions that are available to REAPER extensions. Thanks to this, Playtime can use the complete REAPER extension functions plus the functions offered by the VST interface.

I chose VSTi over a normal REAPER extension because I think of Playtime as a musical instrument – exactly what VSTi was made for. Having it as a VSTi has a bunch of advantages that might not be obvious at a first glance. First and foremost, you can control exactly which MIDI devices control Playtime by using REAPER onboard routing. You can preprocess the incoming MIDI in any way possible – the complete REAPER power is at your disposal here. You can record a Playtime performance on a MIDI track and change it by using the piano roll. You can even use multiple Playtime instances simultaneously and control one instance by another one. That leaves much room for experimentation. All of that wouldn’t be possible with a pure REAPER extension.

the complete REAPER power is at your disposal here

Besides that, it’s difficult to access incoming MIDI in pure REAPER extensions. That’s much more straight-forward in VST plugins.

Are there any limitations to the VST format that will prohibit certain features?

Compared to implementing it as a REAPER extension, there’s absolutely no limitation as I explained above.

Compared to implementing Playtime as part of REAPER itself, there naturally are limitations – as with every extension system. But in practice I never stumbled upon such a limitation. Until now, REAPER’s extension API helped me to achieve everything what I wanted. It goes very deep and is extremely versatile, I would say. As far as I know, no other major DAW offers an extension API that allows plugins to intervene so deeply.

A major advantage is also that developers can go all the way down to developing in C/C++, not just in a scripting language. That opens up virtually endless possibilities and allows developers to squeeze out the last bit of performance.

The API is constantly growing. I think Cockos does a great job here. For me a unique selling point of REAPER 🙂

Aside from an OSX version, what features can we look forward to?

Short-term (but after OS X support of course), I’m planning a bunch of small improvements that make Playtime instantly more usable. An action to create an empty MIDI clip in a slot, an action to build a scene from currently playing clips, a CC-mappable action to record the currently selected slot, an option to switch the exclusive mode per group … such things.

Mid-term, I’m planning for example a Launchpad mode that further improves the already existing support of Launchpad-like controllers.

There are a lot of ideas buzzing in my head how to make Playtime more useful. Of course, the feature planning also depends on user feedback and discussion. Users are welcome to propose and vote on the issue tracker (https://bitbucket.org/ helgoboss/playtime/issues).

Big thanks to Ben for taking the time to give us such detailed answers. I’m hoping this will be the start of something really good for REAPER users as we start getting more and more developers taking advantage of the REAPER extension API, and creating more powerful tools, instruments and effects exclusively for REAPER.

Share this: Twitter

Facebook

Reddit

Email

