Bela and PI3


#21

Sounds great :slight_smile: You have a picture of your little gem you want to share ?


#22

PI3 to the right (its on the back of the display) ... the pisound has not been delivered yet (this month?)
Bela with the OLED (same as organelle one, 128x64) , with my cardboard box enclosure :slight_smile:

(I'll probably make some wooden enclosures for both once things have progressed a bit... I made the mistake before with axo of building the enclosure too early)

ah, that 4ms sounds like output, usually its quoted as roundtrip i.e. input to output (so 8ms)
id assume from that they are using a 128 sample buffer , which is very respectable.

the pisound is going to be very similar
https://www.indiegogo.com/projects/pisound-audio-midi-interface-for-raspberry-pi/x/8136145#/
they are quoting 2ms , using 192khz sample rate @128 samples, but id suspect thats going to have to be dropped down to 48khz for something like PD to keep up. so we are be back in the 3ms one way, 6ms roundtrip , same ballpark really.

but no match for bela <1ms roundtrip, and can go as low as a buffer size of 2 samples(!) , i think axoloti is also about 1ms roundtrip iirc.

again, all depends on your need, for many things 10ms is fine (sound travels pretty slowly thru air :)).

where its more critical is when you have controllers connected, and then you need the feedback, you dont want to have it feel laggy, then <5ms is probably a good goal... and of course more important is NO jitter! this is where it being real time like bela/axo really pays off... its not so much the actual time lag, its more the 'feel' you get - and you dont want those all too familiar 'computer cpu spikes'... its kind of why often hardware feels more immediate than your pc/mac.


#23

well, 10ms is not acceptable at all for my needs, bela looks more intriguing every minute :slight_smile:
here is the link i promised you for pd-daw integration:


#24

as i said, depends on use... if your not in the feedback loops it might be ok
imagine using it as a fx (say reverb) , before going to your speakers - 10ms, is about the same as being 3m from your speakers. even as an instrument, guitar players are often further from the amp than that... and can compensate :slight_smile:

but yes, that was my original point... bela/axo are designed to build instruments from so low latency is a very important part of their design.

btw: @jaffasplaffa watch out if your start looking at pi sound cards or using usb ones.. often they are designed to turn the PI into a music playing device, which is a very popular thing for the PI , rather than a music making device... obviously as an mp3 player , latency is not important at all.


#25

Thanks @thetechnobear Good to get some insigths on good/bad before starting. All though the link to the orange box I posted above, uses a behringer audio interface with pure data. But I am not sure what to do with drivers and stuff like that, since it is a different OS than windows and OSX. Never really tried anything else.

And in a Facebook group we talked about this yesterday. And there ways also a guy who says he uses a Scarlett 2X2. Only thing he said was a problem, was that it was not as portable when using an audiointerface than just using a dedicated pi hat.

What about midi i/o? Have you thought about that? Using an audio interface that also has midi might make everything much easier. But i dunno.

I am aiming for something a bit like the Organelle. Doesnt have to be battery driven, so that should make it easier for me :slight_smile: And obviously not too much latency would be nice. If the latency can be as small as Organelle's, I am pretty sure I can live with it.

But after I read what you guys mention about latency and pi3, bela also sounds nice. But price.. wouah...


#26

its probably worth noting @jaffasplaffa that the guy with the pi looper box is using a teensy to do the screen/pots control... the later is because the PI does not have any analog inputs. so you need to use some kind of adc (lots of options) which complicates things a little bit, as you now need to run software to communicate the data between the teensy and PI. ( he mentioned using serial, so id assume i2c?)
( it does also mean it offloads a lot of IO to the teensy, so helps the PI focus on sound/sampling rather than blocking on io).

this is where Axoloti/Bela gain... as both have analog inputs (and outputs), bela even has a 'multiplexing board' which allows you have to 64 analog inputs (£45)!
also the bela doesn't need an extra soundcard (or you can think of as a soundcard)...

as you say not cheap, but its BBB+bela= £140 vs PI3 (£30) + Soundcard (£50?)+ teensy (£20) , say £100? so its only about 50% more, and is as discussed, a bit more dedicated to the job, and much easier to just connect things to.

BUT... it depends, if you wanna run Linux/PI apps out of the box, then a PI3 is the better option.

anyway, if you have a usb audio interface that will work with a PI3, id say give it a go, its going to only cost you around £30 for a PI3 to see if it does what you want. the usb interface will introduce more latency, but its worth a go, perhaps its good enough.


#27

Yeah, I see the price is not even that much more for the bela actually. And if it performs at lower latency that would be great. I see this kit her:

I guess this would eliminate all the worries about driver and so on. How hard was it installing pd on the bela? You also has midi on it? Can you also edit the patches directly on the bela? Was just reading this:

But maybe there are more ways of running PD on it, I dunno :thinking:

Argh too much worrying :robot:


#28

actually this is a point I meant to bring up, a couple of times, and then forgot about...

you cannot connect a display (hdmi) directly to Bela!

this means that development for it, is similar (not the same) as Axoloti, than you connect a computer to bela and usually then talk to it via its IDE (thru a web browser).
how exactly this works depends upon how you want to set things...
e.g. C++/Supercollider you can type code into the IDE and run directly, with PD you can drag n drop PD patches on to the IDE , and then run them

but you can also change this workflow if a bit, e.g. by doing a kind of file syncing between your computer and bela, and then get bela to compile/run when it sees the files change.

this is obviously rather different to running PD on a PI using an hdmi display ...
(but you'll note organelle only gets its 4ms latency if its run without the PD display too)

for me this is all ok, I prefer to develop things on my laptop anyway due to better screen/keyboard etc, and upload the patch to bela - this fits with my 'building an instrument' model I have, i.e. I develop the patch then Bela/Axoloti runs without anything else connected to it... I'm not really interested in live patching that much....

if you want an entirely self contained, patch creation, then the PI is a better option.
(hmm, I could connect my PI to the bela I suppose :wink:)


#29

Yeah good to know these things before making a choice. Cause I kind of wanted to get an all in one box, where I can make everything on the device itself, to off load my Macbooks limited screen space. It is all ready occupied by 2 X Axoloti editor and a Nord g2 editor, so........ Need to get that screen off loaded a bit.

Seems like there will be some compromises whatever you choose:

Bela - no display support but good low latency audio
PI 3 - Yes display, but higher latency

About the 4ms. for Organelle without display connected:
Is that same scenario for the Pi 3, that it will run 4ms latency with no display connected, only running the patch?


#30

This thread in the PD group on Facebook, there is also a discussion going on about Pi3 & Bela and PD:

(I think you need to be part of the group to view the post)


#31

sure i can see it... though not much going on :wink:

Id think 4ms would be the best one way latency (not roundtrip) your going to see, with no gui and a fast soundcard (most likely directly connected via a spi, not usb)

using pd-gui and/or usb soundcard is going to increase the latency.

Ive seen all sort of quotes on latency on PIs everything from 5ms to 20ms, so very much depends on your setup, hardware and software.
until i actually test the pisound (when it arrives), i dont even trust their numbers.. and I'll be interested to see what i can get in 'real world' practice.

(bela and axoloti are both tested/proven numbers)


#32

If you wouldn't mind me asking @thetechnobear, since above talks a little about the Bela, I see with the extra addon cape, you can get a total of 6 input + 6 outputs, if this was used as a platform to build a matrix mixer, instead of using pots in a manual setup, could Midi from the Axo control this through code on the Bela ? So a parameter (or even an LFO etc) on the Axo connected to midi out, would adjust the levels on the Bela. I have read a bit on the Bela, but can't quite visualize the flexibility of the code and its midi capabilities. Apologies in advance if this is a little off topic.
:grin:


#33

once you use the audio expander, you basically get either 6 (SR 44.1khz) or 10 (2 44.1 8x 22kHz) audio IO. the additional ins/outs appear just like the main ones, so in Pure Data (for example), they are adc~ (1-6)/ dac~ (1-6) ... just like you get from a soundcard on mac/pc.

so yes, from here its trival to write a patch in pd/sc/c++ that would mix the 6 inputs, and send to the 6 outputs. (just like Axoloti, you can multiply the audio signal to reduce it, then add together)
And yes this could be controlled from midi

actually, ive been asking questions around this on the bela.io forum recently, since I had a similar idea... basically having 6 inputs, being fed into some dsp processes for fx, then routing those in mixed forms to the 6 output... so I kind of matrix mixer 'with dsp' :slight_smile:

anyway, you'll see those questions have highlighted some interesting nuances coming up :slight_smile:

there we have been discussing the SR criteria, and what drives this... its basically the PRU code. which the devs are now working on to be a bit more flexible. the next version will allow you to have 10 44.1khz inputs, but with no additional outputs (i.e. you just have the 2 mains outputs)

note: the audio expander uses the analog io for the audio io, so you 'lose' the analog ins/outs, again see my recent posts for some details on this :slight_smile:


#34

Muahahaaaaa :slight_smile:

Got my PI3 Yesterday and got it installed today and everything works straight out of the box, USB keyboard, mouse, wifi and what have we. All I have teste by now works.

Now next is installing PD on it :wink:

Got my eyes on PD L2Ork version. From what I understand that version is the version that supports most externals on PI. So this is what I am going for.

Will be updated.....

Update 1:
Sound also working now.


#35

Hey @thetechnobear

I got the first few steps working in my PI build and now I'd like to install PD.

I am curious about which OS you installed and which version of PD you are running?

I got Jessie installed and working, as described above. But not sure which road to go from here in the PD. I looked at the L2Ork installer. Going to try it tomorrow.

But also curious about what you used.

Jaffa


#36

ohh, ive had various distros running ... recently been ubuntu/jessie, but also ubuntuMate

however at the moment I'm running Raspbian, this is because Im developing something, and Raspbian is kind of the 'go to' for most PI users, so its important it works there.

PD, vanilla 0.47.6, I think... though to be honest, I'm waiting for the PiSound hat before doing much more on it...
partly as that comes with a bunch of stuff, which id like to try out...
e.g. MODEP https://blokas.io/pisound/docs/MODEP/

I probably would install L2Ork, if I start using PD more...


#37

Yes L2Ork seems good and was suggested to me by a guy who did an install yesterday. But I need fresh mind, so I wait for tomorrow doing the L2Ork install.

Did you follow any instructions for the vanilla install? I dont see any reason to why not have both :wink:

Thanks


#38

Update 2:
Also got PD-L2Ork installed and working now. But seems a bit sluggish, the audio. But was kind of expected for now. And tried to open a semi big patch and that didnt work. But I guess I need to mess a round and see what is there. There are lots of externals :slight_smile:

But anyway, any one has any tips for better audio performance from the PI3's own audio interface? Are there other driver I can install? RIght now for example loading the free verb example kind of sounds glitchy.

RIght now I have done this to get audio:
I opened the config.txt on my Macbook and added:
audio pwm mode =2
.......to the config.txt and saved it.

The I went to to PI3's own config menu by:
sudo raspi-config

and then in the Pi config menu go to > advanced options > audio >
and set it to 1 to get audio through the jack output.

That works, but not that well. I think the driver is called "bcm2835 ALSA"

I am getting a USB audio interface later on, so this is just temporary.

@thetechnobear what are you using as audio driver?


#39

Nope, I've used a hifiberry on a pi2 but not for music stuff. For the PI3 I'm waiting for the pisound

I think poor performance is expected with the built in audio.


#40

Yes was kind of expecting it until I got another audio intertace.

Anyway, got my Novation Lanch controller working via USB midi now. I can see the midi messages in PD when dialing on the Launch. Great. And also got the graphics tuned a bit. So everything seems to sum up, just need the most important the audio interface fixed.