Install Ardour On RPi + ecasound on the Pi

May I have instructions to follow to install ardour on the Raspberry pi 3. I used sudo apt-get install ardour and this worked. It plays back audio smoothly, however. There is a problem with saving projects in that when I reopen vital features such as tempo are suddenly non responsive?
Perhaps I went about the wrong way to install it?

Many thanks,


There is currently no official support for the RPi.

There are some unsupported beta versions for ARM: (unzip to /opt, start as /opt/Ardour-5.12.0/bin/ardour5) but most ARM machines, incl the RPi, are very limited in their capabilities and not suitable for any serious DAW. Also most ARM systems are not optimized for pro-audio by default. YMMV.

PS. For older RPi systems, Raspian based on debian/oldoldstable (jessie):

I have the file
Ardour_armhf-5.12.0.tar.xz in my downloads file on the RPI
but when I run unzip it says it doesnt recognise the file?

I didn’t mean unzip literally. here it’s be tar xJf Ardour_armhf-5.12.0.tar.xz;

something like

cd /opt
sudo  tar xJf ~/Downloads/Ardour_armhf-5.12.0.tar.xz

You should move the file to the /opt directory (or “folder”) and unpack the archive with:
tar -xf Ardour_armhf-5.12.0.tar.xz
(when you move it to /opt you will need “sudo tar -xf Ardour_armhf-5.12.0.tar.xz” )

I can run Ardour on Raspberry Pi Zero and it works well for simple tasks such as tracking up to 4 channels @48000Hz. I can save and export without problems. I can even overdub and mix with 2 or 3 plugins. I noticed one very important thing: the speed of the SD card is crucial for running Ardour on Raspberry Pi. I have class U3 32Gb SD card (twice as expensive as the Pi Zero).

If you have problems with Ardour on Raspberry Pi you can choose another DAW from raspbian repositories: Qtractor. It is much leaner and uses less RAM and CPU.
I use RPi Zero for tracking only and for that purpose programs like Jack Timemachine or Ecasound do good job.

1 Like

thats great the tempo no longer has issues , thanks alot!

just an added not you mentioned ecasound there ( i don’t come across it being mentioned often) i do have that download and try to use but its hard for me to write music because is organised in seconds. what do YOU do if you need to say start an efect of the 5th beat to the 8 and half beat…work it out manually!?

I am a classical musician and I use Ecasound for tracking only, which means recording live concerts on SD card. It is great application for that purpose because you can write a script and access the Pi remotely via SSH. So when I play my instrument I can have an Android phone (running some SSH client) on my music stand and start, stop or pause recording by simply entering a single letter + pressing Enter on the Android virtual keyboard.

I have never tried to compose music using Ecasound, but I suppose I would use bash script. In the begining I would put some variables, for example BEAT=60/95 (for quarter note = 95bpm) and then put effect time parameters as a mathematical expression (oh , I am not at all good in bash scripting, I hope someone correct me here) … something like
$(( $BEAT*5 ))
-you get time in seconds for the 5th beat.

The name of the person very good in composing with Ecasound is Julien Claassen, here is his paper :

Back in the days of Ardour 2 a lot of us used Qtractor for MIDI sequencing and it worked great. I used to export each individual track as a wav file and then import them in Ardour2 for mixing. Qtractor is still actively developed (by only one man: Rui Nuno Capela) and available and runs smoothly on RPi. ( “sudo apt install qjackctl qtractor” )

1 Like


I would post this as a private message but i don’t think its possible on here and I thought you help with this specific issue. I have asked on other forums and mailing lists but havent yet found a solution:

I’m running the command:

ecasound -i file.wav -o alsa

which plays back a mono file smoothly but panned all the way to the left.

when I run the following the command with the arg -epp to pan the audio:

ecasound -i file.wav -epp:50 -o alsa

it remains on the left and I get popping artefacts. I used other arguments after the .wav file such as ea: 120 and it seems that all create this artefact?

What is this, the Pi sound card acting up?.. what can I do?

Many thanks,


There is nothing wrong with your Pi sound card. You can not pan mono file (per se) in Ecasound, You first need to copy it and only then will the program change volume to the left or right copy to achieve panning effect.
Sounds complicated but it is not at all hard to do: just use -chcopy:1,2 .
So in your case “ecasound -i file.wav -chcopy:1,2 -epp:50 -o alsa”.

You can read more about that in Ecasound User’s Guide:

Note that in this article the old syntax is used: newer versions of Ecasound use -chcopy instead of -erc.

Thank you, that did pan…but still the popping artefacts are occurring.

If I use:

ecasound -i file.wav -o alsa

this will play back fine but simply adding something the likes of

ecasound -i file.wav -ea:120 -o alsa

the artefacts occur again? I can’t figure out why

There can be many reasons for popping. You can try this:

ecasound -B:nonrt -i file.wav -ea:120 -o alsa.

Or it may be digital clipping so you may try to increase volume somewhat less: -ea:110 or -ea:105, or use decibels to increase volume -eadb:3 or -eadb:6 (increase by 3 or 6 db).

Does Ecasound display some kind of error when popping occures?

it wasn’t clipping because using -chcopy the has the same artefact without -ea.

but using -B:nonrt has worked ! which is great…so this flag has changed the buffering mode?

I guess so. It probably introduces greater latency. I know I always use this flag when I want to avoid popping (I guess it is called “buffer underrun”). Alternatively you can run Ecasound as root. It is generally not advised to do so.

1 Like

I have one more thing im curious about that I thought I could thrown in here:

I’m using csound to write audio files that I then mix with ecasound. I want to know more about how ecaound reads the audio files.

What I tried in ecasound was -audioloop so that the same file is read over (simple enough). I’ll then make adjustments to this file and whilst maintaining the same name on the same path for that file and then recompile csound to essentially make a new file. When ecsound “realises” this it has to stop? I then have to exit and reopen ecasound and play the file again.

Is it possible to have ecasound just continue reading the file thats named in the command? what makes stop reading the file, how does to know adjustments are getting made?

I hope this is clear enough of an idea here.

Many many, thanks

Well, you sure can try that approach… My uneducated guess would be it won’t work that way. I don’t know much about how it works, but I guess a file is copied into ram or some kind of buffer before being processed so unless you stop the process there is no way to change the data in the buffer (again I guess the buffer is loaded only once per process/loop/whatever). I may be entirely wrong. Give it a try anyway and see what happens.

My way of doing things quickly in Ecasound is to write a script with some simple name, something like The content of the script is the Ecasound code, you can break lines with \ for qiucker navigation. So you have two windows open: terminal with “bash” for quickly starting and stopping Ecasound and text editor (nano, vim, leafpad,…) with open for editing. While you listen to your mix you can make adjustments in text editor and to check what you have done, just save text file, and in terminal window stop Ecasound ( ^C or q in IAM) hit arrow up to repeat command and hit enter to start Ecasound again.

I’ve just changed the topic’s title to reflect the slight change of subject… carry on.

PS. For general ecasound discussions I recommend you’ll reach more ecasound experts there. (but I don’t mind if you keep going here)

1 Like

I use as similar tech you mention here.

I want to find a way to loop keep looping audio without having to repeat the command to stop the ecasound engine.

Perhaps theres a way to have ecasound reload the buffer before looping?? …I’ll extend this idea to the link you mentioned too. @x42

I just ran a simple test by looping a short .flac file in Ecasound and then renaming the file in the middle of the loop. As I expected the loop continued regardless of file being renamed. So I don’t see a simple way to “hot swap” a file in the buffer. Ecasound has python bindings so maybe some clever programming may do the trick - at least stop and start the loop again at such speed that it makes hard to notice any gap…

Anyway, I would appreciate if you could share URL of the further discussion on I am quite curious about what other members of the community have to say about it.


Absolute shall I just report whats been said as I’ve sent a message to the mailing list, Im not sure if this gets stored in an archive under a url somewhere?