WhiteBoardSpecs

Revision 7 as of 2014-05-16 19:38:18

Clear message

Feature Specification Planning for Ubuntu Studio 14.10

Core Topic

Our core packages (ubuntustudio-meta – the source for all of our meta packages, ubuntustudio-default-settings, ubuntustudio-live, linux-lowlatency and the possible linux-rt package).

The Ubuntu Studio Desktop (ubuntustudio-desktop, and possible additions)

I'm proposing we begin basing the Ubuntu Studio desktop on other existing DE metas, so that we do as little DE specific maintenance as possible (since it is not our main focus), and by doings so we can also make it possible for the user to choose which ever DE they want during installation (we'll need to create an additional ubiquity plugin for this). We should only ship one DE on our ISO, so installing other than our chosen default DE (currently XFCE) would require internet connection.

In the case of other DEs than unity, there are two types of metas we could go with, the plain DE metas - such as lxde, or we could base on existing Ubuntu flavor desktop metas - such as lubuntu-desktop).

In the former case, using our own artwork, and desktop sessions, we could go with names for metas such as:

  • ubuntustudio-desktop-unity
  • ubuntustudio-desktop-lxde
  • ubuntustudio-desktop-kde
  • ubuntustudio-desktop-xfce
  • ubuntustudio-desktop-gnome
  • ubuntustudio-desktop (which ever would be our default - currently xfce)

In the latter case, we could also discuss the possibility to name metas in this fashion (and investigate any legal issues with using these names).

  • ubuntustudio-desktop
  • xubuntustudio-desktop
  • kubuntustudio-desktop
  • lubuntustudio-desktop
  • ubuntugnomestudio-desktop (or gnomestudio-desktop)

If it is decided that there is a need for a special Ubuntu Studio DE, we could look at providing our own minimal DE choice. Currently, I would say we don't really have one. We've mostly based our DE on Xubuntu, but by just stripping away some packages, and in some cases not following their changes well enough, causing bugs in our own setup.

Package selection for ubuntustudio-{audio|video|graphics|photography|publishing}

Currently, the philosophy for accepting packages to be included in our default installation is that we don't already have a better package for the workflows it covers.

We don't have any specific package selection process. Since there are so few developers involved, we tend to just talk it through between the few of us on our irc channel. So, this is something that could be worked at. How should we go about choosing packages for our default install?

ubuntustudio-audio-minimal

I'm proposing the addition of a ubuntustudio-audio-minimal package, to install only the core audio related packages, such as jack and linux-lowlatency.

I also think we should keep working on our customization of the ubiquity installer and add more options, helping the user better fine tune their installation, and in the case where you only want the system configured to audio, but not have any of the apps - except for the obligatory ones, ubuntustudio-audio-minimal would make a lot of sense.

Workflow Categorization for ubuntustudio-{audio|graphics|video|publishing|photography}

I'm proposing we start using debtags and freedesktop categories for categorizing Ubuntu Studio workflows. The two are not the same, but it would make sense to have them work in paralell as far as possible.

In order to do that, we will need to work with upstream, possibly defining new tags and categories that we need. The benefit in doing so is that the work we do becomes available on all Debian based distros, and in the case with freedesktop categories - also in the whole of Linux audio world.

Our main workflows are defined as: audio, graphics, video, publishing and photography. This is not enough when wanting to search or browse through applications, counting the applications that we don't provide in our default install. We need subcategories (such as the ones we have in our custom menu). Categories such as: audio:plugins, audio:sequencers, etc.

freedesktoop categories explained

Freedesktop categories are used in .desktop files found in /usr/share/applications/, and are used for creating a menu structure in DEs that still use menus, such as KDE, LXDE and Xubuntu.

The menus aren't strictly created using freedesktop categories, and in our case with ubuntustudio-menu, the structure is very much customized. By using freedesktop categories we could instead automate the build of the menu, and not place applications in correct categories one by one.

Here's a list of all standard categories http://standards.freedesktop.org/menu-spec/latest/apa.html

debtags explained

debtags are potentially useful when searching or browsing for packages. Each package can have multiple tags. Read more about debtags here https://wiki.debian.org/Debtags.

Debian packages use debtags to fine tune categorization. But, not all packages are currently using a rich set of correct debtags.

Debtags for the Debian Multimedia Blend packages can be edited here (select a task, and for the package, select “edit debtags”) http://blends.debian.org/multimedia/tasks/index.

To see debtags locally, install the package debtags and use this command (replace <package> with something that you have installed):

debtags show <package>

WORKITEMS:

So, I propose we:

  • Assemble all debtags and freedesktop categories that relate to our workflows into a list.
  • Define new ones, if needed, and implement them upstrean.
  • Edit debtags and desktop files correctly for all packages, in the Debian sections: sound, graphics, video and at least a select number of applications that relate to publishing and photography (there are no clear Debian sections that correlate with these main Ubuntu Studio categories/workflows).

Here's a list of sections for Ubuntu trusty packages http://packages.ubuntu.com/trusty/

This is a fair bit of work, but will make further work a lot easier. Tags could be used in package installers (such as ubuntustudio-installer), while freedesktop categories make it easier to structure menus or search for applications in non-menu based gui shells, such as unity or gnome.

Linux RT

Including linux-rt is somewhat of a maintenance burden. But, perhaps there is enough will to make this happen?

There are at least two options:

  • sync linux-rt from Debian (this has not been investigated at all – a ppa should be setup for testing this)
  • Build against the Ubuntu source, which would of course be the best option, but the realtime patch is usually only supported on every other kernel version, and that makes things a bit tricky.

ubuntu-live (ubiquity plugins)

desktop-select plugin

As mentioned earlier, if we want the ability to choose any DE, we need a ubiquity plugin for that.

package-select plugin

The existing package select plugin might need some improvement. For instance, if de-selecting all metas, none of the recommends in those metas should be installed. Currently, there is a problem deselecting packages that are found in several metas - they need to be deselected one by one.

One possibility is simplify the plugin to only show selections for a few choices. For example:

  • audio
    • audio-minimal (only core packages, such as jack and linux-lowlatency)
    • audio-plugins (ubuntustudio-audio-plugins meta)
    • audio-full (ubuntustudio-audio meta)
  • graphics
    • only fonts (ubuntustudio-fonts meta)
  • video
  • photography
  • publishing
    • only fonts (ubuntustudio-fonts meta)

Documentation Topic

User Documentation

Things that we should do:

So, if anyone is up to it, please join us in this effort.

Developer Documentation

I've been slowly working at creating some for of Ubuntu Studio developer documentation at http://wiki.ubuntu.com/UbuntuStudio. If anyone wants to assist in this, you are welcome.

Art Topic

Wallpaper contribution

Testing Topic

Application Topic

ubuntustudio-controls

Currently being rewritten from scratch. It will be a systray/indicator app, with jack and pulseaudio controls, and with a complementary system settings application for static settings. Possible shortcuts in the systray/indicator-menu to the system settings application, patchage and ubuntustudio-installer.

There is a control application written by falktx that has many of these features, but may not be focusing on the same end goals. In either case, before going too far in developing this application, we should probably see if we'd rather continue working on falktx application instead.

First version, which will also be uploaded to trusty should at least feature:

  • administering of user realtime privilege

Additional possible features for this same version:

  • System diagnostic script - an easy way to gather important information about the system regarding multimedia. Makes it easy to give support to users when they can use the output of this script to show how their system is configured. This can also be automated at each boot, and a report can alert the user if something is not configured right.

Additional long term feature goals:

  • jack controls and settings (with emphasis on jackdbus, since this is a graphical tool for desktops - but should support all forms of jack)
    • autostart jack at login (toggle)
    • start/stop
    • set audio device, samplerate and buffer size
    • connections (patchage - perhaps customized)
    • autostart a2jmidid
  • pulseaudio controls
    • set audio device
    • level control
  • jack/pulseaudio integration settings
    • enable jack sink and source for pulseaudio
      • auto-set pulseaudio I/O to jack sink and source, if jack grabs the same device
      • autoconnect yes/no
      • number of channels for the jack sink and source modules
  • CPU governor control
    • set to performance when jack is started
    • manual control

ubuntustudio-installer

There are many ideas for a future version of this installer. We might even come to realize that while we are defining a bunch of great features for this application, the easy and most generic way to implement them would be to improve Ubuntu Software Center, or Lubuntu Software Center, or any other existing application.

In it's most basic form it should be able to install Ubuntu Studio related applications the way it does now. There are a few oddities in the implementation of the current version, and those could be improved.

One way to populate the installer with packages could be using debtags

ubuntustudio-menu

Currently, this is a customized menu addition that is trying to be as generic as possible, so that it would work on any DE that has menus. One possible long term goal is to streamline it to use freedesktop categories, but for that to work we must first make sure we have defined a good set of those, and made sure all multimedia packages with desktop files have correct freedesktop categories.

This is more of a settings package then an application.

Public Relations and Support Topic

We need to get more people involved. How do we reach out to people about this in the best way?