Category Archives: Configuration

Upgrading to the LTS version of Ubuntu

Update 10/2019

One of the differences between Ubuntu and Ubuntu-Studio is that Ubuntu-Studio uses the Linux low latency kernel.  Now that the Linux Kernel has been modified so that the generic version has nearly the same performance as the low latency version, there is little to be gained by using the low latency version, especially since there appears to be some incompatibility of some applications and drivers with the low latency kernel.

Ubuntu-Studio is based upon the XFCE desktop, which is much more lightweight than the the ponderous old Ubuntu Unity interface. Ubuntu desktop uses Gnome 3, which is a mainstream desktop, lighter than Unity.  If you are in a resource limited environment, this may be important.  For normal audio work, it seems like a stripped down Ubuntu Desktop is the way to go.

Ubuntu-Studio is packed with many applications and utilities to facilitate graphics, video, publishing and other artistic pursuits beyond audio.  If you don’t need this, the advantage of the bundle is reduced.

For these reasons, I am now working on regular Ubuntu 18.04.3 as the base for the systems.

Rivendell is so tied into the libraries for Centos that is extremely difficult to get working and subject to bugs in Ubuntu.  I intend to run a Centos7 virtual KVM machine to implement Rivendell in a Centos 7 guest with Ubuntu as the host.

—————————

Ubuntu, has a versioning release system that accommodates both bleeding edge users and users that are seeking stability.  Ubuntu-Studio follows this scheme.  In the audio production field you want things that keep working for years.  The Long Term Support (LTS) release versions are the versions to use.

The various releases are kept track of by a Major release number – the latest being 18, a minor release number, and a point release number in the format:  18.04.3  LTS (See Below)  The major releases have a code name, 18. is Bionic Beaver, often just referred to Bionic.

There are generally substantial changes between major releases.  All the new stuff gets beta tested and tossed out into the world.  A release like 16.01.0 will likely have some hiccups because there are many things that have changed, and the changes do not always play nice with each other.

Because users who have production systems cannot track the “latest and greatest”, Ubuntu has established a “Long Term Release” based upon even major release numbers.  Major release 18 contains a Long Term Release.  Because the first several point releases are cleaning up incompatibilities, bugs and mistakes, it would be inadvisable to make an early major release with a low point release the LTS.  The Ubuntu folks have figured that by the fourth point release the new version has settled down enough to be stable.  So version 18.04  (and every .04 release of an even numbered major release will become an LTS)  To see the support status of the Ubuntu-Studio operating system and applications simply enter
$ ubuntu-support-status at the comand line.  The end of life status for Ubuntu releases determines when they no longer get updates.

When Ubuntu and Ubuntu-Studio 18.04 (without the.1) was released, it was very cool, but as all sofware, it still had bugs that had not been found or completely squashed.  It may not have had the user interface completely resolved.  Only when  Ubuntu 18.04.1 came out does it become the LTS edition – Ubuntu 18.04.1 LTS.   Updates to this version are intended to be focused on bug fixes, substantial performance improvements, etc.  There are rarely new applications or significant changes to the way it operates updated.  LTS versions are supported for five years, and other versions for only nine months.

LTS releases are what you build production machines from.  You want to turn off  automatic updates because you really don’t want to come in in the morning to find your workstation no longer works with the program you need to use because it was “updated” overnight. To update an LTS release, simply issue $ sudo apt-get update && sudo apt-get upgrade.

There are two other versions of “apt-get upgrade“,  the “dist-upgrade”, which is pretty safe in that it tries to upgrade every package in the package list, but will avoid any upgrades which require deleting a library or other possible dependency for another program.  There is also “full upgrade” which takes a more aggressive stance, and updates as many packages as possible without breaking dependencies.  In a production machine, I recommend only doing upgrades when you are physically at the machine where you can reboot it or fix whatever might stop working.

As I mentioned before, an LTS release will not get any new packages, but will upgrade all those that have been installed.  There is one notable exception.  This exception is “backports”.  Backports come in at least two groups.  Ubuntu backports are pretty well tested and you might consider using them to fix a broken or buggy driver, or to get something you really need working better.  By enabling the Ubuntu Backports repository (enabled by default) and installing from there opens you to some risk in a production environment, but it will probably work.

There are also manual backports where you build a package from a later edition of Ubuntu Studio to get some additional functionality.  Manual backports are for the daring and not for a production environment.

There are many different use conditions for Ubuntu, so you should plan carefully to determine what upgrade strategy to follow.  Do you want an appliance that will keep doing the same thing, year after year?  Is it your toolbox that needs to keep sharp?  It is a machine that lives on the internet and needs the latest security patches?  Is it on a closed network that is pretty safe from intrusion.  (Don’t forget flash drives, at my station we had a virus travel through several unconnected machines by the flashdrives in our “sneaker net”)

For anything you do with Rivendell, it is essential that you maintain a stable working environment.  Starting with a Ubuntu-Studio LTS distribution is an important place to start.  Locking down the upgrade process is one way to do that.  Opening it up only when prepared for a failure is a good strategy.  You really don’t want to have Rivendell go down without a plan to stay on the air.  Working out a plan to include security updates on a regular basis is also important.


Jack2 Audio Connection Kit

Jack2 is the connector for audio within and between computers.  It connects your audio soundcard to the guts of your computer using a simple to visualize jackfield, where you connect audio paths from one output to any number of inputs.  You can also connect several computers’ audio together over ethernet!  It is available for Linux (Ubuntu Studio), MacOS, and Windows!  It does not know multi-channel audio natively, so you have to hook up the left and the right ‘cables’ independently.

Jack Logo

 

 

My first exposure to Jack was back in Ubuntu 10.04 where I installed it manually in a system that had ALSA (Advanced Linux Sound Architecture) and an early version of Pulseaudio  installed.  It drove me crazy, no audio or audio that had dropouts.  Dozens of settings poorly documented.  AARRRRGH!

9/2019  Update:    Ubuntu 18.04 runs jacks quite nicely without problem when set up by KXStudio   (See Article)

No longer! Ubuntu Studio comes with Jack2 already installed so all that grief is mostly behind you.  Many web sources tell you to get rid of Pulseaudio, but the case is not so compelling as it once was, but if low latency or several sound cards are in your plan, dump it.  Check out my article “Use Pulseaudio with Jack Audio Connection Kit?”

You should have your final soundcard(s) installed when you install Ubuntu-Studio so that it can pick up the cards automatically.  Jack comes with a little utility called qjackctl that lets you set all the necessary configuration that lets you correct much of what might not work right away.  KXStudio cadence application (See below) is much prettier, and shows status in a much more easy to understand way and hooks up plugins and other features that I didn’t figure out Cadence’s tools are more robust than qjackctl, although it has no internal provision for saving patches in a patchbay.   No audio can usually be fixed with a command line utility called alsamixer because some sound card drivers set the volume to “0” not “11”.

There are packages from a site called KXStudio that make using Jack2 on Linux beautiful.  If you dive into KXStudio, you will not need  most of the Jack2 utilities like Patchage, qjackctl, etc.  I will have a script on this site soon that automates installing all these Uber Cool features.

Once you can hook up an audio editor like Audacity to the audio outputs and connect a parametric equalizer to the microphone inputs and the equalizer to Audacity inputs, along a  Jack meterbridge or spectrum analyzer you can see the power of this system. Jack can hook up Lapsda and .vst plugins for a multitude of effects.

 

NetJack is a way to hook up several computers’ audio  together via ethernet with one master computer connecting to another, or several others.  This can work over a typical quiet office network, but the NetJack audio should be on its own network with no competing uses of the bandwidth.  If there is too much audio flying around even a 1 GB network can get overloaded.

There are more convenient and higher fidelity options than NetJack, Such as Zita-NJBridge  the included zita-j2n and zita-n2j open audio ports to other jack instances on other networked computers.

So, the possibility of shipping audio around between workstations and a server is pretty easy, getting rid of lots of conventional cabling, and removing hundreds or thousands of places where the audio can get degraded.

One of the trickiest parts of Jack2 is making persistent setups and patchbay configurations that can automatically re-appear upon reboot or relogin, and understanding the relationships between applications started by different users and different sessions.  There is no standard command line tags for jack naming, and automatic jack connecting.  Auto-connecting a program’s output generally takes the form of

-<port tag>  Jack_Device_name:Jack_port_name

On some programs the Jack_Port_Name can be a regex, sometimes a complete name, or sometimes a port name less the variable part.  You have to play with the program to figure it out.

 


IP Addresses for LANs

There are currently two systems for IP addressing – IP version 4 and IP version 6.  Version 6 is important because the world is running out of IP version 4 addresses, as there are only a little more than 4.23 trillion addresses, and we have used most of them up. We are going to concern ourselves in this article with v4 because on a Local Area Network (LAN) there is a neat scheme called Network Address Translation (NAT) that lets us re-use some IPv4  addresses in different local networks, and because IPv4 is much simpler.

IP v4 addresses consist of four, (up to) three digit numbers separated by periods or “tacks” – nnn.nnn.nnn.nnn – where each nnn can be a number between 0 and 255 (that is as much as 8 bits can hold).  192.168.20.3 is an example of a IP v4 address, while 320.168.20.3 would not.  Since a network consists of a number of computers, printers, set top boxes, internet radios, etc. we need to define what IPv4 addresses (numbers) are in your piece of the network called a “subnet”.  This can be done by a construct called a netmask.

An example of a subnet designation would be 192.168.20.0\24 (8 bits x 3 =24 bits) or 192.168.20.0 netmask 255.255.255.0 (another way of saying 24 bits) which says that the last number in the address of a device can be anything from 1 to 254 (0 and 255 are for special purposes)and it is in the subnet.  This particular example is a “Class C” network with 254 addresses available for assignment.  A netmask of 255.255.255.254 would only include two addresses

There are several sets of network addresses that are set aside for LANs as they have been made “non-routable” and cannot be routed over the internet. Any of these can be used for LAN addressing behind a home or office router.

They make up a subnet that can consist of :

  • 192.168.0.0 – 192.168.255.255    – 255 contiguous Class C networks using 192.268.nnn.000 netmask 255.255.255.0 This can also be referred to as 192.168.X.0/24  meaning that the netmask is 24 bits and X is assignable to the network.
  • 10.0.0.0 – 10.255.255.255.255    – One Class A network using 10.0.0.0 netmask 255.0.0.0  or 10.0.0.0/8
  • 172.16.0.0 – 172.31.255.255         – 16 contiguous Class B network using 172.16.0.0 netmask 255.255.0.0  or 172.16.0.0/16 – 172.31.0.0\16

There are other addresses that are also not routed, but they should never be used on a local network either

  • 192.0.2.0/24                    – These three ranges should only be used for documentation, and not have devices mapped on them
  • 198.51.100.0/24
  • 203.0.113.0/24
  • 127.0.0.1 /32                  –  The localhost or self address of a device
  • 169.254.0.0/16              –   The Link-Local default address range of a device which is not statically addressed, nor been given a DHCP lease.
  • 0.0.0.0/8                        –  This host on the network
  • 255.255.255.255/32     – Broadcast

A small office LAN will normally be connected to a router that handles the administration of the LAN IP addresses with a Dynamic Host Control Protocol (DHCP) server. The router connects to the internet through  Network Address Translation (NAT) where communication is done to the internet or your Wide Area Network (WAN) using the WAN IP address(es) of the router, and the LAN computers “Masquerade” as the router address when communicating outside the LAN.

Often, when advanced DHCP configuration is needed, for services such as auto configuration of VOIP phones you will want to use a DHCP server with more features than that offered by a home router.  This can be readily accomplished by installing a DHCP daemon on your server, the devices on the net will be answered in their DHCP requests, but be sure you disable the DHCP function on the router when you do this.  Another advantage to this scheme is that if the router dies, and you can’t get an identical replacement you will have the settings as part of your normal server backup, whereas the router ‘s backup would be useless.

These small networks often utilize an address range from the 192.168. group of class C  unroutable networks.  There are 254 ranges to choose from, with each range having 254 available addresses.  You might say 254 is an awful lot, but things add up quick when you add workstations, routers, each virtual machine on a server, cameras, phones, Ethernet switches and routers etc.

The provide a service called Dynamic Host Configuration Protocol (DHCP), by default.  Simple DHCP is insufficient for some network components like servers and printers because it is not a sure thing that a device will get the same address back each time it is turned on.  There are some technologies to get over this such as uPnP  and the techniques below for  printers, scanners, switches, servers and and other devices.  It is crucial that only one DHCP server provides configuration on a network. (There are some configurations for have backup servers, but that will not be covered here.

You might not want to choose 192.168.0.  or 192.168.1. as your class C network since those are the default address ranges for many over the shelf routers.  Other third octets to avoid are 3, 10, 15, 16, 20, 30, 86, 100, 102 and 254 as some manufacturers use them as default values also.  Avoiding these address values might make you slightly less vulnerable to to getting hacked (security from obscurity).

If you are part of a large organization that need coordination between various sites, it is desirable that certain network ranges are used for specific purposes.  One a specific address range for each purpose. ie  one range for VOIP phones, one for office traffic to printers, etc.  one for music or video work, this way the purpose of the network can be determined from its address range and color coded patch cords. When personnel have to go from site to site they won’t disconnect a Studio Transmitter Link by mistake.  Avoiding re-use or coordinating an address ranges at both ends of a Virtual Private Network (VPN) systems can avoid conflicts, confusion and collisions.

There are two other address assignment techniques which work well but require manual intervention to set up.

Static addressing is the simplest in theory, but can become quite unwieldy for large networks.  Each computer ethernet interface is setup to (a) specific address(es) within the subnet.  There are several limitations to this.  First, the IP  address used must not be also assigned to another device on the network, statically or by the DHCP server on the network.  This can be accomplished by configuring the DHCP server so only a portion of the subnet addresses can be issued by the DHCP Server, and the static addresses are within the subnet address space, but not among those that the DHCP server will issue.  The second problem is that the addresses statically configured must be kept track of – manually, usually in a spreadsheet so they can be reached by other computers, and so you don’t assign the address to another statically configured computer.  Another consideration is that many routers keep track of the host-names of the computers they assign DHCP addresses to.  Usually these office and home routers automatically enter this information into their Domain Name Servers (DNS) which translate names like www.google.com to an IP Address.  They can do this for the computers on the LAN also.  The router has no knowledge of the statically assigned computers, and cannot provide this service for them.

A better solution is to have the DHCP server for the LAN to reserve certain IP addresses for the particular Media Access Connection (MAC) addresses of the ethernet interfaces on  computers and devices on the net that need to always have the same IP Address.  These MAC addresses are printed on the devices, and can be displayed using the ifconfig command on Linux and ipconfig command on Windows. Many modern small office and home routers have this function.  You usually have to dig through the DHCP connections list to find the menu item to do this.  The manufacturers think that this is a seriously advanced feature.  On some routers it can be tricky if the device has already been issued an IP Address by the DHCP server.

If your router has the MAC reserved IP Address function (sometimes the menu calls it Static – Confusing isn’t it?) then it is generally the preferable method.  If your network has no DHCP server, then Static IP Addresses are the only route available.  The Music Networks described throughout this site generally are simple Static assigned networks, while the Office networks have DHCP assignments where all the devices that need a fixed IP address are assigned using the reserved MAC address function of the DHCP server.  If you were planning on using a home router without this feature, you might want to get another.

Whatever you do with assigned addresses, as opposed to DHCP leases issued ad hoc,  is that you should keep a spreadsheet of the Assigned IP, the MAC address, the name or hostname of the device and its physical location.  (first layer documentation of a network)   you should also keep a record of all the reserved addresses and the device MAC addresses in the case that your router dies and the router backup settings cannot be loaded into the replacement unit because it is a different model.


Network Setup for Rivendell and NetJack

The physical connections between computers running Rivendell and/or NetJack should be done with a bit of thought.  There are some special considerations in any network that carries real time audio or files that must be served on an exact schedule.  This “real time” requirement is different than most computer needs where a document or web page can be served at some time in the future, as long as it is soon.   Audio streams and playout systems need their data NOW.

Rivendell requires Internet access for its rdcatch feature, as well as to access audio files, logs, ssh management, icecast servers. ftp servers and podcast servers, etc.  A Jack server should have access to the internet for the same reasons, plus network time, printers, sending email alerts, etc.  I will call this a connection to the “Office Network” since it includes mostly non-real time traffic.

The safest way (I have thought of) is to have the Rivendell Server(s) connect to two separate networks.  One network, the “Office Network” carries all the normal traffic, connection to the internet, uploading of logs, printing reports, VoIP, etc..  The other network I call the “Music Network” carries only NetJack zita-njbridge traffic, NFS traffic for audio files, and MySQL traffic and some network management traffic.  Rivendell also requires that the Ethernet addresses for these purposes are STATIC, meaning that they are maintained permanently and  setup manually.  The “Office Network” could be automatically assigned using DHCP, or can be STATIC, although there are good reasons that the server interface to the “Office Network” should be STATIC also.

Below is a graphic showing a possible configuration of a Rivendell – zita-njbridge system in  a small radio station, or station cluster.  It is not yet set up for redundancy to provide high reliability, but later additions will permit this:

Network Layout
Rivendell – zita-njbridge Music and Office Networks###

Please note that this network will not work as shown.  The office network switch would have to be a layer 3 switch or router with routing for internet addresses or the two DHCP lines to the Rivendell Workstations should not be connected.   Internet connectivity to the Rivendell workstations can be achieved using a Squid Proxy (pretty good) or Double NAT (not such a good idea)

The “Music Network” should use Gigabyte Ethernet interfaces on the computers and switch.  It should use Cat-5e or Cat-6 cables in a unique color to distinguish it from the office network.  If patch panels are used, they should be separate panels from the office network to avoid confusion.  As you can see, only the machines that have real time functions are connected to this net.  There could be a Network Attached Storage device on this network also, but it should not be used for backups, etc.; only for music and playout traffic should be on this network.

In this installation I have arbitrarily assigned the “Music Network” to a class C non-routable set of addresses:

Parameters -192.168.60.0  netmask 255.255.255.0  Gateway 192. 168.60.1 (The server) Broadcast 192.168.60.255.

This means that any device on the “Music Network” assigned an address beginning with 192.168.60. will be a member of this network.  It does not require a router, just a switch since the knowledge of the members of this network and the needed data routes will be known by each of the computers involved.  This network could possibly have 254 devices attached, but you would never want that many.

The “Office Network” is a conventional internet connected network configured to be efficient for its size.  It carries all the regular business and computer traffic of the operation, in addition to providing audio file upload services and possibly streaming sources for Internet Streaming. Conventional network design considerations are appropriate here.  A small station could possibly use the firewall – router provided by the Internet Service Provider (ISP), or another solution with more than one ISP and a load balancing router, a router using DD-Wrt or other open source router software, or Cisco or other “heavy iron” solution.

Not shown here, but for radio stations that need to deliver programming to remote transmitters, there may be a third ethernet interface on the Rivendell Server for an “STL Network” whose exclusive purpose is program delivery, transmitter control and communications to the station transmitters.  The traffic on this network should be separated from the other networks. This network will interconnect using dedicated microwave channels, landline T-1, and/or other methods of data transport  requiring well thought out routing protocols for high reliability.


Use PulseAudio with Jack Audio Connection Kit?

Ubuntu Studio 14.04 uses Pulseaudio -> Alsa -> Jack as the connection interface for audio devices.  Pulseaudio is a very simple interface, and with it most audio cards just “show up” and play with Jack as the pulseaudio-sink and pulseaudio-source devices on the Jack patchbay.

In the olden days (Ubuntu Studio 10.04 and before) Pulseaudio was  buggy and not worth the effort to deal with the bugs.  Pulseaudio is now much more mature, and for a single sound card machine makes it much more likely that you will have Jack working right away.  If you are using Debian or regular Ubuntu, you will need a Pulseaudio plugin to hook it up with Jack.  I have not used the plugin as it is all nicely done in Ubuntu Studio.

Alsa is perfectly capable of connecting sound cards to Jack, with infinitely more flexibility, and (unfortunately) with more complexity.  Remember to turn the volume controls up in alsamixer!

There still remain some reasons to dump Pulseaudio:

  • Pulseaudio adds a fair amount of latency in the link between the sound cards and Jack  If you are just recording and playing back stuff and “real time” audio is not important, this might be insignificant, but for sound reinforcement and broadcasting, it is a serious consideration.
  • Pulseaudio works best with a single sound card – if you have an in-computer card and a USB card and want to use both, Pulseaudio is complicated at least and may not let you use the second card. (I have not been successful, but I didn’t try very hard)
  • Pulseaudio devices want to hook up to stuff in the patchbay, and I have not figured how to keep them from automatically doing so.
  • Pulseaudio and Rivendell get in the way of each other.  Rivendell wants to have multiple audio inputs and multiple outputs, and that can be a problem with Pulseaudio if they are on different cards.  (Newer versions of Rivendell connect to jack2 very nicely.
  • Pulseaudio devices Pulseaudio-sink and Pulseaudio-source hide the names of the actual sound devices, so they can be confusing when patching.
  • Pulseaudio hides and plays with some sound card settings in Alsa, so special configurations might just get reset to the defaults at next boot.

The reasons to keep Pulseaudio:

  • Alsa can be tricky to get all your audio devices working right unless you are happy to use the command line.
  • Ubuntu Studio comes with Pulseaudio installed and working, and dumping it can cause your installation to stop working until you figure out what Alsa settings for your sound card are undone.
  • There are some tricks to getting Pulseaudio to uninstall or to disable it. (It keeps coming back) (disabling works well on Ubuntu 18.04)
  • Pulseaudio now keeps a simple setup simple (except for those crazy patchbay devices)
  • Removing pulseaudio has limitations because some applications (ex Firefox) insist on only using pulseaudio and getting them to work with jack if pulseaudio is defeated or uninstalled may be impossible.

Assuming you want to simply disable Pulseaudio, here is what you do:  (Preferred if you are not in a storage limited environment)

  1.   Make a backup of the configuration file –
    sudo cp /etc/pulse/client.conf  /etc/pulse/client.conf.ORIG
  2.  Run the following command to edit the configuration file:
  3.   sudo sed  s/; autospawn = yes/autospawn = no/ /etc/pulseaudio/client.conf
  4. Install package alsa-tools
    sudo apt-get -y install alsa-tools
  5. and reboot.

Assuming you want to remove Pulseaudio, here is what you do:

From hecticgeek.com:

1. First let’s remove PulseAudio from your Ubuntu OS. I don’t remember since when Ubuntu used to come installed it by default, but for the recent versions such as: 12.04 Precise Pangolin, 11.10 Oneiric Ocelot, 11.04 Natty Narwhal, 10.10 and 10.04 the below command should remove it.

sudo apt-get -y remove pulseaudio

2. Now do a reboot since PulseAudio daemon (system service) is also running from the background. So it’s better to let the OS update everything.

3. You need the package alsa-tools, but that is already installed in Ubuntu-Studio, but not in regular Ubuntu.

4.  The script I will be publishing later will do this all automagically.

If you just want to just disable PulseAudio, you can edit the config file

1.   Copy /etc/pulseaudio/client.conf for a backup

sudo cp /etc/pulseaudio/client.conf /etc/pulseaudio/client.conf.orig

2.  Modify /etc/pulse/client.conf  the line   ; autospawn = yes to autospawn=np

sudo sed  s/; autospawn = yes/autospawn = no/ /etc/pulseaudio/client.conf

3.  Reboot or kill the pulseaudio job.


Where to get Ubuntu Studio

Ubuntu Studio 14.04.x is a distribution of Ubuntu that is available for download as a .iso file, which is a DVD image file.  You need to download the torrent or .iso from the UbuntuStudio.org download page.  A .iso is directly downloaded using Firefox, Chrome or IE.  A torrent will download a lot faster but you have to install and run a torrent client like uTorrent.  You can get uTorrent for Windows here.  There are two versions of Ubuntu Studio, the “i386” 32 bit processor version which will probably work ok, but I don’t recommend it, but if you have a 64 bit machine you REALLY want to load the  “amd64” 64 bit version.  (Yes it works on Intel processors)

Ubuntu Studio 14.04.x (at this time x is 2) is a Long Term Support (LTS) version.  This means that this version will have security and bug fixes coming out for a few years, but no new bells and whistles.  You want to use a LTS version because a high priority in a radio automation system is STABILITY.  The other releases of Ubuntu Studio have new stuff added (and subtracted) with each version coming out every nine months or so.  The way that a system that “used to work” could change, no longer providing the same controls and the people who use it can be confused.  You don’t want your everyday tool to break.

Ubuntu Studio 14.04 is designed as a workstation for audio, video, presentations, graphics, etc.  It has the bare bones of what you need for audio, the special part is that it has properly installed ALSA and Jack and mostly configured them.

Because it has Xfce (a very lightweight Graphical Interface) it also is a very good candidate as a server.  Many people don’t want any graphical interface on a server, but some of the things that are needed for an audio server (Like Jack and KXStudio) run in graphical mode only, so Ubuntu Server is not a good candidate because you would have to install a GUI that needs a lot of setup, and Ubuntu Desktop has just too many pretty gizmos clogging things up to hammer out audio production and automation.

As a server, you will have some work to do – putting in a webserver, samba file sharing, routing, etc., but that has to be set up for your configuration no matter what.  The installation part is simple.

After you download or torrent the file to your computer, it needs to burned to a bootable DVD or a 4 Gig or larger Flash Drive.  For DVDs, Windows 7 has this ability built in to Explorer, and for Ubuntu the instructions are here.  For flash drives, you can’t just copy the file over, it needs to be written as a bootable image.  There are lots of free programs out there to burn iso files to flash drives, but Google searching will bring up many listings for the utility that can only write Windows 7 or Windows 8 iso files.  Avoid that utility.

Some motherboards will not boot from a flash drive, and you need to play with the bios to get a DVD or Flash Drive to boot when there is an old operating system on the hard drive.  You will be making the machine a  Ubuntu Studio ONLY machine.  No dual boots or Virtual machines for audio!  You want to lock this machine into one mode only so it will be reliable and simple. Yes you can play with a virtual machine, but it will never be a real “workstation”, as would be the case with regular Ubuntu.

When the DVD or Flash Drive boots, make sure you check the disk before installing.  That is one of the selections on the first menu.  It would be really a shame to spend an hour or so setting up a Ubuntu Studio system only to find that half the stuff doesn’t work.

You will need to babysit the installation for a few minutes.  The machine needs to be connected to the Internet and a DHCP server.  I don’t install the photo finishing, graphics and presentations application installation, and you could drop the video apps if you are sure you will not be needing them.  If you are not going to use my script, let the system update all the files on installation.  You can walk away for a cup of coffee after the initial entries quiet down, then check back later when it is installing MySql for passwords and stuff.  It will stop and wait for the password entry.  When it is done –

Take out the DVD or Flashdrive and reboot – voila!  A fresh Ubuntu Studio installation.

 


Don’t Edit /etc/security/limits.conf

There are a number of sites that say to edit /etc/security/limits.conf.

The Cadence package from the KXStudio repository  automatically makes the entries for Jack in

/etc/security/limits.d/audio.conf and establishes the proper settings on installation.

The package automatically sets up Jack2 except for choosing the soundcard,  sample rate, buffer size, etc which you have to choose in the configuration menu of the application.

Qjacktl also sets these same parameters in its configuration menu.  They talk to each other, so you won’t screw things up by switching back and forth.  It is just that Cadence and Catia (Patchbay) are much easier to understand, and are prettier.

The debian.tryphon.eu  (This package no longer exists)   Rivendell package automatically sets them up in

/etc/security/limits.d/rivendell.conf

The priority and memory reservation for Jack are set in a file /etc/security/limits.d/audio.conf installed by kxstudio or qjackctl.  It is a good idea after installing to check that it has been installed.  It sets priority and memory reservations for the members of the  ‘audio’ group that should run jackd.  Files should be added here to set those applications with special needs for priority.

If you are using clamav malware and virus sniffer, its user should have a low priority “nice” level greater than 1 for its systemwide searches.  This is not automatically set, so you will need to make a  /etc/security/limits.d/clamwin.conf  file to limit clamwin’s consumption of resources.

The general philosophy with jack is to protect application’s priority by protecting the transport.  If you have a busy audio processor or something else that MUST run in realtime you might want to add a file for it in  /etc/security/limits.d/  reserving its necessary memory and a negative nice value closer to zero than that of Jack and Rivendell.   This is only needed if you have overruns or gaps or frequency or time shifts that are otherwise unexplained.

Another source of problems can come from hard drive partitions that are filled up.  Beware of backup programs, log files, etc. in a partition that is pretty full.  Ubuntu studio hangs up waiting for disk writes that never complete.