I am rebuilding the electronic organ I inherited from my father, and I plan to use Ubuntu on the controller that receives the signals from the console interface and feeds the sound system. This is a heavily loaded Java application. Each voice stop supplies one digital waveform to each key on a keyboard. So if you have four stops down and play an 8-note chord then that's 32 waveforms that have to be merged and fed to the sound device. That number is multiplied by the number of output channels: two for stereo, four for a 3.1 sound system, and six for the 5.1 home theatre system that I plan to use in the final rig. So the 8-note chord requires 384 integer additions for each sample, and 48,000 samples are required every second. So I want as little contention as possible for CPU cycles.
Luckily the application needs no disk or network I/O, and fits easily in 16GB physical memory.
So I'm interested in any and all suggestions to eliminate unnecessary system load, or improve audio output. Here are some ideas I plan to explore:
- Disable gnome (service gdm3) and run without a GUI
- Run with noswap
- Disable non-essential services
- Check around for any other suggestions about system config, or Java sound implementations, or anything else.
My specific questions are:
- Is Ubuntu server a better starting place than Ubuntu desktop?
- What services are essential? My laptop is running acpid, apparmor, apport, avahi-daemon, bluetooth, boinc-client, cron, cups, cups-browsed, dbus, gdm3, irqbalance, kerneloops, kmod, network-manager, openvpn, procps, rsyslog, udev, ufw, unattended-upgrades, uuidd, virtualbox, and whoopsie
- Is the default audio subsystem the best for a lightweight system?
- Does anybody have other good ideas?
Thank you for reading.