Make multisamples on your iPad with SynthJacker


Picture this: a friend of yours has bought a nice vintage synth with great sounds, and wouldn’t you like to use those sounds in your own music-making? If only you could sample those sounds, but it seems like too much trouble… You would need to persuade your friend to let you borrow the synth, or you would need to visit them with your music-making setup, which nowadays is basically an iPad and an iOS-compatible audio interface.

Turns out that iPad and audio interface are just what you need for making multisamples of any MIDI-compatible synth, with very little effort. You only need to:

  • Find a cool sound you want to sample on the synth
  • Connect the synth to your audio interface
  • Connect your audio interface to your iPad
  • Start SynthJacker, select the notes and velocities you want to sample, and tap the Record button

SynthJacker plays the notes you selected, at the velocities you selected, through the audio interface and captures the result in real-time. But that is just the beginning: it then goes away and slices the audio into individual audio files, one for each note/velocity combination, and saves them on your iPad. When you switch to the iOS Files application, they are there, just waiting to be imported to a sampler or DAW of your choice.

Watch the SynthJacker demo video on YouTube  – it shows the app in action, and details the synth connections you need.

SynthJacker works on the iPad and on the iPhone, and requires an iOS-compatible audio interface (I use the Steinberg UR22mkII).

Why SynthJacker?

I developed SynthJacker for iPad and iPhone as a way to easily create a set of multisamples from my trusty old Kawai K4 and K5000S synths, but also the much newer KORG minilogue and IK Multimedia UNO Synth. With these, I have no shortage of great sounds on the iPad. Any synth you can get access to can be sampled in just a few minutes.

If you have a monophonic synth like the UNO, you can make it polyphonic (well, not actually) by sampling its sounds and using them in a DAW.

If you have a Mac, you can get Apple’s MainStage from the Mac App Store and use it to create sampler instrument in EXS format. However, it requires a Mac, and it can be difficult to retrieve the individual samples if you want to use them with other virtual instruments than Apple’s own EXS24mkII.

Coming soon: Inter-App Audio

The first version of SynthJacker is intended for hardware MIDI synths, but I’m also looking to add Inter-App Audio and/or Audiobus, and possibly also Audio Unit v3 support. This would allow you to sample the iOS synths on your iPad, which has been requested by many.

Let me know what you need from SynthJacker, and I’ll see if it can be supported. Many early adopters have already sent great development ideas, so please keep them coming.

Enjoy multisampling with SynthJacker!

Time signals with the Raspberry Pi

Time signals have been broadcast by various radio stations for almost 100 years, usually “every hour, on the hour”, or every 60 minutes. The tradition was started by the BBC, but has been adopted by many national broadcasting companies and other broadcasters as a way of informing their listeners about the passing of time. The history of the Greenwich time signal, or “the BBC pips” is detailed in Mike Todd’s article.

This article gives you details on how to generate your own time signals using the Raspberry Pi. It assumes you have a RasPi up and running. It doesn’t really matter which hardware version, as this method should work on all of them (but do let me know if there are limitations – I’ve tested this on Raspberry Pi 3 Model B).

Originally I got the idea of replicating the broadcaster’s time signal from an article about the Finnish Broadcasting Company YLE’s version. Only later I realised that the Finnish version has been adopted straight from the original BBC time signal. If you’re Finnish, you should read the article “Yleisradion aikamerkki on radioklassikko” about the origins of the Finnish tradition.

First, install SoX

SoX, or Sound eXchange, is the Swiss Army knife of audio manipulation in UNIX-like environments. You should install SoX on your Raspberry Pi by issuing the command

sudo apt-get install sox

This command installs the basic commands used in this article. Wait until the command is finished, and then read the manual page with the command man sox.

Most of this will work as is on macOS, so if you’re on the Mac, use Homebrew to install SoX.

Shell script to signal time

Using SoX, it is trivial to generate the basic ingredients of the the time signal. From sources we know that it consists of five short 0.1 second beeps, interspersed with 0.9 seconds of silence (so that each pip lasts for exactly one second), followed by a final beep of 0.5 seconds. Each beep is a sine tone with a frequency of 1000 Hz.

A tone like this can be generated and played using the SoX play command:

play -n synth 0.1 sin 1000

The use of a ‘null file’ with the -n parameter is sort of implicitly documented, but once you know that the name ‘synth’ generates audio, you can find the parameters easily in the man page. And, as you would expect, the synthesiser can do a lot more than generate sine wave beeps.

Using the play command and the UNIX sleep command together makes it trivial to write a small shell script to replicate the whole time signal. Open a programming editor and save the following as ‘’:


# file:

play -n synth 0.1 sin 1000

sleep 0.9

play -n synth 0.1 sin 1000

sleep 0.9

play -n synth 0.1 sin 1000

sleep 0.9

play -n synth 0.1 sin 1000

sleep 0.9

play -n synth 0.1 sin 1000

sleep 0.9

play -n synth 0.5 sin 1000

Now you can run this in your terminal with the command:


Or, you can give it executable rights with:

chmod u+x

And run it with just:


If you have connected the audio output of your Raspberry Pi to a speaker, you should hear the time signal beeps. I’m using a Tivoli Audio PAL with the RasPi connected to its AUX IN with a standard audio cable. I also selected Audio from the Raspberry Pi graphical user interface. You should also be able to get HDMI audio; refer to the Raspberry Pi audio configuration page for details.

Timing the time signal

You could use the at command on the Raspberry Pi to run a command (like a shell script), but that would run it only once. We need a way to run the script repeatedly.

In UNIX-like environments you can schedule a command using cron. It is not a command, but a system daemon that consults its own table called crontab to determine what commands to run and how frequently. For a basic overview, read Scheduling tasks with cron on the Raspberry Pi website.

Note that cron works on a per-user basis, so be sure to edit the right user’s crontab file. Typically, when you’re logged in and you want to edit your own crontab entries, you just say

crontab -e

If and when you are prompted to select and editor, I recommend that you select nano. If you’ve never used nano before, you only really need to know two commands for now, Ctrl + O to save the file, and Ctrl + X to exit (both are shown for you at the bottom of the screen).

After you have edited the crontab file, you can check your scheduled jobs with crontab -l; effectively it just dumps your crontab file on the screen.

When I was testing this solution, I didn’t want to wait for an hour to find out if my crontab entry worked, so I used the “every minute” option. My crontab entry thus looks like this:

* * * * * ~/Projects/TimeSignal/

To actually run hourly, use 0 for the minutes. Also, if you want to restrict the time signal to office hours (say from 8 a.m. to 4 p.m.), specify the hours also, like this:

0 8-16 * * * ~/Projects/TimeSignal/

Consult the cron manual page (with the command man cron) for more details, and use the cron sandbox to test your entries.

There is one problem, though: cron does not deal in seconds, but the time signal should be started six seconds before the hour. Currently I don’t have a solution to this, but if you do come up with one, let me know.


When I started to write this post, I realised it has been a year since the last one. Wow. Let this topic be a signal to mark the occasion. Note to self: must blog more often.

Also, coincidentally, yesterday was Pi Day (because in some cultures the date is expressed as 3.14 or 3/14, which is a poor substitute for the estimated value of pi, but I digress). Besides, Stephen Hawking passed away yesterday. May he rest in peace.