Making Sense of the Audio Stack on Unix

Total Page:16

File Type:pdf, Size:1020Kb

Making Sense of the Audio Stack on Unix Making Sense of The Audio Stack On Unix Patrick Louis 2021-02-07 Published online on venam.nixers.net © Patrick Louis 2021 This publication is in copyright. Subject to statutory exception and to the provision of relevant collective licensing agreements, no reproduction of any part may take place without the written permission of the rightful author. First published eBook format 2021 The author has no responsibility for the persistence or accuracy of urls for external or third-party internet websites referred to in this publication, and does not guarantee that any content on such websites is, or will remain, accurate or appropriate. Contents Introduction 4 Hardware layer 6 Analog to Digital & Digital to Analog (ADC & DAC) 7 Libraries 10 Audio Driver 11 Advanced Linux Sound Architecture (ALSA) 15 Open Sound System (OSS) and SADA 22 Sound Servers 25 sndio 26 aRts (analog Real time synthesizer) and ESD or ESounD (Enlight- ened Sound Daemon) 28 PulseAudio 29 PulseAudio — What Is It? ........................ 29 Pulseaudio — Overall Design ....................... 30 Pulseaudio — Sink, Sink Input, Source, and Source Input ....... 32 Pulseaudio — Internal Concepts: Cards, Card Profile, Device Port, Device ................................. 34 Pulseaudio — Everything Is A Module Thinking ............ 35 Pulseaudio — Startup Process And Configuration ........... 36 Pulseaudio — Interesting Modules And Features ............ 38 Pulseaudio — Tools ............................ 40 Pulseaudio — Suspending ......................... 41 JACK 42 PipeWire 45 Conclusion 53 Bibliography 55 3 Introduction Come see my magical gramophone Audio on Unix is a little zoo, there are so many acronyms for projects and APIs that it’s easy to get lost. Let’s tackle that issue! Most articles are confusing because they either use audio technical jargon, or because they barely scratch the surface and leave people clueless. A little knowledge can be dangerous. In this article I’ll try to bridge the gap by not requiring any prerequisite knowl- edge while also giving a good overview of the whole Unix audio landscape. There’s going to be enough details to remove mysticism (Oh so pernicious in web bubbles) and see how the pieces fit. By the end of this article you should understand the following terms: • ALSA • OSS • ESD • aRts • sndio • PulseAudio • PipeWire • GStreamer • LADSPA We’ll try to make sense of their utility and their link. The article will focus a bit more on the Linux stack as it is has more components than others and is more advanced in that respect. We’ll also skip non-open source Unix-like systems. As usual, if you want to go in depth there’s a list of references at the bottom. Overall, we got: 4 • Hardware layer: the physical devices, input and output • Kernel layer: interfacing with the different hardware and managing their specificities (ALSA, OSS) • Libraries: used by software to interface with the hardware directly, to ma- nipulate audio/video, to interface with an intermediate layer for creating streams (GStreamer, Libcanberra, libpulse, libalsa, etc..), and to have a standard format (LADSPA). • Sound servers: used to make the user facing (user-level) interaction easier, more abstract, and high level. This often acts as glue, resolving the issue that different software speak different protocols. (PulseAudio, ESD, aRts, PipeWire, sndio) Let me preface this by saying that I am not a developer in any of these tech, neither am I a sound engineer. I am simply regrouping my general understanding of the tech so that anyone can get an overview of what the pieces involved are, and maybe a bit more. 5 Hardware layer It’s essential to have a look at the hardware at our disposal to understand the audio stack because anything above it will be its direct representation. There are many types of audio interfaces, be it input or output, with different varieties of sound cards, internal organizations, and capabilities. Because of this diversity of chipsets, it’s simpler to group them into families when interacting with them. Let’s list the most common logical components that these cards can have. • An interface to communicate with the card connected to the bus, be it interrupts, IO ports, DMA (direct memory access), etc.. • Output devices (DAC: Digital to analog converter) • Input devices (ADC: Analog to digital converter) • An output amplifier, to raise the power of output devices • An input amplifier, same as above but for input devices (ex: microphones). • Controls mechanism to allow different settings • Hardware mixer, which controls each devices volume and routing, usually volume is measured in decibel. • A MIDI (Musical Instrument Digital Interface) device/controller, a stan- dard unified protocol to control output devices (called synthesizers) — think of them like keyboards for sounds. • A sequencer, a builtin MIDI synthesizer (output of the above) • A timer used to clock audio • Any other special features such as a 3D spatializer It is important to have a glance at these components because everything in the software layers attempts to make them easier to approach. 6 Analog to Digital & Digital to Analog (ADC & DAC) A couple of concepts related to the interaction between the real and digital world are also needed to kick-start our journey. In the real world, the analog world, sound is made up of waves, which are air pressures that can be arbitrarily large. Speakers generating sound have a maximum volume/amplitude, usually repre- sented by 0dB (decibels). Volume lower than the maximum is represented by negative decibels: -10dB, -20dB, etc.. And no sound is thus -∞ dB. This might be surprising and actually not really true either. Decibel doesn’t mean much until it’s tied to a specific absolute reference point, it’s a relative scale. You pick a value for 0dB that makes sense for what you are trying to measure. vu meter The measurement above is the dBFS, the dB relative to digital full-scale, aka digital 0. There are other measurements such as dB SPL and dBV. One thing to note about decibels is that they follow a strictly exponential law, which matches it to human perception. What sounds like a constantly increas- ing volume is indicated by a constantly rising dB meter, corresponding to an 7 exponentially rising output power. This is why you can hear both vanishingly soft sounds and punishingly loud sounds. The step from the loudest you can hear up to destroying your ears or killing you is only a few more dB. While decibels are about loudness, the tone is represented as sine waves of certain frequency, the speed. For example, the note A is a 440Hz sine wave. Alright, we got the idea of decibel and tone but how do we get from waves to our computer or in reverse? This is what we call going from analog to digital or digital to analog. To do this we have to convert waves into discrete points in time, taking samples per second — what we call sample rate. The higher the sample rate, the more accurate the representation of the analog sound (a lollipop graph). Each sample has a certain accuracy, how much information we store in it, the number of bits for each sample — what we call the bit rate/depth (the higher the less noise). For example, CDs use 16 bits. Which value you choose as your sample rate and bit rate will depend on a trade-off between quality and memory use. NB: That’s why it makes no sense to convert from digital low sample rate to digital high sample rate, you’ll just be filling the void in the middle ofthe discrete points with the same data. Additionally, you may need to represent how multiple channels play sound — multichannel. For example, mono, stereo, 3d, surround, etc.. It’s important to note that if we want to play sounds from multiple sources at the same time, they will need to agree on the sample rate, bit rate, and format representation, otherwise it’ll be impossible to mix them. That’s something essential on a desktop. The last part in this equation is how to implement the mechanism to send audio to the sound card. That highly depends on what the card itself supports, but the usual simple mechanism is to fill buffers with streams of sound, then let the hardware read the samples, passing them to the DAC (digital to analog converter), to then reach the speaker, and vice versa. Once the hardware has read enough samples it’ll do an interrupt to notify the software side that it needs more samples. This cyclic mechanism goes on and on in a ring fashion. If the buffer samples aren’t filled fast enough we call this an underrun ordrop- out (aka xruns), which result in a glitch, basically audio stopping for a short period before the buffer is filled again. The audio can be played at a certain sample rate, with a certain granularity, as we’ve said. So if we call buffer-size the number of samples that can be contained in a cyclic-buffer meant to be read by the hardware, fragment-size or period-size the number of samples after which an interrupt is generated, number-fragments the number of fragments that can fit in a hardware buffer (buffer-size/fragment- size), and sample-rate the number of samples per seconds. Then the latency will be buffer-size/sample-rate, for example if we can fit 100 8 samples in a buffer and the samples are played once every 1ms then that’sa 100ms latency; we’ll have to wait 100ms before the hardware finishes processing the buffer. From the software side, we’ll be getting an interrupt every period-size/sample- rate. Thus, if our buffer-size is 1024 samples, and fragment-size is 512, and our sample-rate is 44100 samples/second, then we get an interrupt and need to refill the buffer every 512/44100 = 11.6 ms, and our latency for this stage is up to 1024/44100 = 23 ms.
Recommended publications
  • Desktop Migration and Administration Guide
    Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide GNOME 3 desktop migration planning, deployment, configuration, and administration in RHEL 7 Last Updated: 2021-05-05 Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide GNOME 3 desktop migration planning, deployment, configuration, and administration in RHEL 7 Marie Doleželová Red Hat Customer Content Services [email protected] Petr Kovář Red Hat Customer Content Services [email protected] Jana Heves Red Hat Customer Content Services Legal Notice Copyright © 2018 Red Hat, Inc. This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
    [Show full text]
  • 106 INKSCAPE – FREE VECTOR GRAPHICS EDITOR Grabareva A
    INKSCAPE – FREE VECTOR GRAPHICS EDITOR Grabareva A. Supervisor: Voevodina M. E-mail: [email protected], [email protected] Kharkiv, О.М. Beketov National University of Urban Economy in Kharkiv Inkscape is a cross-platform, powerful enough and in many ways competitive free vector graphics editor with open source code, and in which the SVG format is used as the main standard for work. It is convenient for creating both artistic and technical illustrations. Inkscape is an analogue of such graphic editors as Corel Draw, Adobe Illustrator, Xara X and Freehand. Intended use: - illustrations for office circulars, presentations, creation of logos, business cards, posters; - technical illustrations (diagrams, graphics, etc.); - vector graphics for high-quality printing (with preliminary import of SVG into Scribus); - web graphics – from banners to site layouts, icons for applications and website buttons, - graphics for games. Main characteristics of Inkscape: - the program is free and distributed under the GNU General Public License; - cross-platform; - the program supports the following document formats: import – almost all popular and frequently used formats: SVG, JPEG, GIF, BMP, EPS, PDF, PNG, ICO, and many additional ones, such as SVGZ, EMF, PostScript, AI, Dia, Sketch, TIFF, XPM, WMF, WPG, GGR, ANI, CUR, PCX, PNM, RAS, TGA, WBMP, XBM, XPM; export – the main formats are PNG and SVG and many additional EPS, PostScript, PDF, Dia, AI, Sketch, POV-Ray, LaTeX, OpenDocument Draw, GPL, EMF, POV, DXF; - there is support for layers; -
    [Show full text]
  • Release Notes for Debian GNU/Linux 5.0 (Lenny), Alpha
    Release Notes for Debian GNU/Linux 5.0 (lenny), Alpha The Debian Documentation Project (http://www.debian.org/doc/) November 11, 2010 Release Notes for Debian GNU/Linux 5.0 (lenny), Alpha Published 2009-02-14 This document is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; with- out even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. The license text can also be found at http://www.gnu.org/copyleft/gpl.html and /usr/ share/common-licenses/GPL-2 on Debian GNU/Linux. ii Contents 1 Introduction 3 1.1 Reporting bugs on this document . .3 1.2 Contributing upgrade reports . .3 1.3 Sources for this document . .4 2 What’s new in Debian GNU/Linux 5.05 2.1 What’s new in the distribution? . .5 2.1.1 Package management . .7 2.1.2 The proposed-updates section . .7 2.2 System improvements . .8 2.3 Major kernel-related changes . .8 2.3.1 Changes in kernel packaging . .8 2.4 Emdebian 1.0 (based on Debian GNU/Linux lenny 5.0) . .9 2.5 Netbook support .
    [Show full text]
  • Nix on SHARCNET
    Nix on SHARCNET Tyson Whitehead May 14, 2015 Nix Overview An enterprise approach to package management I a package is a specific piece of code compiled in a specific way I each package is entirely self contained and does not change I each users select what packages they want and gets a custom enviornment https://nixos.org/nix Ships with several thousand packages already created https://nixos.org/nixos/packages.html SHARCNET What this adds to SHARCNET I each user can have their own custom environments I environments should work everywhere (closed with no external dependencies) I several thousand new and newer packages Current issues (first is permanent, second will likely be resolved) I newer glibc requires kernel 2.6.32 so no requin I package can be used but not installed/removed on viz/vdi https: //sourceware.org/ml/libc-alpha/2014-01/msg00511.html Enabling Nix Nix is installed under /home/nixbld on SHARCNET. Enable for a single sessiong by running source /home/nixbld/profile.d/nix-profile.sh To always enable add this to the end of ~/.bash_profile echo source /home/nixbld/profile.d/nix-profile.sh \ >> ~/.bash_profile Reseting Nix A basic reset is done by removing all .nix* files from your home directory rm -fr ~/.nix* A complete reset done by remove your Nix per-user directories rm -fr /home/nixbld/var/nix/profile/per-user/$USER rm -fr /home/nixbld/var/nix/gcroots/per-user/$USER The nix-profile.sh script will re-create these with the defaults next time it runs. Environment The nix-env commands maintains your environments I query packages (available and installed) I create a new environment from current one by adding packages I create a new environment from current one by removing packages I switching between existing environments I delete unused environements Querying Packages The nix-env {--query | -q} ..
    [Show full text]
  • Version 7.8-Systemd
    Linux From Scratch Version 7.8-systemd Created by Gerard Beekmans Edited by Douglas R. Reno Linux From Scratch: Version 7.8-systemd by Created by Gerard Beekmans and Edited by Douglas R. Reno Copyright © 1999-2015 Gerard Beekmans Copyright © 1999-2015, Gerard Beekmans All rights reserved. This book is licensed under a Creative Commons License. Computer instructions may be extracted from the book under the MIT License. Linux® is a registered trademark of Linus Torvalds. Linux From Scratch - Version 7.8-systemd Table of Contents Preface .......................................................................................................................................................................... vii i. Foreword ............................................................................................................................................................. vii ii. Audience ............................................................................................................................................................ vii iii. LFS Target Architectures ................................................................................................................................ viii iv. LFS and Standards ............................................................................................................................................ ix v. Rationale for Packages in the Book .................................................................................................................... x vi. Prerequisites
    [Show full text]
  • OM-Cube Project
    OM-Cube project V. Hiribarren, N. Marchand, N. Talfer [email protected] - [email protected] - [email protected] Abstract. The OM-Cube project is composed of several components like a minimal operating system, a multi- media player, a LCD display and an infra-red controller. They should be chosen to fit the hardware of an em- bedded system. Several other similar projects can provide information on the software that can be chosen. This paper aims to examine the different available tools to build the OM-Multimedia machine. The main purpose is to explore different ways to build an embedded system that fits the hardware and fulfills the project. 1 A Minimal Operating System The operating system is the core of the embedded system, and therefore should be chosen with care. Because of its popu- larity, a Linux based system seems the best choice, but other open systems exist and should be considered. After having elected a system, all unnecessary components may be removed to get a minimal operating system. 1.1 A Linux Operating System Using a Linux kernel has several advantages. As it’s a popular kernel, many drivers and documentation are available. Linux is an open source kernel; therefore it enables anyone to modify its sources and to recompile it. Using Linux in an embedded system requires adapting the kernel to the hardware and to the system needs. A simple method for building a Linux embed- ded system is to create a partition on a development host and to mount it on a temporary mount point. This partition is filled as one goes along and then, the final distribution is put on the target host [Fich02] [LFS].
    [Show full text]
  • Extending the Faust VST Architecture with Polyphony, Portamento and Pitch Bend Yan Michalevsky Julius O
    Extending the Faust VST Architecture with Polyphony, Portamento and Pitch Bend Yan Michalevsky Julius O. Smith Andrew Best Department of Electrical Center for Computer Research in Blamsoft, Inc. Engineering, Music and Acoustics (CCRMA), [email protected] Stanford University Stanford University [email protected] AES Fellow [email protected] Abstract VST (Virtual Studio Technology) plugin stan- We introduce the vsti-poly.cpp architecture for dard was released by Steinberg GmbH (famous the Faust programming language. It provides sev- for Cubase and other music and sound produc- eral features that are important for practical use of tion products) in 1996, and was followed by the Faust-generated VSTi synthesizers. We focus on widespread version 2.0 in 1999 [8]. It is a partic- the VST architecture as one that has been used tra- ularly common format supported by many older ditionally and is supported by many popular tools, and newer tools. and add several important features: polyphony, note Some of the features expected from a VST history and pitch-bend support. These features take plugin can be found in the VST SDK code.2 Faust-generated VST instruments a step forward in Examining the list of MIDI events [1] can also terms of generating plugins that could be used in Digital Audio Workstations (DAW) for real-world hint at what capabilities are expected to be im- music production. plemented by instrument plugins. We also draw from our experience with MIDI instruments and Keywords commercial VST plugins in order to formulate sound feature requirements. Faust, VST, Plugin, DAW In order for Faust to be a practical tool for generating such plugins, it should support most 1 Introduction of the features expected, such as the following: Faust [5] is a popular music/audio signal pro- • Responding to MIDI keyboard events cessing language developed by Yann Orlarey et al.
    [Show full text]
  • Release Notes for Fedora 15
    Fedora 15 Release Notes Release Notes for Fedora 15 Edited by The Fedora Docs Team Copyright © 2011 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https:// fedoraproject.org/wiki/Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries. All other trademarks are the property of their respective owners.
    [Show full text]
  • Informatique Et MAO 1 : Configurations MAO (1)
    Ce fichier constitue le support de cours “son numérique” pour les formations Régisseur Son, Techniciens Polyvalent et MAO du GRIM-EDIF à Lyon. Elles ne sont mises en ligne qu’en tant qu’aide pour ces étudiants et ne peuvent être considérées comme des cours. Elles utilisent des illustrations collectées durant des années sur Internet, hélas sans en conserver les liens. Veuillez m'en excuser, ou me contacter... pour toute question : [email protected] 4ème partie : Informatique et MAO 1 : Configurations MAO (1) interface audio HP monitoring stéréo microphone(s) avec entrées/sorties ou surround analogiques micro-ordinateur logiciels multipistes, d'édition, de traitement et de synthèse, plugins etc... (+ lecteur-graveur CD/DVD/BluRay) surface de contrôle clavier MIDI toutes les opérations sont réalisées dans l’ordinateur : - l’interface audio doit permettre des latences faibles pour le jeu instrumental, mais elle ne nécessite pas de nombreuses entrées / sorties analogiques - la RAM doit permettre de stocker de nombreux plugins (et des quantités d’échantillons) - le processeur doit être capable de calculer de nombreux traitements en temps réel - l’espace de stockage et sa vitesse doivent être importants - les périphériques de contrôle sont réduits au minimum, le coût total est limité SON NUMERIQUE - 4 - INFORMATIQUE 2 : Configurations MAO (2) HP monitoring stéréo microphones interface audio avec de nombreuses ou surround entrées/sorties instruments analogiques micro-ordinateur Effets logiciels multipistes, d'édition et de traitement, plugins (+
    [Show full text]
  • Institutionen För Datavetenskap Department of Computer and Information Science
    Institutionen för datavetenskap Department of Computer and Information Science Final thesis Simulation of Set-top box Components on an X86 Architecture by Implementing a Hardware Abstraction Layer by Faruk Emre Sahin Muhammad Salman Khan LITH-IDA-EX—10/050--SE 2010-12-25 Linköpings universitet Linköpings universitet SE-581 83 Linköping, Sweden 581 83 Linköping Linköping University Department of Computer and Information Science Final Thesis Simulation of Set-top box Components on an X86 Architecture by Implementing a Hardware Abstraction Layer by Faruk Emre Sahin Muhammad Salman Khan LITH-IDA-EX—10/050—SE 2010-12-25 Supervisors: Fredrik Hallenberg, Tomas Taleus R&D at Motorola (Linköping) Examiner: Prof. Dr. Christoph Kessler Dept. Of Computer and Information Science at Linköpings universitet Abstract The KreaTV Application Development Kit (ADK) product of Motorola en- ables application developers to create high level applications and browser plugins for the IPSTB system. As a result, customers will reduce develop- ment time, cost and supplier dependency. The main goal of this thesis was to port this platform to a standard Linux PC to make it easy to trace the bugs and debug the code. This work has been done by implementing a hardware abstraction layer(HAL)for Linux Operating System. HAL encapsulates the hardware dependent code and HAL APIs provide an abstraction of underlying architecture to the oper- ating system and to application software. So, the embedded platform can be emulated on a standard Linux PC by implementing a HAL for it. We have successfully built the basic building blocks of HAL with some performance degradation.
    [Show full text]
  • Implementing a Parametric EQ Plug-In in C++ Using the Multi-Platform VST Specification
    2003:044 C EXTENDED ESSAY Implementing a parametric EQ plug-in in C++ using the multi-platform VST specification JONAS EKEROOT SCHOOL OF MUSIC Audio Technology Supervisor: Jan Berg 2003:044 • ISSN: 1402 – 1773 • ISRN: LTU - CUPP - - 03/44 - - SE Implementing a parametric EQ plug-in in C++ using the multi-platform VST specification Jonas Ekeroot Division of Sound Recording School of Music in Pite˚a Lule˚aUniversity of Technology April 23, 2003 Abstract As the processing power of desktop computer systems increase by every year, more and more real-time audio signal processing is per- formed on such systems. What used to be done in external effects units, e.g. adding reverb, can now be accomplished within the com- puter system using signal processing code modules – plug-ins. This thesis describes the development of a peak/notch parametric EQ VST plug-in. First a prototype was made in the graphical audio program- ming environment Max/MSP on MacOS, and then a C++ implemen- tation was made using the VST Software Development Kit. The C++ source code was compiled on both Windows and MacOS, resulting in versions of the plug-in that can be used in any VST host application on Windows and MacOS respectively. Writing a plug-in relieves the programmer of the burden to deal directly with audio interface details and graphical user interface specifics, since this is taken care of by the host application. It can thus be an interesting way to start developing audio DSP algorithms, since the host application also provides the op- portunity to listen to and measure the performance of the implemented plug-in algorithm.
    [Show full text]
  • Libreoffice 10Th Anniversary Digital Sovereignty & Open
    LibreOffice 10th Anniversary Digital Sovereignty & Open Document Standards Italo Vignoli 10 Years / 20 Years July 19, 2000: Sun announces OpenOffice.org Sept 28, 2010: OpenOffice.org community announces LibreOffice Timeline 35 years since Marco Börries releases the first version of StarWriter in 1985 2009: Oracle acquires Sun OpenOffice vs LibreOffice SEPTEMBER 28, 2010 OpenOffice.org Community announces The Document Foundation The community of volunteers developing and promoting OpenOffice.org sets up an independent Foundation to drive the further growth of the project The brand "LibreOffice" has been chosen for the software going forward Gamalielsson, J. and Lundell, B. (2011) Open Source communities for long-term maintenance of digital assets: what is offered for ODF & OOXML?, in Hammouda, I. and Lundell, B. (Eds.) Proceedings of SOS 2011: Towards Sustainable Open Source, Tampere University of Technology, Tampere, ISBN 978-952-15-2718-0, ISSN 1797-836X. LibreOffice 3.3 at FOSDEM 2011 Roadmap to the Future … • Time based, six-monthly release train … • Synchronised with the Linux distributions cadence • i.e. a normal Free Software project • Rapid fire, (monthly) bug-fix release on stable branch The Document Foundation The Document Foundation Founding Principles COPYLEFT LICENSE NO CONTRIBUTOR AGREEMENT MERITOCRACY COMMUNITY GOVERNANCE VENDOR INDEPENDENCE LibreOffice Main Asset Incredible Easy Hacks Huge Mentoring Effort 100 200 300 400 500 600 0 Sep 10 Oct 10 Nov 10 CumulativeNumber of LibreOffice New Code Committers New Hackers New Dec
    [Show full text]