Norns (or similar embedded device) with CV control?

Hi, first post! I’ve got a background in writing audio software on computers (I love C and Lua) and I’m trying to get into the magical world of HARDWARE. I found out about the Norns and I was SUPER EXCITED about the idea of being able to write audio code for a small box without having to worry about the OS introducing latency, or without having to worry about my processes wrestling Chrome for the CPU. It’s just what I’ve been looking for.

But… I was also looking at trying to control other devices via CV. I’ve got a “Bastl Kastle” and a MiniBrute 2, and I was planning on getting one of these https://stemtera.com/ . The ability to orchestrate devices like this from a device like the Norns would be great. But the Norns only has 2 ins 2 outs (plus the headphones I guess— are those stereo?) which is not enough to do anything complicated, plus the website says those are line level and I think I need 0-5V.

Are there any solutions here? Could the Norns be modded to have some 5V ins/outs, or are there any Norns alternatives? If I constructed my own Norns-like RasPi setup would it likely be easy to just toss the extra IO in? (I should note at this point I have very limited hardware skills and have no idea how to solder… but part of why I’m looking into diy audio hardware is as a chance to learn)? One thing I’m considering is plugging the Norns into the Stemtera via USB, but getting the Stemtera USB working would be a project by itself, and I don’t know whether I have to think about latency then…

Is this a problem other people have solved before?

2 Likes

There’s various usb midi>cv devices available if midi does not sound like a limitation.
Also, Mannequins will release a norns-specific cv tool calles Craw, which you’ll want to check.

1 Like

You might be interested in Salt.

Also, Orthogonal Devices ER-301 and Percussa SSP will eventually have SDKs. No dates on that though.

But the nice thing about Bela Salt and norns is the fact that they’re running Linux. This is a good thing if you prefer Supercollider or Puredata to DSP programming in C++.

I think Crow (the norns cv extender) is due this fall?

I think we are just seeing the very beginning of the impact of SoC chips on the electronic music instrument world.

3 Likes

Plus a USB-MIDI cable. Sounds like what yr after.

3 Likes

There’s Dodeca or Dubldeca - DIY eurorack MIDI->CV
https://magpie-modular.myshopify.com/products/dodeca

USB midi is supported so it should work ok with Norns.

I’m building a dubldeca (2x dodeca) tomorrow so I can do some testing on this when it get it put together.

FWIW - I believe the approaching norns thread mentions something called Crow which will be a CV add-on for Norns?

2 Likes

And there‘s cvpal from mutable. Small and cheap.

Expert sleepers es-8 might be a possibility too.
But I don’t now if it would work as it is an external soundcard. Don‘t now if the pi can handle two soundcards(the internal from norns and es-8) at the same time

1 Like

I love Bela Salt :slight_smile: its great for C++ , PD or SC.

Ive already got Orac working with it, with CV I/O (and of course midi) , including using a ‘mobile app’ for setting up the patch - this will all be released as Orac 1.1

Ive also been recently playing with it more with Supercollider - its really nice the way you can edit and run sc directly in the bela web browser.

I had thought about using a modified norns for bela, but now im not so sure it adds much…
that said, i think it would be fairly simple to do, and perhaps with my push 2 interface might be kind of interesting.
my doubts are because, crone seems not add much on the SC side, for the additional audio rate io, that are used for CV i/o, which i would obviously not want done in matron/lua)
… and im unsure if this is even applicable to the norns hardware :frowning:

but perhaps its another interesting norns experiment to see where things might possibly go in the mid-term, and how easy it is to take it there… and it would lead me explore crone/sc more, as currently most of my code explorations in norns, have been in the matron area.

2 Likes

This is a problem that’s been solved in a variety of ways, as others have mentioned. Whether those suit your requirements is another thing!

  • there’s a slew of MIDI-CV converters, which obviously have a limited resolution, but do the job of turning 0-127 into a voltage, usually up to about 5V
  • there’s the forthcoming Crow, which will be an I2C CV interface that should connect directly to Norns.
  • there’s Terminal Tedium, which is a Eurorack module for giving a Raspberry Pi CV in and audio out.
  • there’s dedicated boards like Bela, a cape for the BeagleBone Black (so - programmable in a variety of languages). It comes with eight channels of 16-bit analog IO, which is a nice shortcut to lots of CV outputs. If you’re into Eurorack, the Rebel Technology Salt is a Bela-based Eurorack module prebuilt and ready for programming.

But to break the problem down: what all these solutions do is make a voltage from some kind of digital system. Which means a DAC, and DC-coupled outputs. The digital system tells the DAC what voltage to make; the output makes it. The limits on the min/max voltage come down to the operating supply of the DAC, plus any offset/scaling circuitry after it.

If you’re interested, I’d genuinely recommend prodding what a modern powerful microcontroller can do with a small DAC chip. Not an Arduino Uno, those things are ancient; but a 32-bit chip like on a Teensy 3.2 - or the 3.6, with its dual-channel audio DAC built in - are really impressive, have straightforward IDEs and flashing procedures, and if you like C you’re over one of the biggest hurdles for doing things with these systems.

3 Likes

yup a pi/linux is perfectly capable of handling multiple soundcards… (ive done this PD with the Organelle with some ‘limited’ success)
so a dc coupled audio interface (like the ES8) is an interesting option.
has anyone used PD/SC with a dc coupled audio interface? any issues?

i guess this is not a cheap option, but perhaps if you want to also use with your laptop/desktop - its a flexible choice.

2 Likes

I am waiting on a pisound in the post from lithuania :slight_smile:

Also shreeswifty is providing me with an Sd card with pre-loaded apps (Norns excitedly:))

hoping to use these with a shed load of expert sleepers modules (ES3 - ES5 - ES6 - ES7 - ES8XMD)

via a USB streamer and this outputs adat from USB and is amazing with the aforementioned modules

I will try this as soon as the SD Card arrives and can aggregate with the PI Sound I assume?

as soon as these are here I can test

peace
s

2 Likes

https://monome.org/aleph/

There’s a hundred of them out there. One pop up in the trade section occasionally.
(It’s in C)

1 Like

Im intrigued, what current apps are designed to work as cv io?

also id be interested to hear how you plan to use cv?
as input, so modulating ‘patches’ running on pisound?
as output, using pisound as a multifunctional module?

Thanks, this is all very interesting! The Salt looks great, and maybe that’s just my solution-- pity it doesn’t have anything resembling a screen. Actually, the Bela (the thing the Salt is based on) looks FANTASTIC. The ARM-based Teensies seem great and all, but it looks like the Bela has more ADCs/DACs?

A couple of follow up questions, sorry if these are basic–

  • “the Crow [will] be an I2C CV interface that should connect directly to Norns” Super cool. Looking at the announcement post Approaching: norns – is this a eurorack module? Or will it just hook into the Norns? It sort of looks like eurorack and they mention “2HP”. Also, again a basic question, but what kind of programming interface do you use to interact with I2C on embedded Linux? Do you just talk to the bus via a filehandle? Or should I assume that Monome will give some specific Norns-Crow interface that does the I2C talking for you?
  • A couple of people have suggested eurorack modules. I wasn’t specifically planning to put together a eurorack setup-- I was hoping to focus on desktop/easily portable devices like the Norns or the Kastle or a breadboard if it were possible. If I wind up with exactly one eurorack module, how hard is it to just have a eurorack module just sitting on a desktop? It seems like even the standalone power supplies for eurorack gear are kind of expensive ($80 range)?
  • A couple people suggested 0-5V sound cards… what does C/C++ software use to talk to a sound card if it is running on the Norns? I assume I could just use PortAudio? Is there some Linux-native thing which is higher performance?
1 Like

The Dodeca/Dubldeca is essentially an CV I/O board with a teensy under the hood :slight_smile:

2 Likes

See my answer, the OCD is portable.

1 Like

It’s a Eurorack module. It will connect to norns with some kind of cable, and I2C instructions will be carried over that cable. I2C is a very simple wire protocol.
https://learn.sparkfun.com/tutorials/i2c

Yes, it’s difficult to get the price of case/power supply down far enough to make these single-use/non-modular use cases cost effective.

Hmm, TIL the Axoloti has DC-coupled stereo output so could in theory send two CVs… and it’s affordable… but no one seems to be stocking it right now :frowning:

hI technobear

I use CV in via the ES3 to my ES6 & 7 with ableton and CV Toolkit also

I find it very useful for looping sections of recorded CV and I also use them to record audio back into the USB streamer through ADAT.

Received my PIsound last night but haven’t got the SD card yet so need to setup a temporary card tonight

Looking forward to seeing what can be done with this setup

s

1 Like

Yep - Bela is specifically designed for this (it’s come out of a music+technology research programme); it has lots more ADCs/DACs built-in than the Teensys (which are just exposing the ones built into the MCUs), and most importantly they’re higher resolution - sixteen bits rather than twelve. What I can’t remember off the top of my head is the voltage range on them - I’d imagine it’s 0-3.3V, and possibly 0-5V, but no more. As ever: offset/scaling is possible with extra components.

I assume that Monome will give some specific Norns-Crow interface that does the I2C talking for you?

Yeah - given it’s an official solution, and the things we’ve seen about Norns’ design and assumptions I’d imagine there will be a wrapper API inside Norns that means you just write crow-specific commands - I2C is lower level than a lot of the (Lua-side) scripting in Norns exposes.

how hard is it to just have a eurorack module just sitting on a desktop? It seems like even the standalone power supplies for eurorack gear are kind of expensive ($80 range)?

It’s not impossible. There are cheaper PSUs available, that don’t spit out much current, but might be enough. The only reason people leap to Eurorack is that it’s where a lot of the digital->CV work is going on right now owing to the increasing popularity of the format. (Eg: RT just making Salt a product). I think you’re right that it’s probably not worth it for just a CV solution.

Although Bela doesn’t have a screen - it really is just a development board - it’s possible to add one. Because the Beaglebone Black it sits atop is running Linux, you’re effectively just SSHing into it to write or upload code in your format of choice - Puredata is popular, as well as Supercollider or lower-level code. I guess it depends what you want a screen for - as an interface to the finished thing, or a developer tool. The Beaglebone Black almost certainly supports SPI or I2C, making many of the popular OLED screens that firms like Adafruit can sell viable, providing you can just write an interface to them. (Norns uses an I2C screen that it addresses as a Linux screenbuffer, I believe).

Each of the off-the-shelf solutions is taking a different perspective: despite the technologies involved, Norns’ main designed focus is the higher-level end - scripting and interacting with existing engines. Bela is focusing on being a dev board or engine for other instruments, in particular things with low latency and lots of ADC/DAC requirements; PiSound is emphasising the openness/scope of the Raspberry Pi platform; Expert Sleepers are focusing on the Eurorack community; each of them is a different set of assumptions and, of course, compromises. If you’re working on a lower level solution, at some point you probably end up doing more outboard electronics: either to amplify, or scale/offset, or to add controller inputs or, say, DACs to a chip that doesn’t have enough, or enough at high enough resolution.

I’m also aware - though haven’t said it explicitly yet - that when I say “you could just whack an SPI screen on a Bela and some knobs and off you go!” I’m assuming a variety of things around electronic competency and/or enthusiasm - or desires to spend time plumbing rather than programming, or available time, and those are all actually factors that inform decisions, and the compromises we choose to make.

1 Like

The answer is different if we’re talking about Salt, the Eurorack version of Bela, or the simpler SoC board just called Bela.