Author Archives: irwinhkwan

About irwinhkwan

I am a senior user experience researcher with The MathWorks, creators of MATLAB and Simulink. Previously, I worked as a postdoc at the EUSES Lab in Oregon State University. I earned my Ph.D in computer science from the University of Victoria. I have a Software Engineering degree from the University of Ottawa, and a Masters of Mathematics (Computer Science) from the University of Waterloo. I enjoy computer-based music production, hardware synthesizers, and video games.

Using the Sampler in Logic Pro X to Play and Slice Audio Samples

Let’s say you need an instrument that will play back recorded effects, slice drum loops into segments, automatically shift the pitches of sound so they’re always in key, and cut out bad “pops” other undesirable parts of a sound. Oh, and you also want it to play cool gating effects. What instrument would you use? The answer, of course, is a sampler. A sampler loads up recorded audio files and does some basic processing on them so that you can use them as an instrument.

I’ve never really been big into samplers. I started doing music after trackers were going out of style but before scripted sampling engines became big. As a result, I never really paid much attention to the “simple” sampler where you dropped in a sound file and had it play it back for you.

I want to walk you through using a sampler using Logic Pro X’s “Quick Sampler” because it’s, well, quick. The Quick Sampler was released as part of Logic’s 10.5 update and it’s fast and easy to incorporate samples into your music composition! However, even though the instructions here are specific to Logic, almost all samplers support these concepts.

Loading Samples

Drag and drop the sound directly from the Finder into the track header. Release the button and it’ll give you an option for what to do with the sample:

Drag and drop the sample from your filesystem into Logic’s tracks to create a Quick Sampler.
  • Original: Use the sound as-is. Great if you want to just play the sound back at different pitches using the piano roll.
  • Optimized: Analyze the sound and do a bunch of magic to set the sampler up around the type of sound you loaded in.

You can audition your sound with the tiny little play button under your sample, or you can use the piano roll and play the sample back (the default note is C3). For most sounds, the sound will play back as long as the note is held.

If you mouse over the note name here, the icon actually turns into a “Play” button that will audition your sample. It’s a little hidden.

Play Your Sample Like an Instrument

One of the great features of samplers is making the sample work across all kinds of different pitches and with all kinds of note lengths. You can change a quick snappy trumpet note into a long drone or pitch a really low-pitched sax into a high-pitched sax.

Load your sample and set it to “Classic” mode. The short version of how this works is that the sample plays as long as the note in the piano roll is held down (the longer answer is that the sample follows the amp envelope). Next, look for the loop points. If you hold the note down for longer than the sample’s length, then the sampler will loop across this range.

To make the loop sound good, you don’t want clicks or pops when you go from the end to the beginning. This means that you generally want the loop points to hit a point called a “zero crossing” (which is represented by the line). Fortunately, Quick Sampler makes it pretty easy to snap the loop points to zero crossings. Under “Snap”, choose “zero crossing”. Next, you want to set your loop so that the sound is as continuous as possible. To do that, you can zoom in on your sound’s waveform and imagine that you’re drawing a line from the end back to the start without an abrupt change in direction.

You want to set the loop points so that the waveform at the loop end and loop start cross from positive to negative (or negative to positive) through the zero crossing to avoid clicks or other sound artifacts.

The following video demonstrates some of the differences in the sound when you don’t snap to zero crossings, when you don’t match the waveform’s direction, and when you do line everything up.

Demonstrating how to use loop points on a sample to reduce clicking.

One Shot: Play The Entire Sound!

If you want your sample to always play back in its entirety, then use “One Shot”. This is best for drum sounds or sound effects where you always want the entire sound to play.

Slice Your Sample

A long-standing music production technique is harvesting drum loops from recordings, slicing them up, and then using them in different ways in your own music. This is not only fun, but it allows you to get some really interesting effects.

If you want to play each drum hit separately, you can use the “Slice” option in Logic. When you click it, it automatically cuts your tracks by transient and assigns it a note, and then you can use the note to play back each piece. Here’s a filtered hi-hat loop you can use to follow along with.

This sequence plays back each hit in the loop one at a time.

You can choose different ways for Quick Sampler to automatically cut your track up:

  • Transient: Cut your track using the sound as a guide – essentially, it tries to put each hit in its own region that can be played back with a note.
  • Beat divisions: Cut your sample into slices based on the tempo from your DAW.
  • Equal: Cut your sample into a specific number of slices. This is really useful if you know the BPM of the original sample and how frequent the hits are.
  • Manual: Manually slice your sample by hand.

In each of these cases, you can use the gear menu to copy the MIDI pattern and paste it as a region on your track. When you play it back, it should sound like the original.

Copy, then paste the MIDI Pattern to quickly play the sound in the region

With the region, you can move MIDI notes around to play the different hits in unique ways or even to gate parts of a sample! In the example video below, I use this technique to chop up a vocal.

Using “slice” and the piano roll to gate parts of a sample.

Recording Instantly From Logic

I’ve been talking a lot about how to load and manipulate samples that you already have, but what if you don’t have any suitable samples to work with? The Sampler makes it easy to create your own!

Using Quick Sampler’s “Recorder” mode, select an input source (which could be from your audio inputs, but it could also be from an instrument track in Logic). Press the red “record” circle, and then play the sound in the DAW. You’ll see the audio come through into the sampler. Press “Stop”, then select an appropriate mode for playback. You will likely need to edit the start and end points of your sample (hint: if it’s a loop, you might find Snap: Beat helpful).

Recording a baseline from Instrument 3 into the Sampler. You need to manually stop the sample and then trim it down at the end.

Why would you resample from your DAW when it’s already playing the sound? The cool thing about resampling is that you can chop up the result for some very interesting effects. Resample your voice and pitch it up or down for some robotic dystopia. Slice a loop up to gate and glitch it. Record some drums with huge reverb, but then gate the reverb out. There’s a lot of interesting things that you can do with samples even directly in the sample editor.

Let Quick Sampler Do The Work For You

When you load a sample into Quick Sampler, it asks if you want to use Original or Optimized mode. What’s the real difference? Optimized mode will attempt to auto-detect the nature of the sound and then tailor the sampler’s settings based on what it thinks works for the sound. It will:

  • Try detecting the pitch and put the sound on the corresponding note
  • Set the start and end so that it skips silence
  • Set loop points automatically
  • Slice the sample into drum hits if it’s a drum loop

Quick Sampler modulation and other sound-shaping devices

In addition to manipulating the sample itself, you can modify a number of pitch, filter, and amp envelope options. You can use these to creatively shape the sample to your needs! If you want a lush pad, for example, you could increase the attack on the filter envelope and increase the amp envelope release.

The sampler also contains a number of modulation options. Access the “Mod matrix” to see a list of possible controls, then map them so that you can control them from the piano roll or your MIDI controller.

If I’m drawing MIDI notes on the piano roll, then I like to map velocity to a target for some easy ways to introduce variety.

These features are part of almost every sampler!

Now you know more than enough to have fun with your samples. I like Logic’s Quick Sampler because it’s so easy to get started, but pretty much every DAW, and even hardware sampler, uses the same concepts in this post. From slicing to ADSR to zero crossings, you’ll be able to figure out any sampler!

https://www.flickr.com/photos/111456865@N04/11357509244

How to Compose Music Without Playing an Instrument or Knowing Music Theory

Have you ever wanted to write your own pieces of music? It’s easier to start learning music composition than you might think.

I’m a mostly self-taught composer, and I’ve never learned to play any instrument well enough to be proficient at it. I remember wanting to learn how to compose songs in 2003 and then getting stuck with thinking about the tools required and the skills required. I used to think that you needed to learn music theory, and that you HAD to learn to play with a piano keyboard.

You do not need to know any of that to compose! These days, with digital tools, you can start writing basic songs with only a mouse, and listen to them immediately to see if you like what you hear. I’m going to help you get started with composing just enough so that you can try a few things on your own and get some experience so that more advanced tutorials make sense.

I used to think that you needed to learn music theory, and that you HAD to learn to play with a piano keyboard. You do not need to know any of that to compose!

I’m going to assume that you are using a digital audio workstation (DAW) such as FL Studio, Garageband, Reaper, Ableton Live, or Logic Studio. There are many guides about how to choose a DAW, so I won’t cover that topic and focus primarily on the art of composing itself.

Melody and Harmony and Backing Rhythm

The first thing to be familiar with when composing is the layout of the piano keyboard and scales, even if you don’t plan on ever learning piano. This is because almost every DAW uses a piano roll to represent notes, where a piano is on the left. That said, if you’re just starting out, the only notes you need to worry about right now are the white keys. Horizontally, you can see when the note starts, and its duration. The numbers across the top represent bars (you can see 1-2-3-4). The smaller grid lines are subdivisions. A whole note covers one bar. A half note covers half of the bar. A quarter note covers a quarter of the bar. An eighth note covers 1/8 of the bar.

A melody in C major. We use the white notes to stay in key. The melody starts with a whole note, two half notes, four quarter notes, and ends with a whole note.

For creating melody, learn two scales: the major scale, and the minor scale. The major scale is essentially do-re-mi-fa-so-la-ti-do and can be played on the white notes starting with C to make “C D E F G A B C” (C major scale). The minor scale is played on the white notes starting with “A” (two white notes below C) and goes “A B C D E F G A” (A minor scale).

The C major scale starts on C and ends one octave higher. The “3” indicates the octave (so C4 is higher than C3).
The A minor scale starts on A and ends one octave higher. Note that even though the order of notes is the same, the sound of the melody is quite different if you start and end on A than if you start and end on C.

For most melodies, if you riff on the white keys, and either start, or end the melody on “C” for major, or “A” for minor, then you’re going to get something that cannot be out of key and will probably sound fine.

For creating harmony, you will want to learn chords. A chord is made of three specific notes played at the same time. For the raw basics, you would want to learn the 1 chord, the 4 chord, and the 5 chord. Once you get used to those, add in the 6 chord. Here’s a chart for what the chords are for the C major scale and the A minor scale.

Chords for C majorChords for A minor
I chord: C-E-G (C major)i chord: A-C-E (A minor)
IV chord: F-A-C (F major)iv chord: D-F-A (D minor)
V chord: G-B-D (G major)v chord: E-G-B (E minor)
vi chord: A-C-E (A minor)VI chord: F-A-E (F major)
Basic chords to get started with the C major scale and A minor scales. The “I” is a Roman numeral I. Technically, there’s a difference between the capital I and the lowercase i, but we can save that for when you want to learn music theory.
The 1, 4, 5, and 6 chords for the A minor scale. To draw a chord, start with a note on the scale, then skip a white key, draw the next note up, skip a white key, draw the next note up.
The 1, 4, 5, and 6 chords for the C major scale. There is actually a difference between the capital Roman numerals and the lowercase ones – capitals are “major” chords and lowercase are “minor” chords. If you listen to a major chord compared to a minor chord, they sound very different.

Using the 1-4-5 chords, a nice chord progression across four bars is 1-1-4-5. You can try many different variations of this, like 1-1-5-5, 1-4-1-5, and so forth. If you add the 6 chord, you have the harmonic foundation for a gigantic number of pop songs with the I-V-vi-IV progression.

For rhythm, learn some basic drum patterns. A basic to start off would be:

  • Kick drum on every beat: 1-2-3-4
  • Snare drum on every second beat: 2-4
  • Closed hi-hat on every 8th beat: 1-&-2-&-3-&-4-&

Writing in your DAW

If you have this, the next step is to sit down at the DAW and start writing. Choose some instruments that sound good to you. Good choices are piano and square wave synth sounds because they sound good across many octaves.

A solid template to start your composition from would be:

  • One lead track to play the melody
  • One midrange track to play the harmony
  • One low track to play the bass
  • Drums

Play your melody in the melody line following the major or minor scale. Play the harmony in the midrange track and assign it a chord progression of your choice. For bass, you can usually draw the lowest note from the corresponding chord, make it short, and then repeat it and move it around for some groove. Copy and paste this and add a few variations.

A template for a first song using Garageband (but you can use any software that you want). You can choose any instruments that sound good to you. Usually, DAWs will provide presets labelled “lead” that are good for melodies, “pad” or “rhythmic” for harmonies, and “bass” for bass. For drums, the keys correspond to different drum sounds depending on the drum kit that you select.

Now you’re composing!

Eventually, you’re going to grow out of this template. You’ll start using open hi-hats, breakbeats, syncopated rhythms, jazz harmonies, crazy stacked synths, three kick drums, alternative modes, an entire orchestral string section with borrowed chords, and more. But when you’re just starting out, I like to give people a relatively constrained set of parameters to work with initially because it helps you get something down on the paper. Once you get it down and you can press “play” and hear something that sounds not too bad, you can start making tons of variations and basically start having fun overall with it.

I like to give people a relatively constrained set of parameters to work with initially because it helps you get something down on the paper.

Set Realistic Expectations!

When you are writing, your first few songs will sound bad. They won’t be epic like Howard Shore or floor-busting like Skrillex. Just accept it. Actually, to be honest with you, when you first start out, your first few songs are going to sound AMAZING and you’ll want to show all of your friends, but then you’re going to realize just how wrong you were about it half a year later.

The point is, it takes a lot of practice if you want to make songs that sound like your favorite songs. This is where analysis and theory comes in – you also want to know how to listen and study existing music and put it into a framework where you can put it on your page. You will get there eventually. Until then, embrace making music that sits within your own parameters until you get the skills up. There’s a lot to learn, but it’s also important to have fun with the process!

Learn and Practice With Others

As you learn the skills, you need an opportunity to practice them regularly, in a way that is encouraging and motivating in order to get good.

I highly, highly recommend that you Join a community where you can compose, share your work, and get feedback. I plug One Hour Compos a lot for new and experienced producers alike. The compo starts at 9:00 P.M Eastern time and runs for a little over an hour, and then everyone listens to the songs afterward and comments in real-time. This is extremely valuable because it’s not a huge time commitment, you get to practice, and you get real-time feedback from the ThaSauce Network Discord. In addition, since you’ve only spent an hour on it, no one has any expectation that what you’ve created is complete or polished.

There’s lots of variations of this (Two Hour Track Sunday, WeeklyBeats, Weekly Music at streak.club, Mix Challenge, 90 Minute Compo, etc.). No matter what you’re doing, if you’re doing it every week, and you have people listening to your work and leaving you their impressions, you’re going to improve much faster than if you’re doing it on your own.

If you’re doing it every week, and you have people listening to your work and leaving you their impressions, you’re going to improve much faster than if you’re doing it on your own.

Your Next Steps

What happens next? First, create some music. Get used to the process of choosing some instruments, writing some notes on the page, and listening. Compose some melodies, listen to how the different chords and rhythms sound, and learn how different instruments sound. Join compos like One Hour Compo. Ask me questions in the comments and let me know about topics you want to learn more about. Not everything is going to sound good. That’s okay. You’re learning a new skill – one that takes many hours to develop! Remember that it’s about the journey – your journey – not the results.

When you start getting comfortable, a good next step is to start learning music theory to form a foundation from which to understand more music composition concepts. There are a lot of resources out there, but I particularly enjoy Hack Music Theory for its simple explanations, its solid foundations, and easy-to-apply techniques.

I really enjoy talking about music composition and music technology. You can reach out to me on this blog or through Discord (EmeraldArcana#7200). Check out my compositions on my YouTube channel!

A Reflection of Warframe’s New Player Experience After 20 Hours

Warframe is free-to-play online action-adventure video game for various platforms. You play the role of a Tenno (essentially a space ninja/warrior) defending the world against numerous factions. Because the game is free, its revenue stream comes from players purchasing cosmetic items, weapons, and “frames” using a currency called “Platinum”. Such games rely on being engaging for new players because players who play the game are more likely to keep playing and therefore spend money; all of this is relevant from a UX perspective. I reflect some of my experiences that I had as a new player of the game. I originally posted this on the Warframe subreddit.

Hi everyone, I’m a new player and I’d like to report what it’s like as a new player to figure out how Warframe works and how it plays. I thought I’d write about this because I enjoy learning games. I’m also a user experience specialist so this kind of reflection just comes to me.

I wanted to find a new co-op PC game to play with my partner after I was done with Overwatch. We narrowed it down to Warframe (“space ninjas”) and Destiny 2. Eventually we decided on Warframe because posts online comparing the two described Warframe as having more RPG elements, which appealed more to my partner. We’ve both been playing games for a long time, but lean toward RPG and adventure games.

I’d like to highlight the following main stages and “ah-ha” moments for learning Warframe in roughly the order that we discovered them. We’ve been playing for 20 hours of missions (35 hours in the actual game) and have done about 120 missions together. We also know two friends who play and play with them as well; ironically, they actually didn’t introduce us to the game and we found out after playing for about a week and a half that they played. We’re enjoying ourselves, but I did have a few moments when I was like “I think I get what this game is doing” and wanted to stop. I’ll talk about this below.

Here are the main activities I really had to unpack.

  • Basic controls
  • Comprehending the game loop
    • Story and the star chart
  • Motivation and reward
    • Getting Weapons
    • Getting Warframes
  • The social aspects

Basic controls

The game does a pretty good job with the basic controls in the introductory missions. I’m sure that this is pretty familiar to most players, so I won’t go through it too much.

There were a few things that I did not learn from the basic tutorial and had to learn them on my own, or from others:

  • I learned by myself that crouch-slide and jump spamming accelerated your movement a lot. (In videos, I also see people forward jump a lot but I find it harder on my hand than slide-jumping).
  • I learned from a friend (more about friends later) that bullet jumping dramatically improves the distance that you move AND you move in the direction that you face, which includes “up”.
  • It’s much easier to melee than it is to shoot. Your melee does more damage, hits multiple enemies, and requires less aim. My partner realized this early and basically melees everyone. Apparently melee effectiveness goes down significantly later in the game but 20 hours in it’s still pretty effective. Unfortunately, this also made MR1’s test hard because it requires that you use your primary weapon despite the fact that the melee is probably more familiar to the player at that stage.

Comprehending the game loop

What I mean by “game loop” is the series of activities that you do in a sitting. In Warframe, it’s “go on mission”, “collect loot”, “go back to ship”, “upgrade your stuff”. There’s actually a lot to unpack here so I’ll go through it roughly in the order that I experienced it.

Story. Story is one of those things that gets you playing and keeps you motivated. You don’t know that much about the world after the first mission, but there’s enough of a narrative that makes you wonder, “What’s next?” Unfortunately, you figure out pretty quickly was that Warframe feels like it has no story. Now, I think this changes (apparently there are some really interesting story quests later in the game) but we’re 35 hours in game and there isn’t really anything to talk about, story-wise. That doesn’t mean that the game doesn’t have lore – there’s plenty of that that we can see in the Leverian and Nightwave, which are nice touches.

Star Chart. For a new player, Navigation menu is extremely confusing because I literally didn’t know what anything was.

First, you don’t know what the destinations really do. I think we selected Cetus as our first destination and then realized pretty quickly that it was a town. We talked to Konzu and started the mission, but when it dumped us into single-player mode, we panicked and bailed. I think my partner got one-shot by mobs in the Plains of Eternity at night – later we reasoned it was probably Eidolon analyzers. Definitely not a great first impression. A similar thing happened with Fortuna. We went there but the single-player mission destroyed our MR0-ranked rear ends. I think we came back at MR3 to do it and it still killed me two or three times.

Second, there’s a lot of mission types and their purpose isn’t really clear. There’s the Conclave stuff (which isn’t explained), Ghoul purge, Invasions, Scarlet Spear (I still don’t know what this is), there’s some Voids (which the game eventually teaches you), there’s some bonus stuff for skins (we tried one but were too low level and died).

We did eventually figure out how to select missions on the star chart. and selected a few mission types to go on. Our first mission together was a Defense mission against the Grineer. Then we did one against the Corpus, which was actually pretty cool. At some point, we realized that there was a portal to Venus that you had to open up and that it had mission requirements. The game doesn’t tell you this. It would have been nice for the game to give you an initial goal.

Motivation and reward

As a new player, you actually don’t really know what the reward are yet. I think initially, it’s the fast-paced action. Parkour is a lot of fun and you quickly learn that you can fly around levels and kill things really quickly. However, that wears out pretty quickly as a reward in itself since most of the initial levels on Earth and Venus are pretty simple.

The next level to draw you in, then, is getting new stuff to play with. This is where the game can fall short with respect to a new player experience.

Weapons are difficult to understand. Though the game explains that there’s a Market, it doesn’t do a lot to explain what you can buy. It was through some confused exploration that we realized that you generally had to buy blueprints, craft items, and then you’d get to use the weapon. It was also through some exploration that I realized that some weapons (a very small number, actually) could be bought with credits. It does present to you the concept of Platinum early and it’s easy to figure out it that Plat is the “real money” currency.

At Mastery Rank 2, I recall looking at weapons and the only ones being available being the MK1-Strum, the Boltor, and the MK1 fist weapon. I was unfortunately misled by guides on the Internet that said that MK1 weapons were inferior, so I opted not to spend my hard-earned credits on them and instead managed to snag myself a Furis pistol. I also observed quickly that many of the weapons that you already used MK1 versions of (like the Paris and the Bo) couldn’t be crafted until much later in the game (more on this below).

It felt like a significant amount of variety of the game was being locked out. I think we had played for about 2-3 hours and I was actually telling my partner, “I think I understand this game, we can play something else” because I had been using my first Warframe, my first primary weapon, and my first melee weapon for the entire game so far. Imagine playing an FPS shooter and for the first few hours, only having access to one load out. In fact, 122 missions in, my most-used primary weapon is STILL the MK1-Paris (32.1%) and the MK1-Bo (45.6%). It would be a huge improvement in the game if it made it clear how you could acquire new weapons. It improved my interest in the game dramatically when I discovered how to buy a Furis and Braton at MR2 and then even more when I got my second rifle, the Boltor. There are only a few items that are easily craftable before you get to Phobos, which is a pretty limiting factor considering how many hours it takes before you get to that point.

Warframes are REALLY difficult to craft. Often, people say, “Don’t spend Plat on Warframes”. I actually wonder how many players who are brand new spend Plat on Warframes (or quit before reaching Venus) because the game makes it really hard to get Warframes without help.

I’m about 20 hours of missions and I still only have two warframes (Mag and Ember, which I got for free with Twitch Prime). I suspect that I would have quit the game by now if I didn’t get get Ember for free. My partner wouldn’t have been able to get a second warframe if it wasn’t for help from friends.. I think that this is a major gap in the new player experience: the fact that it’s so difficult to get your second Warframe. What about the common recommendations, though?

  • Rhino. Often Rhino is considered the “first” Warframes. While you can get Rhino’s parts from Jackal, you can’t actually craft him until you reach Phobos because he requires Plastids. It took us about 10 hours to get to Phobos.
  • Oberon. To craft Oberon, you require a control module and an Orokin cell. You can’t get a control module until you get to the Void, which, if I recall correctly, is just off of Ceres. That’s even farther than Phobos.
  • Gara. Gara you can get from Plains of Eternity, but the higher-level bounties are challenging (level 30-40) and Gara also requires Orokin cells.

Are you really expected to use your starter Warframe for the first 10 hours of gameplay? For a while, the game was boring because the various missions weren’t really that challenging – it felt like you just either cut down mobs as quickly as possible or that you ran from Point A to Point B as quickly as possible. However, getting different Warframes really changed that and it adds a lot of this “gotta collect them all” aspect in addition to the changes in the basic gameplay that’s a lot of fun.

The social aspects

As with many games of this type, the social aspects saved this. Specifically, the fact that we had friends who could help us probably singlehandedly kept us playing because they were able to provide the game variety that we were looking for by helping us farm for materials.

Our friends who played Warframe weren’t exactly low – something like MR13 and MR17. After my partner mentioned that she was bored of Volt, one of them gifted my partner Octavia, which totally renewed her interest in the game. They also helped us farm Orokin cells and Control modules (both are essential to craft Oberon, which is one of the earlier blueprints you can get), Nova, as well as nano-spores (for weapons). Suddenly, I had a new melee weapon and actual choices for primary weapons and the game opened up dramatically.

Now at this point some people reading are probably like “Duh, it’s an MMORPG, you’re supposed to make friends.” At the same time, very little about the game’s introduction introduces you to the social aspects. Since we were playing two player, we played with each other only and didn’t PUG any missions. The game doesn’t teach you how to use chat. When you get a message from other players in your Inbox, there’s no way to respond. Even if you become aware of other players and trading, it’s hard to become aware of how to ask players for help especially if it’s farming for materials (and many people don’t like asking favors of strangers anyway). Essentially, if you never go to capital cities, it’s possible to go through the entire game without seeing other players.

Conclusion

Warframe is a solid action game with a lot of lore and variety, but it’s buried underneath an overwhelming set of available activities that feel really monotonous unless you either figure it out yourself, or ask someone to teach you. I think that if the game did a slightly better job of making more variety available and introducing new players to the social aspects, it would really smooth out the experience for everyone. Once you get a good sense of how junctions and main story quest work, the player ends up being able to make their own goals and play the game how they want to, but it takes a fair amount of context and comprehension to get to that point. I acquired a mental model of how the game worked mostly through talking with friends and through some experimentation and talking it through with my partner.

I think we’re into it though. I just spent my first real dollars on the game and hopefully will be able to enjoy it for the foreseeable future even though there’s a long way to go to get where everyone else is doing stuff. If you enjoyed reading this and want to say hi, feel free to reach out. My name is “emeraldarcana” also in game. I’m trying to get more warframes now – tomorrow evening, I’ll have Nova and I’m super excited.

Album Release: “Daily Routine” by Irwin

There’s an annual challenge called “National Solo Album Month” that challenges musicians to compose and release a solo album in the month off November. It’s based off of NaNoWriMo, “National Novel Writing Month”. An album is defined as having 29:09 of content (because that’s the shortest album released by a label that they have found).

I did the challenge this month and released my album, “Daily Routine” on Bandcamp. You can listen to it at https://irwink.bandcamp.com/releases!

The album itself is an improvisational album of techno and house beats that focuses on groovy rhythmic patterns, evolving musical textures, and minimal melodies. If you like that kind of stuff, check it out.

How did I make this album?

The album was composed using hardware synthesizers. I primarily used my Eurorack modular synthesizer, a Roland TR-8s drum machine, an Elektron Octatrack performance sampler, and an Elektron Analog Four multitimbral analog synthesizer. I also played melodies on the Linnstrument. For most of the songs, I composed a bassline, some backing tracks, and the drums, and then played them on the sequencer while adding lead melodies with Linnstrument playing a part of the Analog Four. Most of the songs are improvised, so they’re a little unstructured but are meant to convey a mood consistently through the whole song.

Creating a Song in Squarp Instruments Hermod

I created a video to illustrate the use of the Squarp Instruments Hermod Modular Brain. This is a multi-sequence, polyphonic sequencer for Eurorack that interfaces with MIDI, USB, and CV made by the creators of the very popular Pyramid. Check it out!

I also have a more detailed video that goes into how Hermod’s step mode and zoom levels work.

Upgrading the Kilpatrick Carbon Firmware

I recently purchased a Kilpatrick Audio Carbon made by Kilpatrick Audio. The Carbon is a multi-track, multi-step sequencer that controls instruments using MIDI and CV. So far, it’s been fantastic and it’s allowed me to start doing loop-based music live.

I’ve been communicating with the author, Andrew Kilpatrick, about some bugs about the device, and he recently released a new firmware update. He doesn’t have a Mac so he’s not able to test the Carbon’s firmware updating process.

For all of you visiting who have a Carbon that needs updating, here’s the instructions for Mac (they’ll also work on Linux).

Updating the Carbon using dfu-util

The Carbon uses DFU for its firmware updates. There are many DFU utilities out there, but an open-source one that works is called dfu-util, which runs on Mac and Linux. (If you’re using Windows instead, instructions exist on the Kilpatrick Audio firmware site).

Get the DFU program

1. (on macOS) Install home-brew (http://brew.sh). You’ll need Xcode for this (with the command-line tools).
2. (on macOS) Install dfu-util. “brew install dfu-util”

On Linux, the instructions will be different, but will probably involve using your system’s package manager in a similar way.

Get the firmware from Kilpatrick Audio

Download and unzip the firmware from the Kilpatrick Audio firmware updates web site. The latest firmware as of writing is v1.06.

Do the update

Restart Carbon in firmware update mode. To do this:

  1. Connect your Carbon to your computer using USB.
  2. Unplug the power connector.
  3. Hold down the power button.
  4. Plug in the power connector.

The LEDs will be a solid color and the screen will be blank. Sometimes, the LEDs will be different colors. That’s normal.

Open Terminal (macOS) or another command-line window.

In the prompt, type the following to check that the program can see your carbon:

dfu-util —list

Your output will resemble the following:

dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Deducing device DFU version from functional descriptor length
Found Runtime: [05ac:828d] ver=0118, devnum=8, cfg=1, intf=3, path="20-6.3", alt=0, name="UNKNOWN", serial="UNKNOWN"
Found DFU: [0483:df11] ver=2200, devnum=27, cfg=1, intf=0, path="20-4.1.2", alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="376837513335"
Found DFU: [0483:df11] ver=2200, devnum=27, cfg=1, intf=0, path="20-4.1.2", alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="376837513335"
Found DFU: [0483:df11] ver=2200, devnum=27, cfg=1, intf=0, path="20-4.1.2", alt=1, name="@Option Bytes  /0x1FFFC000/01*016 e", serial="376837513335"
Found DFU: [0483:df11] ver=2200, devnum=27, cfg=1, intf=0, path="20-4.1.2", alt=0, name="@Internal Flash  /0x08000000/04*016Kg,01*064Kg,07*128Kg", serial=“376837513335"

The Carbon’s device ID is 0483:df11. In this particular case, you want to write to the “alt bank 0”, which is the Carbon’s internal flash.

Install the firmware with the following command:

dfu-util -a 0 -D K66-carbon-1.06-firmware.dfu

You will see output that looks like the following:

dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Match vendor ID from file: 0483
Match product ID from file: df11
Deducing device DFU version from functional descriptor length
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
file contains 1 DFU images
parsing DFU image 1
image for alternate setting 0, (1 elements, total size = 272176)
parsing element 1, address = 0x08000000, size = 272168
Download [=========================] 100%       272168 bytes
Download done.
done parsing DfuSe file

This will take a minute or two to do the transfer.

When it’s done, remove the power from the Carbon, and plug it back in again. Start the power normally. Press SYS (SHIFT-MIDI) to check the firmware version.

If you’re updating from v1.02, the first few things that you’ll notice is a new font (I’m not 100% sold on it honestly) and that the Carbon now takes MIDI input from any channel instead of channel 1. There are also a number of bug fixes.

The Carbon also has a Github page, so if you have bugs to report or suggestions to send about the device, that’s the place to do it.

Enjoy your noodling!

Quickie: Upgrading Windows 8 to Windows 8.1 Problems?

I’ve been using Windows 8 as a dual-boot option on my iMac for a while. When Windows 8.1 came out, I was pretty excited, as Peter Bright’s review on Ars Technica was quite positive about it.

Unfortunately, I was getting errors doing the upgrade it directly from the Microsoft Store, eventually getting Error 0x0073B92 - 0x20009. I was a little stumped about how to get around this.

The solution was actually simple: disconnect all of your USB devices during the installation. (Internet searching seems to indicate that this is related to a problem with a second hard drive).

Sublime Text: Always run a single file in a project no matter what is focused

When I program, I often try to split up my code into modules. This requires that I use different files. However, I also want to run my code from a “main” or a “master” file as well. It’s pretty annoying in Sublime Text, or any text editor, to have to switch to your main file to run your project.

I’ve talked about how to do this in TextMate but how can you pull this off in Sublime Text? Let me show you how.

  1. Create a Sublime Text project for your program. You can do this by using the menu Project > Save Project As…”.
  2. Open the settings for your project using the menu Project > Edit Project.
  3. You’ll get a mostly empty text window. Modify this window to include a build definition, such as the following one for Python:
    • "build_systems": [
        {
          "name": "PyProj",
          "cmd": ["python", "-u", "$file"],
          "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
          "selector": "source.python"
        }
      ]
      
  4. Modify the line with “cmd” and change “$file” to the master file you always want to run. For example, if your main file is called pyproj.py, then change it to pyproj.py.

Add the "build_systems" JSON field in your project settings file, accessible through the Project menu > Edit project.

Add the “build_systems” JSON field in your project settings file, accessible through the Project menu > Edit project.

That’s it! While you’re editing your project settings, you can make other customizations as well as you see fit.

Obviously, this isn’t limited to just setting a file to be run no matter what file you’re focused on. You could use this to add command-line arguments to a single project, to run project-specific scripts for building and testing, or to otherwise customize the way the “Control-B” (Command-B on Mac OS X) works when you are running the project. You can essentially define your own build system on a per-project basis in a project file’s “build_systems” section and use any information in Sublime Text’s build system documentation to do so. Unfortunately, the build system documentation doesn’t really describe this because it’s focused more toward Package development.

For more information about how project settings work, look at Sublime Text’s documentation for build systems and for projects!

The Function (Fn) key is on the full-size Apple Keyboard

Are you one of those Mac users who generally turns on the F1, F2, keys as standard function keys option in System Preferences? If you do that, then if you want to use your keyboard to control the volume or the screen brightness, you need to find the Function (or Fn) key. (Alternatively, if you don’t turn it on then you need the Fn key to simulate F1, F2, and so forth keypresses).

Do you check off the box in System Preferences > Keyboard that makes the F keys behave as standard function keys?

Do you check off the box in System Preferences > Keyboard that makes the F keys behave as standard function keys? I usually do. I think I only ever use the Volume Control function on the keyboard anyway.

On the laptop and the wireless keyboards, Apple usually puts the Fn key on the lower-left hand corner, next to the “Control” key. But it’s not there on the full-sized Apple Keyboard with the numeric keypad!

Or is it?

The Fn Key on an Apple Keyboard is next to the home and above the delete key in the area above the arrow keys.

Ha, it’s in the middle of the keyboard between the letters and the numeric keypad, right below the F13 key and above the Delete key!

Eject All of your Removable Mac OS X Disks Quickly!

Are you always using hard disks and USB keys in your Mac? Getting annoyed with having to go to the Finder, scrolling down in the sidebar, and then ejecting these disks before you can unplug all of these devices to move your computer? Or, maybe you just pull out the USB and let Mac OS X complain at you about how the disk was removed without you ejecting it first?

Try using this AppleScript along with a launcher application like QuickSilver to save time and eject all of your disks with one command! A launcher application is basically a quick way to start up applications – you press a keystroke like “Ctrl-Space” and then begin typing, and QuickSilver will find applications that match what you’ve typed. Ejecting disks is quite literally at your fingertips.

  1. Open up the AppleScript Editor (it’s in /Applications/Utilities)
  2. Copy and paste the following code:
    try
      tell application "Finder"
        eject the disks
        display dialog "Successfully ejected disks." buttons {"Close"} default button "Close"
      end tell
    on error
      display dialog "Unable to eject all disks." buttons {"Close"} default button "Close"
    end try

    AppleScript Editor with the Eject All script

    AppleScript Editor with the Eject All script.
  3. Save it into a place you’ll find it later. I used ~/Library/Scripts and called the script “EjectAll.scpt”.
  4. Compile it!

Now, if you double-click on that script, it’ll automatically eject all of your media and give you a dialog box to let you know when it’s finished.

quickSilverCatalogScripts

QuickSilver Catalog Preferences Window

In QuickSilver, I added the ~/Library/Scripts directory to my catalog by opening the QuickSilver Preferences, clicking on Catalog, then going to Scripts in the sidebar. I then ensured that “Scripts (User)” was checked.

Then, you can relaunch QuickSilver, press its hotkey (Ctrl-Space by default), and type “EjectAll” and press enter to run the script. It’ll automatically eject all of your media and then you can pull out all of your plugged-in devices without worry!