Category Archives: Uncategorized

Pipewire? Replacement for Jack and PU.

Category : Uncategorized

Things have progressed since this was written. Ubuntu 22.04.2 is out and Pipewire has matured. An important thing to note is that as installed from the Ubuntu installer, pipewire is not fully setup. Do the following:

sudo systemctl --user --no-pager status pipewire

This will show if pipewire is running. <esc> or ctl-z to get back to the prompt. Then install the rest of pipewire libraries.

sudo apt -y install pipewire-audio-client-libraries libspa-0.2-jack

If bluetooth hardware is installed on the computer:

sudo apt -y install libspa-0.2-bluetooth

Pipewire-media-session is obsolete and should be replaced with wireplumber

sudo apt -y remove pipewire-media-session

sudo apt -y install wireplumber

Configuration files should be linked so ALSA and pipewire configuration is set.

sudo ln -s /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default-conf /etc/alsa/conf.d/99-pipewire-default.conf

you might need to add this, although my installation had a config file there.

sudo ln -s /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-X86_64-linux.conf /etc/ld.so.conf.d/pipewire-jack-X86_64-linux.conf

And enable and start wireplumber:

sudo systemctl --user --now enable wireplumber

sudo systemctl start wireplumber

I have been reading up on Pipewire, a unified graph based infrastructure for audio and video streams. Pipewire is indended to work alongside ALSA for a a unified way of handling low latency audio and video within a computer. Pipewire is a unified audio and video handler for Linux that will replace pulseaudio and jack audio connection kit

  • Provide consumer, system and pro audio high performance, low latency routing of streams.
  • Provide for high performance, low latency routing of video streams.
  • Provide a simple easy to use interface for users.
  • Pipewire will be a default audio port for Flatpack applications.
  • It has fully functional jack2 and pulseaudio emulator plugins, so jack applications work as expected.
  • Already is the default in Fedora 34 distribution, so they figure it is kind of ready for prime time.
  • Has revolutionary implications for Linux, particularly when X11 (Xorg) is replaced by Wayland desktop manager

I reviewed many recent posts and comments online. It is pretty clear that a computer that uses Wayland used as a desktop machine would do well to move to pipewire. Its performance is much better than pulseaudio. For pro audio implementations there are still some bugs involving starting and tearing down setups leaving zombie ports that may require a reboot to clear them. This is ok for fairly stable desktops but would be unacceptable for a pro audio production environment.

Pipewire is wired to play nice with Wayland, but apparently also works ok with X11. Many of its features come to the fore with the new desktop. Ubuntu 22.04 uses Wayland but X11 can be run on top to get ssh -x forwarding to work.

My suggestion for pro audio users is: Ubuntu 22.04 LTS and use pipewire there.

The Ubuntu 22.04.2 LTS release has Wayland and Gnome 4.2 by default. Pipewire is pretty mature and Ubuntu will be better tuned for pipewire. A lot more native pipewire and flatpack applications will be available, so pulseaudio canl be finally of the picture. I read that pipewire works with Wine. Be ready to build test systems. This way you can hit the road running with pipewire while avoiding most of the “bleeding edge” problems.

If you are using OBS for video in a Ubuntu desktop environment you should probably upgrade now. You can get the full benefit of pipewire’s unified audio and video handling, and improved camera interface now. Setup should be a cinch. The reported problems should not be a big deal for that use. Your audio will sync accurately to your video.


Ubuntu Studio vs Desktop Ubuntu at 20.04

Category : Uncategorized

Where to start? This article discusses the PC version of Rivendell 4.0 on Ubuntu, not the Raspberry PI version

At version 20.04 LTS, the very first decision is whether to use UbuntuStudio or Desktop Ubuntu with the UbuntuStudio Installer is one of whether you like the low overhead XFce desktop or the pretty Gnome 3.  Please note that UbuntuStudio version 21.04 and later will use the KDE Plasma desktop of Kubuntu. Version 20.04 LTS (Long Term Support) of UbuntuStudio will not be up-gradable to later versions without a complete reinstall. I do not recommend using the 6 month interim updates for a production machine.

XFCE is a very low overhead desktop, but it is ancient. Desktop Ubuntu’s Gnome3 is very pretty, but pulseaudio is baked into it pretty tightly, so that you lose control of system audio when you shut it off to tighten latency. (For production environments, system sounds are problematic, and losing them is probably a good thing )

I don’t recommend non-LTS versions of Ubuntu as they must be upgraded regularly to avoid “end of life”. This is a bad thing in a production environment as upgrades can break all your setups. ( As I learned recently on a windows machine) This is a deal breaker in a on-air or tight schedule production environment.

My take for now, is to use Ubuntu desktop with the add on UbuntuStudio package. It requires some adjustment to keep pulseaudio from adding latency to Jack, and a few reboots to get the low-latency kernel installed. Don’t forget to remove the generic kernel after everything is working, as the boot partition can fill up (not a good thing) with unused old kernels of both the low latency and generic kernels when updating around 2028.

The new Rivendell 4.0 radio automation system is packaged to install easily into UbuntuStudio 20.04 LTS, so that will be the easiest path, as all the dependencies are met. If you use Ubuntu Desktop, the upgrade to Ubuntu Desktop 22.04 LTS that you will want to do in 2023 will be painless. OS upgrade to 22.04 LTS would be a complete reinstall however.

Bottom line: Use Ubuntu Desktop 20.04 and install the UbuntuStudio addon package audio features. Spend the extra time to get things set up properly and things will be easier in a few years.


Meterbridge and Jmeter Handy Level Meters

Category : Uncategorized

Meterbridge , Jmeters and JKmeter are GUI Jack Audio Connection Kit Utilities that provide an audio level meters. They all do the same basic thing, and can work the same way. Meterbridge is the original, and Fons Andriaensen rewrote it with more options and better dynamic accuracy.

Jmeters is the best for monitoring audio levels in Jack. It has more options for graphics and types of meters. It has some really cool things, like a stereo VU meter with two colored needles. (broken at this time in the KXstudio package)

JKmeter is Fons Andriansen’s excellent bare bargraph meter that can present in vertical or horizontal mode. It includes an ambisonic mode, and +14 db and +20 db scales for processed or live audio presentation.

Meterbridge has one important thing that is missing from jmeters and jkmeters . Jmeters only has input ports, Meterbridge also has corresponding static output ports.

Some Jack aware applications such as StereoTool search for possible ports to connect to when they are started. They are only willing to connect to ports that are already in existence when they are started. Ports appearing after they are initialized cannot connect. Programs like vlc and other media players’ ports only exist when they are actually playing. If vlc isn’t playing when StereoTool or another application like this is instantated, it cannot connect later. If vlc crashes and is restarted with a new jack name based upon its PID, these applications will refuse to connect to the newly named port.

Meterbridge can step into the fray and provide a persistent output port for StereoTool to connect to. Hooray, because meterbridge is happy to connect to any vlc instance that wishes to connect to it, is connected with jack_connect or by dragging a connection in patchage, catia or the like! Simply start meterbridge before any application with this behavior. Meterbridge’s “-t dpm” display is tiny and useful, so it won’t clutter up your display. Another application for meterbridge is to provide a stable connection port for silentjack which is picky on its timing when ports come and go.

Another interesting feature of meterbridge’s connection scheme is that if you specify input ports of an application or device on the command line, it will “sneak into” the line – Connecting its output port to the input port you specify AND move any connections already on those ports over to its own corresponding input ports.

/usr/bin/meterbridge -t dpm -c 2 -n meter1 system:playback_1 system:playback_2 &
/usr/bin/jmeters -t ebu -f small -name meter2 system:capture_1 system:capture_2 Right Left &

Ubuntu 18.04 installs meterbridge and jmeters in /usr/bin so calling it this way does not require the $PATH variable be properly set.

Some options for meterbridge and jmeters are different! Do not be confused:

  • -t <type> (required)
    • Choices for meterbridge [ vu|ppm|dpm|jf|sco ]
      • vu Round VU Meter – Use jmeters
      • ppm Black PPM Meter – Use jmeters
      • dpm – small vertical ppm meter
      • jf – Jellyfish X-Y Scope display
      • sco – Oscilloscope display
    • Choices for jmeters [ vu|bbc|ebu|din|sbbc|sebu|sdin|cvu|cbbc|cppm|cdin]
      • the first four are correct dynamics of these standards
      • the “s” set are dual stereo needle versions of the first
      • the “c” set are stereo centering of the first.
  • -r <ref-level> in decibels from 0 dbm (default 0 )
  • -c
    • <channels> in meterbridge
    • <columns> in jmeters ( stacked vs horizontal)
  • -n <jack-name> for meterbridge only – the jack port name
  • -name <jack-name> for jmeters only – the jack port name
  • -u <update-rate> for jmeters only ( default 20 per sec )
  • -f <meter-border-style> for jmeters only –
    • rect – Rectangular meter
    • small – Smaller rectangular meter (not correlation meters)
    • mbrl – large round meter (not DIN style)
    • mbrs -smaller round meter (not DIN style)
  • -g <geometry> I have no idea what this does.
  • This is followed by a space delimited list of ports to connect the inputs to.
    • Meterbridge appears to be happy with regular expressions
    • jmeter wants real ports and makes as many meters as there are ports listed. If the ports exist, they will be connected. If a port is not present, the meter will be created but no connection will be made to that meter. Port names are recognized by a “:” in the string.
  • jmeter then accepts a space delimited list of labels for the ports to be put on the meters. If you put names in, it will make that many ports. Names are placed on the lower border of the meter. You may not use “:” in the labels.
 >


Ubuntu 20.04 desktop for 24/7 Operation

Category : Uncategorized

Most computer systems are used as desktop devices that have a user at the keyboard, mouse and monitor. They are used for intermittent jobs which do not require continuous availability. We can call this office mode. The typical office use is to prepare documents, get information, keep track of operations, etc. Unavailability of the computer for a Windows 10 update or a three minute reboot is an annoying required trip to the coffee machine, but no disaster.

Radio Stations use computers the office mode to write copy, do billing, prepare proposals, record programs and spots, and maintain social media.

Other computers are used to “serve” applications, websites, streams, and other public facing interfaces. These are critical real time business processes. These servers often in the “cloud” – Server farms of thousands of computers configured with redundant, shared workspaces with each of the individual client services separated into individual virtual machines that exist in servers that have error correcting memory, redundant hard drives, duplicated power supplies, multiple independent Universal Power Supplies and multiple independent Heating Ventilating and Air Conditioning systems. If an individual piece of hardware fails, the server application can be re-spawned on another or several other physical computers in the cloud.

Sometimes a company will use a local server computer to provide centralized file storage for collaboration and organized storage. They may also have an application server to allow 10 copies of a program to be used by 30 employees (but only by 10 at a time The served applications can all be set up with identical default configurations so users all work with the same interface. Monthly software costs are limited if it only license as many “seats” as are likely to be used at the same time.

Radio Stations also use computers in ways that require 24/7 availability because they produce or deliver the product. Whether it is for program automation, audio store, program database, Studio Transmitter Links, program acquisition audio processing or Transmitter, antenna monitoring, these things are the lifeblood of the business. Any stoppage means a loss of listeners, revenue and reputation. A Uninterruptable Power System is needed, especially on a server or STL computers to be sure that any power failure will ride out any short power failures, ride out the period from a power failure until the generator stabilizes or produce an orderly shutdown with files properly closed.

One big difference between Windows systems and Linux systems is that while Windows supports multiple users and properly segregates their workspaces, it is designed to be used by a single user at a time. Linux systems can support a multiplicity of users with different roles. This allows a single computer to provide functionality to different aspects of an operation.

The use of Snaps or Flatpacks allows an application to be isolated from the libraries and drivers for other applications to avoid the common problems that occur when a system is upgraded and the version of the support libraries conflict, or between several applications that run on the computer one of which going awry could cause a failure that might take a station off air until the applications are rolled back to a previous state. Snaps and Flatpacks limit the resources available to their applications so there will be no conflicts in accessing databases system resources or devices on the computer.

Another strategy to separate functions is to establish virtual machines within one physical machine, (host() or even within several. Each virtual machine has its own operating system, libraries, and programs within a single physical computer. There are several designs to accomplish this. With a Ubuntu host I use KVM, Oracle Virtualbox works for nearly all Linux distributions and Windows. You can have a Ubuntu host which hosts several virtual machines, with one, for example running Centos, another Running Windows 10 and a third with Ubuntu Server, all performing different functions. These virtual machines can be started and stopped at will without disrupting the host. A good example of this is a server called a Certificate Authority

It is important, however to not put too many eggs in a single basket. One hardware failure can cause multiple systems to fail. It is wise to separate the machines that have servers connected to the internet from the machines on the station Local Area Network that run the automation or serve files, or databases..

That reliability requires much more than can be provided with desktop windows operating system. The Linux family of operating systems provides a much better solution than anything on a Windows or Mac platform. Standard Ubuntu desktop provides a very user friendly interface and “just keeps running” It is possible to set up a Ubuntu machine so that it will not upgrade files unless actively commanded by a physically present operator, and most upgrades do not require a reboot. (Kernel and other upgrades need rebooting to take advantage of the upgrade) Programs get the benefit of upgrades after all instances of the program have exited and the program is restarted. We have had computers running for a year or more without reboot that run Ubuntu or Centos.

It is a little tricky to set up an automatic 24/7 user for a linux box. A single user should runs the automation, the audio processor, the virtual console or the dozen other things needed full time operation in a radio station, it is important that user:

  • Automatically logs in at boot
  • Is immune from sleep and (probably) screen lock
  • Owns the 24/7 programs and daemons
  • Appears as an appliance instead of a computer, but has full access to GUI based programs needed for operations
  • Should not log out of its GUI Session , which can stop programs that must keep running.
  • Permit switch user, without actually logging out
  • Have a way to unlock a frozen X11 session

Modern Ubuntu and other Linux systems have a powerful tool for processes that must be running 24/7, called daemons. Systemd loads (in modern systems) and runs all the important daemons in the computer, like the printer daemon, the various hardware daemons, databases, etc. The various daemons can also be started, stopped and monitored using the systemctl command. You can start up your audio processor, your virtual console or anything else that should be started and kept running for a long time.

One very strong caveat: Try to get all the systems on your server machines running properly (without clunky workarounds) before you put it into production. You want to tune the system so it doesn’t need to be worked on after it has been fielded. It is good to have a development computer to test new versions of software, configurations or new systems so you don’t disrupt critical station systems.

It is also wise to keep one computer of each type in reserve to load and drop into service in the case of failure. Do not find yourself having to set up a server from scratch after a motherboard dies in a server computer. Just basic setup of a server from my “RadioSetupScripts.sh” program takes several hours of downloading and installing programs.


  • 0

Users for Jack Audio Connection Kit

Category : Uncategorized

The normal use of jack, which is envisioned as a single user utility: When a user wishes to make a recording, or edit a file starts with the user logging in, and load the jack daemon either manually, automatically or by launching a jack compatible application. This will provide the audio and midi interconnections between hardware and the various software needed for the job.

Another user can open another named jack session, but that session will not be able to access the sound card used by the first session.

Additionally, if the user closes his or her session all the jack infrastructure collapses. This is very problematic when the Jack session is used for real time applications like radio automation, streaming, Radio Studio-Transmitter Links, remote listeners, etc.

If the computer running jack reboots, the jack user must login before jack loads.

The work-around I have used is to create a special user that is exclusively runs for real time and audio processes. This user should be a member of the audio group, and should autologin, but have only those permissions that are needed to access the audio systems. (no sudo permission, for example). When jack needs to be adjusted, any other users on the machine should switch to the audio user and make the adjustments and then switch back to the normal user. See the post Ubuntu for 24/7 Operation for more information.

A good way to start jack in this paradyme is to make it a service and start at boot. This can also restart jack in case of a crash, and assure that its required support modules are in place before starting.


  • 0

Rivendell really likes Centos7. Not so Ubuntu 18.04

Category : Uncategorized

I am putting Rivendell and Centos 7 in a box. I haven’t been successful in running Rivendell reliably in a straight Ubuntu 18.04 LTS environment.

Back “in the day” there were a many Rivendell boxes working in Europe on Ubuntu 14.04 and 16.04, but Centos7 is so baked into Rivendell, it just makes sense to run it in a virtual box under Linux Kernel Virtualization  (KVM) with Centos7 as guest running Ubuntu and Jack2 with Ubuntu 18.04LTS as host.

Too many of the libraries do not align between what Rivendell expects and what Ubuntu provides, particularly the QT version.  Centos7 is not a poor jack2 host – jack itself works well, but few of the jack utilities work, or work reliably in the Centos7 Environment.  We can do all the fancy stuff in Ubuntu and the bread and butter automation in the business oriented Centos7 world.

I will be updating this post as I get this up through production.  I have only a testbed playing now. There is some work to test whether Cloudmin is suitable for administering KVM in this context or not.

Check back soon.


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.