Marc Nostromo

A view askew on music technology

logo

January 13, 2014
by nostromo
0 comments

Telsonic Segment Jam

IMG_0009

Now that I’ve tamed the feedback part on TelsonicSegment, it’s a lot easier to explore its sound space without getting [too] all over the place. Here’s a quick jam done this morning using a simple setup with my RaspPie running Telsonic Segment fed through a DOD 250 clone into a cheap Behringer mixer clone.

Loads of flavors !

distributor-logo-archlinux-1

January 6, 2014
by nostromo
0 comments

Installing ArchLinux on Raspberry Pi for headless audio

Since I’m re-doing a fresh install of a SD card on my Raspberry Pi, I thought I’d document the process as I go, in case it is useful for other people (or for my future reference in the most likely case we’re I’ll screw my current SD). I”ve chosen to use ArchLinux over Raspbian because it boots faster and has a smaller footprint. Since I’m mainly interested in using the Raspberry pi headless – without any screen or keyboard attached – it makes sense to have a reduced system to start with. On my current SD, it takes about 10 seconds to boot into the app of my choice, that’s way better than bringing any of my computer back from sleep and firing the equivalent app.

Important note 1: As always, this is heavily time dependent and I can’t guarantee the exactness of this post at any other future dates.

Important note 2: When you changes files on the Rpi and need to reboot, don’t plug the power out. You have a lot of chances files where not committed to the SD yet and all your edits will be lost

1 – Build a SD card

The steps are explained over here, in the installation tab. It’s the pretty standard “download the image and do a SD card dump” procedure. Under linux, use dd. With Windows, you will need Win32DiskImager. Once the image is done, remove it from you computer, stick it into the Rpi’s SD slot and boot it up. The image is setup to use DHCP, so if you you can simply power the Rpi connected to an ethernet cable and – provided you can find its ip –  you can directly ssh to it. Otherwise, you will need to connect it to a screen and keyboard and login that way. The default username/password of the image is ‘root’ / ‘root’. The default hostname is ‘alarmpi’.

2 – Setup the package manager

Since you will need to install some additional libraries / packages, it’s a good idea to setup archlinux’s package manager, cutely named ‘pacman’. You can find information about the process over here (look for update system). You can update the system too if you want, nothing wrong with getting the latest while we’re setting up.
The steps I’ve followed are:

  1. Create a pacman key:

    # pacman-key –init

  2. Update the system (this will take a while):

    # pacman -Syu

  3. Reboot

    # reboot –reboot

3 – Adding packages

Now you need to find and install packages that are missing. You can look for packages through keywords using

# pacman -Ss keyword

And install them using

# pacman -S keyword

In my case I ended needing was sdl, alsa and jack:

# pacman -S sdl
# pacman -S alsa-utils
# pacman -S jack

4 – Testing usb midi/audio

In theory, you don’t really need to execute this step (since everything should work smoothly) but I always like to double check things:

Connect a USB audio device then type

# aplay -l

You should see an entry both for the internal audio device (bcm2835) and USB audio.

card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 2: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

Then plug in a MIDI device and see if alsa recognises it:

#  aconnect -o

client 14: ‘Midi Through’ [type=kernel]
0 ‘Midi Through Port-0′
client 20: ‘Launchpad’ [type=kernel]
0 ‘Launchpad MIDI 1′

5 – Removing the default pi audio output

Since the built-in audio out of the raspberry pi is only good for deaf people, it makes sense to remove it. Raspbian has a sysem that makes any usb audio the default one but arch linux doesn’t. Since we want it to work with anything we would plug into it, we’ll just get rid of the bcm2835 so it doesn’t get in our way. To do so, edit the file /etc/modules-load.d/raspberrypi.conf and remove / comment the bcm2835 related modules (bcm2708-rng, snd-bcm2835)

6 – Autobooting

If we want to use our raspberry pi as a headless sound device, it’d be nice to get it to start some programs automatically at boot time. So far, the easiest way I’ve found is to use crontab.

Crontab has a special syntax that allow some command to be executed at boot time. So we’ll create a shell script in our root folder and get cron to execute it everytime we restart the Rpi. If we want to change the start sequence later, we simply need to update the shell script.

Start by editing root’s crontab:

# crontab -e

And add the following line:

@reboot /root/autostart.sh > /root/autostart.log 2>&1

which tells to execute a shell script – autostart.sh – located in the root home and to log all output from it into autostart.log

Now go in the root folder (cd /root) and create autostart.sh containing, for example, the following:

echo “hello world”
exit 0

Make sure the autostart.sh is executable by

# chmod a+x autostart.sh

And reboot the rpi:

# reboot –reboot

When you reconnect to the Rpi, the root folder should now have a file autostart.log containing

hello world

Bingo ! Now we can start any favorite program to start at boot time !

1378871_458923477556721_1640165916_n

October 18, 2013
by nostromo
13 Comments

Casio LaunchPie

Lately I’ve been interested in combining a standalone synth running on the Raspberry Pi with a Launchapad setup in ‘grid scale’ mode – like push does – to have a small standalone synth I could quickly power to practice scales or play along tracks without the need of a dedicated computer setup.

Here’s a first step showing the Rpi booting and activating the launchpad. It doesn’t sound great right now but is a good enough proof of concept to pursue the effort.

 

July 1, 2013
by nostromo
0 comments

Splitting voices

Since the Nostromotron has two oscillators, it’s always been tempting for me to get them to work not only as a conventional monophonic bloc but also to somehow be able to control them independently. I remember a friend telling me a while ago how the Arp Oddissey behaved differently when you triggered one or two notes and I’ve always been fascinated by this idea.

So this week-end, I’ve added a Keyboard trigger mode (labeled key mode here under).

Screen shot 2013-07-01 at 09.19.40

When panned hard left, the monotron behaves like a standard monophonic unit and both oscillator follow the same pitch tracking. However, when panned hard right, the synth goes in “splitter” mode:

  • If you play a single note, both oscillator will play that pitch
  • If you play more than a note, they will ‘split’ and play different pitches (at the moment, the analog oscillator tracks the high voice and the digitial one the low one)
  • If you release the extra notes and go back to playing a single note, they will again play the same pitch.

If the glide/portamento is on, the splitting happens using this setting too, leading to fairely interesting sonic results.

Here’s a quick demo. Beside the drums, there’s a single synth playing, no overdubs:

June 2, 2013
by nostromo
4 Comments

Nostromotron vanity shots

As of now, I’m close enough to feature completion to know nothing will change anymore with the electronic part. Not much changed since my original post about MIDIfying the monotron ; the only addition was to connect the 5v source of the teensy to the VCC pin of the monotron so the whole thing can be solely powered from a single USB power.

So, rather than having to deal with carrying a break-out-box, I wanted to make it a practical sandwiched unit that would be small and compact.

With that in mind, I made a second copy of the control board that would fit the size of the monotron board (once pulled out of the box) and assemble them using the battery connectors I didn’t need anymore.

The result is an extremely compact unit that only misses a nice faceplate. Here’s a couple of shots.

Size wise, next to another great synth

IMG_0012

 

The two boards stacked on top of each other. You can see the teensy on the right side and the dac in the middle

IMG_0014

 

 

April 24, 2013
by nostromo
0 comments

Some more monotron examples

Screen shot 2013-04-24 at 09.55.31

I’ve been upgrading my monotron upgrade slowly and it’s getting to a nice place.

So far it’s got:

  • One additional Digital oscillator with several waves and some dirty aliasing tricks
  • Digital oscillator octave setting (with respect to the analog one)
  • Control over whether the analog oscillator gets trigger or not
  • One envelope with A/D/S/R
  • Envelope -> VCF mode
  • Envelope -> Digital oscillator mod through a “gater” transformation ( a lot like what the anushri proposes)

I still have to provide some functionality with respect to tuning (fine tune / pitch bend / portamento), VCF key tracking and possibly a noise oscillator and it’s going to be a wrap !

Here’s some more demos in the mean time:

 

March 31, 2013
by nostromo
7 Comments

Adding extra oscillators to the Monotron

64377_366418110140592_1180467240_n-1In my previous post, I’ve explained how to add midi control to the monotron’s pitch, gate and frequency cut-off using a Teensy chip.

The good news is that the Teensy’s got plenty of raw power left leaving room for extra processing.

My first upgrade plan was to add an extra oscillator, generated by the Teensy, that would then be fet inside the monotron through its auxiliary port.

Since the Teensy is already the master controller for the monotron, the extra oscillator could easily be synchronised from the same midi control. I had an extra DAC output ready to generate a 12-bit signal out of it, it was time to try it out.

The aux input from the monotron is an interesting beast. It’s worthwhile to feed it with different signal at different gains and look at what happens.

Depending on how hard you drive it, two things are going to happen: first it overdrives naturally, which shapes whatever you put through it but, also, it will ‘choke’ the resonance of the filter making it nearly non-existing. You can think of it as the input signal taking all the headroom of the audio path, leaving no room for the resonance to move freely and add its own bite. The first one is highly desirable while overdoing the second one isn’t. I found in the end that using a 33k resistor gave me a good balance between overdrive and resonance choke.

From then on, it was just a matter of programming. I lifted my dirty digital oscillators from the old arduino piano squealer (thank got for gcc-based embedded and c++) and wired the midi control so that the oscillators from the teensy and the monotron’s internal one followed the same gate and pitch.

Here’s a quick take on how it sounds:

Next: Envelope and more oscillator controls !