THE LOSS FOUNDATION BLOG

personalized expeditions in music from a musician who doesn't matter

Joint review, LSDj and LGPT: Therrrrrrre’s my chippy

Posted by r on January 20, 2014

This post is part of my ongoing tracker-app-reviews-from-slash-FOR-a-possible-tracker-newbie-perspective series. Next up: likely Klystrack.

I figure out absolutely everything backwards. The very first tracker that really piqued my interest in all this tracker-y stuff so “late” in life wasn’t Renoise, SunVox, or even some other “well-known / classic” tracker app for desktop machines. It was LittleGPTracker, aka LGPT, aka PiggyTracker, aka Piggy, aka The Pig.

I don’t remember how I bumped into this crazy app or the associated Hexawe netlabel-community. I liked much of the music I heard being made with Piggy, and was further fascinated by the idea of a robust music app designed to run on mobile devices with only gamepad input allowed for the end user.

LGPT was directly and openly inspired by a longrunning Gameboy music / tracker app called Little Sound DJ – LSDj for short. These two apps share more in common than their numerous interface / UI similarities; both are meant for use on mobile gaming devices or equivalent, and both have super-passionate fanbases actively making music with the things. Once you’ve got the basics of using one of them down, you’re pretty well ready to use the other as well. But there are some pretty significant distinctions between their approaches as well, particularly from a sound-generation angle.

I’ve played / worked much more with LGPT than with LSDj. While LGPT is available not only for several obscure mobile gaming dealies but also natively for Win32 (to say nothing of OSX / Linux / even RPi), I don’t have the requisite hipster hardware to run the Gameboy-only LSDj on a real Gameboy for the “legit experience” and have had to resort to using it in an emulator. But I’ve used both apps just enough at this point to feel comfortable slapping up a joint review from, again, the tracker-n00b perspective.

I have also used both of these apps enough to believe that some smart developer who might get serious about combining these two apps’ particular strengths with a somewhat more modern set of capabilities and UI could very much be on a direct route to The Future Of Mobile Electronic Music-Making. These apps are incredibly cool, and particularly in the case of LGPT, they’re useful for more than just chiptunery. Both programs have particular strengths in terms of workflow / input efficiency that eludes not only most other trackers, but nearly all other “modern” music-making apps as well.

Let’s get down to it.

But before we do – I’ll say more about “hardware requirements” at the very end of this review, but you should know upfront: these apps were meant to be used with gamepads or the equivalent. I would vehemently argue this does not mean you should take these apps any less seriously as music-making tools. You may eventually disagree, but try to keep an open mind.

Significant differences / Which one is for me?

The biggest single difference between LGPT and LSDj is the method of sound generation. LSDj uses the Gameboy 4-voice synth hardware as its sound source, and as such has very stringent (though often surprisingly flexible) limits on what sorts of sounds can be used as playback sources. For instance, bringing in samples for use in a project is not easily done (it’s actually impossible without an outboard utility to hack the ROM contents!), nor is the resulting sample playback fidelity what you’d call “pristine.”

Read: If your goal is to make authentic 8-bit-style chiptune music, LSDj is very obviously the purist’s choice here. You could, of course, also take the 8-bit / single-waveform / 4-voice Nintendo limitation as a challenge, so LSDj is also a nifty choice for those who have a bit of a masochist streak and/or like bragging rights re: making the absolute most of some very limited sonic resources.

LGPT, on the other hand, is entirely sample-based. It can still use short, single-cycle samples as looped oscillator waveforms (i.e., if desired, you can still make LGPT a single-waveform-synthesis-driven app a la LSDj at the core). But the ability to use, say, real drum samples and/or longer real-world waveforms extends LGPT’s music-making abilities well outside the realm of chiptune without much / any undue effort from the end-user.

LGPT, being written for heavier-hitting hardware than the Gameboy, also offers effective eight-voice polyphony over LSDj’s four synth-only voices. If you really want to maintain musical-masochist bragging rights, there’s always the option of limiting yourself to, say, doing a “single channel” / only-one-sound-at-any-given-time Piggy track… the amazing kind of track that renowned LGPT wizard Brady Leo is quite fond of making.

One other thing to note: Sharing projects with other users and getting PCM samples into the app are both significantly easier in LGPT, simply due to the nature of the app’s semi-contemporary filesystem-awareness vs. LSDj’s “it’s all stored in this ca. 1989 ROMcart, dude” mechanics. You can bring song projects in and out for sharing / collaboration / backup in LSDj, but again, it will require a third-party utility to do so.

The lay of the land in LSDj / LGPT

A full tutorial for either one of these apps is WAY outside the scope of this already-long review. It’s not that these apps are hard to use – they are just very different from anything else you’ve tried, and music entry in both apps is far easier to learn “by feel” at the game controller with manual in hand than from a longwinded written explanation alone.

So anyone wanting to give either app a proper go should be aware of the drastically different input paradigm involved / really plan on working with the thing for an absolute minimum of several hours, official manual and/or FAQ in hand, before any of it will start to make much sense. If that’s a problem, well, you probably already stopped reading this fifteen paragraphs back in favor of continuing to fuck around with Garageband.

I do need to cover / explain some LSDjGPT UI basics as quickly as possible, because without laying some of that groundwork, I won’t be able to fully discuss what these apps do so well in a way that eludes most other music apps – i.e., why these apps are just so damn cool.

songscreensThe song screens compared, LSDj (left) vs. LGPT (right)

These two apps both break songs down into two levels of patterns. The above screenshots show the highest level of construction hierarchy in a song / project in both LSDj and LGPT, called the song level.

As is the case in most trackers, time always “reads” top to bottom, not left-to-right as is the case in nearly all modern DAWs and GUI-based sequencers. Each column in LSDj / LGPT represents a single channel of polyphony. Again, note LSDj’s four columns (for 4 voices) vs. LGPT’s eight; for reasons I won’t get into here fully (basically, it’s about the Gameboy sound-hardware limitations), you may also note that LSDj labels each of its four columns with a specific timbral / generative role, while LGPT provides no such instruction / restriction on any of its eight sample-based channels.

The two-digit hexadecimal entries in each filled-in space represent chains. You could think of chains as larger-scale patterns of musical activity. Chains can be recalled by their associated number at any time in a song; if I want to have my bassline from chain 0A come back later in a song, I simply “type in” 0A exactly where it needs / “wants” to go with the gamepad.

Chains, in turn, are comprised of / built from “phrases.” The number of “phrases” in a chain is determined by the user, but can be anywhere from one to sixteen “phrases” in length.

Below, from the LGPT chain-edit screen, you’ll see an LGPT chain that is four “phrases” in length. The middle column shows the phrases in use – phrase # 00, then phrase #01, then the same two-“phrase” pattern repeated. I’ll explain the rightmost column a little later.

lgptchain

“Phrases” in both apps are always sixteen lines long, although a musician need not use all sixteen lines available in a phrase – but they can’t use any more than sixteen lines. Here, again, is a view of the LGPT phrase screen for phrase #00; as you can probably see, the phrase edit screen is the place in the app where the actual notes get entered.

lgptphrase

Sorry to be all overedumacated, but what LSDj and LGPT call “phrases” might be better (or at least usually better) thought of as single measures / bars by most semi-trained musicians’ standards.  “Phrases” is just what the devs decided to call these units of musical time / space. In other words, if you’re insisting on proper terminology, you would really build an actual 4-8mm etc. phrase in the chain screen out of one-measure “phrases.” But with the in-app labels as they stand, you can see how such semantic stubbornness would get confusing too.

To recap, the LSDjGPT song-structure hierarchy goes: song (big picture) –> chain (bigger pattern within the song) –> phrase (one-measureish small pattern). If you look at the upper left of each LGPT screenshot, you’ll see a red box where the letters “SCP” are at the left side of the “middlemost” row – SCP = “screen,” “chain,” “phrase.”

This UI element is the “screen selection tree,” visible in all LGPT screens. You can see the LSDj equivalent in the first LSDj screenshot at lower right. One navigates semi-effortlessly between editing screens in these apps by using the gamepad; effectively, you “push right” twice to get from the song editor to the phrase editor. Believe me, getting around in your project becomes very fast once you start to figure out what you’re doing.

Cool factor #1: Objectifying music

No, I’m not going to say that entering notes into a song with a gamepad is as fast as simply playing them on a MIDI keyboard. In many contexts, note entry can sometimes be a real pain in the ass. Yet, actually, in quite a few cases, getting your musical idea into LSDjGPT can be far faster than using “real instrument”- and/or  QWERTY-based data entry, and/or the mechanics of the apps can lead to ideas you might not have otherwise explored.

Y’see, Rudy, in addition to the simplicity and gradually-learned incredible speed of interface navigation forced onto these apps by the gamepad-centric method of entry, much of the power in the LSDjGPT way of thinking has to do with being able to treat phrases and chains as easily-referenced and -transformable musical objects

I promised a bit ago that we’d take a second look at that LGPT chain screenshot, because the third column is quite special. It’s the transposition column. Take a look again:

lgptchainNote that the second iteration of phrase 00, on the third line of the chain, has a transposition value of FD (aka “-3 semitones”, which I entered with three super-quick taps on the gamepad “down” button). This allows me to reuse the simple tonic-harmony, do-sol-do-sol bass line stored in phrase 00 as la-mi-la-mi over a submediant harmony… without any data reentry whatsoever.

But can’t I do this kind of thing in a normal sequencer? Well, sure. And I can also guarantee that copying a pattern to a new location and transposing it, or selecting a portion of a longer pattern to transpose, will take me at least 15 seconds longer in any GUI-driven sequencing app than simply zooming around the screen with the D-pad and pressing tap, tap, tap to insta-drop that sucker down a minor third.

This means an end user is able to create long chains with evolving, semi-complex harmonies with only a single entered “phrase” or two using the transpose-that-phrase column, and it’s fast to do so.

I did exactly this as further demonstration in LSDj:

The three-voice, eight-measure fragment in the media player above contains only three one-measure (-“phrase”) subpatterns, one of which is a drum pattern. The other two phrases are monophonic pitched lines that have been independently transposed to create a more interesting summed musical unit vs. its more boring mini-parts.

trans_demo-lsdjscreens

trans_demo-notatedversion

Cool factor #2: The hidden power of tables

Both LSDj and LGPT offer most of the same sorts of individual-note transformations / commands that are available in other trackers, which of course are useful if not outright vital in making a real piece of listenable music. For instance, “arpeggios”, note-to-note slides / portamento, individual-note volume, and filter cutoff points are all available note “modifications” / commands in both apps.

The sample-based LGPT also offers the ability to adjust the start point of a sample on individual-attack basis, which is also relatively common among trackers. Oh yeah, and it’s also got a wonderful / seemingly unique implementation of sample retriggering on the “command line” which can come up with noisy, attack-dense, IDM/trap-esque drum programs in no time at all. (I wish every tracker had an implementation of command-retriggering that worked exactly the same way as LGPT’s. Most definitely do not.)

One somewhat less common ability among trackers generally– to say nothing of most VSTis– is found in LSDj / LGPT’s tables. These are user-generated “to-do” lists of commands that can either be perma-associated with an individual instrument or arbitrarily applied to a single note anywhere in a phrase.

Additionally, tables can either be left to run synced to the app’s musical clock, or they can be “automated” – meaning, the app will step through each command or set of commands in a table, line by line, with each new note attack.

Tables are extremely powerful, and can not only greatly speed creating / musicall tweaking a project in one of these apps, they can open up whole new doors of expression and/or mindfuckery. Here are some ways I’ve used them.

  • Last week, I did an LGPT mini-song that had a “banjo” as one of its instruments. I wasn’t exactly going for convincing realism, but to add to the sense of an actual plucked instrument vs. a very-flatly-played monosynth, I created a four-step automated table that varies elements such as note length / decay rate with every individual attack, then resets to the beginning on the fifth / ninth / etc. note using the HOP command (shorthand in this case for “GOTO TABLE LINE 00 HERE”):
    banjotable
  • Another venture into country chiptune found me in the four-voice LSDj, needing to use nothing but a single voice / channel to cover both the bass line and the piano chords in a pseudo-Ray-Price shuffle groove. Below, the bass line is played with instrument 00 on lines 0 / 4 / 8 / 12 while the “piano” on the offbeats is on lines 2 / 6 / 10 / 14.
    rayprice
    The built-in arpeggio command simply wasn’t flexible enough for the piano chords I needed. Instead, I made a bunch of tables, one for each chord. Above, you can see them applied note by note in the CMD column, using the “A” LSDj command to invoke a table on a note- first, two instances of table 00, then table 01, then table 02. What do these tables look like?ray-tablesTable 00 transposes the note up by 5 semitones, then 8 – moving at the very quick line-by-line speed of the app, this makes a second-inversion minor triad “illusion” out of a single initial note. Tables 01 and 02 form root-position minor triads and mm7 chords, respectively, on their initial notes when invoked by number. This is a cool and very easy way to get three- or four-note “polyphony” out of a single channel.
  • I’ve also used tables plenty to very quickly apply auto-panning on a note-by-note basis, to generate complex / evolving dynamic envelopes to sounds, and to step through asynchronous lines of commands for extra super-duper-dynamically-varied WTF on a given voice / sound – since, in LGPT, tables each have three command columns and all can run “out of sync” with each other via HOP commands in different places. I can’t really demonstrate the sheer awesome of the latter technique without making a Youtube video with a bunch of cursors racing around the table-screen in LGPT, and I’m already wanting to wrap this review up. Just, y’know, try it sometime. You’ll see.

Cool factor #3: On your time

In addition to note-command tables, both apps also have some form of time-adjustment table(s) which allow the metrically adventurous user to create some serious (and seriously controlled) rhythmic havoc, well above and beyond predictable 4/4 drudgery.

These tables allow the user to control the comparative duration of each individual line in a “phrase.” The lowest-common-denominator unit of time in these apps is a “tick,” as it is in most tracker apps, and by default each line in a phrase receives six ticks’ worth of time. Thusly, if you wanted a shuffle feel vs. a straight-eighths groove, you might set things up to alternate between 8 ticks and 4 ticks per line.

Much more entertainingly, if you want a “Bucephalus Bouncing Ball” effect, set up a “groove” that works the time-value of each line in a phrase from 16 ticks down to 1, subtracting one tick per line – 16, 15, 14…

LGPT has the most powerful implementation of this with its so-called groove tables, which can actually be applied on a per-phrase basis – meaning: multiple chains can be running with entirely separate groove tables.

While these timebase-warping abilities are, again, hardly exclusive to these two apps among trackers, the flexibility and “object-oriented” aspect of their implementation definitely puts them in some kind of highest-percentile bracket among trackers.

Cool factor #4: There’s a tap for that

Yyyyyeah, please don’t hit me for the above ridiculous subheading. But honestly, the devs of these apps have really thought out how to make the most, efficiency-wise, of such a limited input device, and so many operations are just plain faster when you’re using a gamepad for entry in these apps – faster, again, in many cases than even QWERTY-based entry.

Both apps are (usually) smart enough to assume that once you enter a given note or pattern, you’ll often want to enter all of the same data again with a single press of the “A” button. If they’re wrong about that, altering the data is made very quick in most cases due to the way the D-pad is mapped to incrementing values in two planes – L/R for +/-1, up/down for (usually) musically-useful leaps of 12.

But under the usual assumption of “just repeat the last entered thing,” entering a four-on-the-floor kick drum takes, say, about 0.25 seconds per measure of entry, and a stock kick-hat-snare-hat techno pattern about another two seconds in addition (once you’ve set up the instruments, anyway). Add that to the chain-phrase structure and you can repeat yourself to death in no time at all.

Of course, you probably don’t want to repeat yourself that much, which is where the single-gesture cloning operation comes in very handy in both applications. It is downright trivial to use previously-entered data – at either the chain or phrase level – as the basis for some variation. Clone it with the insta-shortcut on the D-pad (always much faster than clicking on a clip and pressing Ctrl-C, I can assure you), then get in and alter whatever needs to be altered therein.

Or just want to copy and paste a huge block of data in-app? Drawing the box around the desired boundaries of the data takes a split second with the D-pad; there’s a button sequence to copy into the buffer that takes another split second longer.

Again, these apps will seem bizarre, slow, and clunky at the very first. Start using them for any semi-protracted length of time and figure out the shortlist of controller shortcuts, though, and you’ll soon start to wonder why your other music apps can’t make basic operations this freakin’ speedy. There are big advantages at times to only having two main buttons that have to do everything.

Downsides

More so than with most trackers, it truly behooves a user of one of these apps to be able to think vertically as well as horizontally. Due to the nature of the UI, you can only see one note / voice at a time. Thusly, coming up with multi-channel harmonies in quick fashion (or even material that is consonant with existing material) means you need to have your personal memory working and your harmonic thinking cap screwed on fairly tight. Otherwise, you’ll be paging around visually comparing multiple simultaneously-playing phrases / changing already-entered notes a fair amount.

The biggest issue I’ve had with these apps in use– hardly unusual among trackers– is the inability to “mix” channels “at the master-channel level” like you can in a typical DAW’s virtual mixing console. In other words, if you make an error in level-judgement / mix balance with a given channel, or change your mind about comparative between-channel / -voice mix balances later in the creation of a song, it can range from semi-frustrating to practically impossible to “fix the mix.” (One can insta-render out an LGPT project channel by channel and “fix it in the DAW.” Just know that, from a tracker-purist angle, this is really sort of cheating.)

And speaking generally, like most trackers, the fact that you can’t use these apps as VSTis is a real bummer for us modern types. This seems a particularly unfair critique given their “real” target platforms, of course. But I’d still pay, like, a hundred bucks for a VSTi-speakin’, host-hard-syncable version of LGPT for sure. I would use it quite often for super-fast drum programming and sundry synchronized glitchery.

Final notes on “system requirements”

Both of these apps do require a little bit of special consideration in terms of setup for use on a desktop machine – or even on their respective “native” platforms.

As already mentioned, LGPT has been compiled for all of the mainstream desktop OSes, so even if you don’t have one of the mobile gaming devices it was meant for, you really just need some kind of computer and a basic $10+ USB gamepad to get started. Actually, you can try it out without a gamepad using the QWERTYboard as a “substitute” for its intended method of input. But once you get going, just trust me on this: if you’re using LGPT on a computer, you will definitely want a properly-configured gamepad. LGPT is free for download for all platforms.

LSDj, being Gameboy-native, is not only donation-required for download access (I’d suggest $5), but a little more complicated in terms of getting started. Ideally, you’d have a working Gameboy and the hardware means to “flash” the LSDj ROM over for use on the old-school hardware. The total cost for this is roughly $40-50+ PLUS the cost of your secondhand Gameboy, and which Gameboy to buy / use can also be a complicated consideration.

To avoid all of this, you can do what I’ve done and simply run the LSDj ROM in a Gameboy emulator of some kind. Not so fast, though: this unfortunately opens up a bunch of sonic cans o’ worms– no emulator being “perfect” at faking the Gameboy’s sound hardware– and may require trying on multiple emus / multiple emulator configurations for best results on your desktop OS of choice. (I have had the best results on Windows using LSDj with an unreleased straight-from-the-developer version of the BGB emulator; the officially-released current BGB version, 1.4.3, had some timing issues with LSDj on my machine which the BGB developer has resolved for a future official release, but your mileage may vary.)

Again, if you plan to make more than a couple short phrases’ worth of noise with LSDj in an emulator, you will definitely want to hook up and properly configure a USB gamepad.

Summary

I really and truly wish I could make every music-app developer in the world try out these two applications for a length of time. No, they certainly don’t offer unlimited sonic power, nor do they do everything well / quickly / easily. Really completing an entire song properly in one of these things takes at least 20-50% longer on average than it would take to create the “equivalent,” if there could even be said to be an equivalent to a finished LSDjGPT product, in a contemporary sequencer / DAW.

But the stuff that the LSDjGPT interface gets right is about as right as I’ve ever seen it in 25 years of cross-platform music-making and hardware usin’, speaking purely in terms of efficiency and speed of entry. There are things to be learned from the LSDjGPT UI. There are many other ways these same principles could be used to make electronic music-making much more effortless.

And this completely puts aside the raw fun factor of using these comparatively primitive apps to make real music. Many times, finishing a song in one of these apps feels more like, well, beating a particularly entertaining video game vs. a torturous, heartwrenching, soul-draining labor of love.

When you get it all finished up, you’ll certainly want to go around to all your musician pals to say: “hey, I did all this with JUST a game controller!” Sure, they will follow up by looking at you as if you’ve gone completely nuts. But a good work of art should probably make everyone think you’ve gone nuts anyway. And, besides, ain’t social alienation just part of the fun of being a musician?

Sorry, the comment form is closed at this time.