Installing Fedora

The first step is to install Fedora 8 itself. You can download cdrom or dvd images from the main Fedora site at RedHat or one of its mirrors. Or you can use the re-spins from the Fedora Unity project which include more up to date packages and will save you a lot of downloads later.

Regardless of which dvd or cdrom you use, make sure you upgrade to the latest security and functionality upgrades before proceeding. Run this (as root) from a terminal if you have not yet upgraded:

yum upgrade

It could take a long time to download and install all the upgrades...

Installing the Planet CCRMA package signature

All packages in the Fedora 8 Planet CCRMA repositories are signed (that is, rpm will know if the package has been altered if you have the proper signature installed).

First install the GPG signature key for Planet CCRMA, if you are connected to the Internet just do:

rpm --import http://ccrma.stanford.edu/planetccrma/RPM-GPG-KEY.planetccrma.txt

Adding the Planet CCRMA repositories

You now need to add the proper urls to your Yum configuration files so that it can access the Planet CCRMA repositories.

Type this to install configuration files for Yum that will enable it to access the Planet CCRMA repositories (this works for both i386 and x86_64 architectures):

rpm -Uvh http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/8/i386/planetccrma-repo-1.0-3.fc8.ccrma.noarch.rpm

Installing the low latency kernel

Planet CCRMA provides a version of the Linux kernel that includes the realtime preemption patches by Ingo Molnar. While the stock Fedora kernels will also work for non-critical audio work the realtime preemption patches are pretty much a requirement for reliable behavior at low latencies.

Fedora, by default, only keeps the last two installed kernels. As the realtime kernels are more experimental than the stock Fedora kernel it is wiser to keep all versions until you decide it is time to erase them (after testing that a new kernel actually works).

To change this edit /etc/yum.conf and modify the installonly_limit option to read:

installonly_limit=0

NOTE: we are not installing the kernels directly. There's a reason. The planetccrma-core package is empty but it requires all the actual packages needed, and with the proper versions. The core packages include the patched kernel itself, a startup script that reorders the priority of the interrupt handling to favor the sound cards and several components of the ALSA system.

So, go ahead and install the Planet realtime kernel:

yum install planetccrma-core

Testing the new kernel

At this point you can cross your fingers and reboot the machine. At the grub prompt press any key to access the boot menu and then select the kernel you want to try (the Planet CCRMA kernel, if it was the last kernel installed it should be the default).

If at any time you want or need to change the default boot kernel you can edit the /boot/grub/grub.conf file and changing the ``default= line to point to the kernel you want to boot by default. Kernels are zero base indexed, ``0 being the first in the list of kernels that follows the default line. Depending on how many kernels you just installed, and which one you want to boot by default, the ``default= line should read ``0 or ``1''.

Installing applications

You are done with the hard stuff. At this point you have a machine that has a low latency kernel and it is booting happily.

Now you have to install the actual applications and start having fun!

One way to do this is to just go ahead and browse through the web pages of the Planet CCRMA repoview for i386 (or here for the Planet CCRMA Core components). Or the Planet CCRMA repoview for x86_64 (or here for the Planet CCRMA Core components)

The planetccrma-apps meta-package is not yet available for Fedora 8... be patient...

Good luck in your explorations of the musical world hosted on Linux! Be patient, if you are coming from other operating systems there is a new world to learn and discover. Getting to know it is rewarding but it will take time.

NOTE: for Fedora >= 5 the installs use yum instead of apt, in the instructions that follow that install packages, wherever you see 'apt-get install' you should substitute 'yum install'. Sorry for the inconvenience of confusing docs...

Release Notes

Packages or subsystems that are different from the stock Fedora ones:

1. Kernel the Planet CCRMA realtime kernel (kernel-rt) is patched with Ingo Molnar's realtime preemption patch, configured with its most aggressive option (CONFIG_PREEMPT_RT). This ensures that Jack will be able to use very low latencies with a low risk of dropouts and glitches. But this kernel is less stable than the stock kernel and may not even boot with certain hardware configurations. Please let Ingo know if you are hitting problems.

Another important difference with the stock Fedora kernel is that the Planet CCRMA kernel uses the old firewire driver stack, the newer ``juju stack in the Fedora kernel has problems with firewire soundcards. This requires a newer version of libraw1394 without the ``juju patches as well.

2. libraw1394 the libraw1394 library provides direct access to the IEEE-1394 bus and is needed by the Jack freebob driver. the Planet CCRMA version does not include the ``juju'' stack patches and is only compatible with the Planet CCRMA realtime kernels.

3. Jack Audio Connection Kit Planet CCRMA includes a newer version of the Jackd sound server. It includes:

  • runtime optimization for using vector instructions in CPUs that support them
  • resets /etc/security/limits.conf so that all users have access to realtime scheduling and memory locking
  • enables access to the raw1394 devices so that freebob devices work out of the box
  • runs the jackd realtime threads at the proper priority that matches the realtime kernel and rtirq tuned priorities (higher than the default used in Fedora's version of Jack).

http://ccrma.stanford.edu/planetccrma/software/installplaneteight.html

Applications disponibles audio :

  • PVC - Phase Vocoder signal processing routines
  • aeolus - Aeolus, a synthesized pipe organ
  • aliki - Impulse response measurement system
  • ambdec - Ambisonics decoder
  • ams - Realtime modular synthesizer
  • ats - Spectral modeling system
  • audicle - Experimental ChucK programming environment
  • avifile - Library used to play AVI streams
  • bitmeter - Jack audio sample analysis tool
  • brutefir - Generic FIR filter (convolution) engine
  • cheesetracker - Posrtable Impulse Tracker clone
  • chuck - Real-time audio synthesis and graphics/multimedia language
  • clam-annotator - Visualization and modification tool for audio
  • clam-networkeditor - CLAM Network Editor
  • clam-smstools - CLAM SMS tools
  • ecasound - ecasound - multitrack audio processing tool
  • ecasound-devel - Ecasound - development files
  • fluid-soundfont - Fluid soundfont
  • freqtweak - Realtime audio frequency spectral manipulation
  • fweelin - Live looping instrument
  • fxload - EZ-USB firmware downloader
  • galan - Modular synthesiser - drum-machine - sequencer - effects-unit
  • gmorgan - MIDI organ with full auto-accompaniment
  • hydrogen-drumkits - Additional DrumKits for the Hydrogen drum machine
  • jaaa - Jack and ALSA Audio Analyser
  • jace - Jack and ALSA Convolution Engine
  • jack-audio-connection-kit - the Jack Audio Connection Kit
  • jack-audio-connection-kit-example-clients - Example clients that use Jack
  • jackmix - A Jack based mixer application
  • jacktrip - Multimachine jam sessions over the internet
  • jamin - JACK Audio Connection Kit (JACK) Audio Mastering interface
  • japa - Jack and ALSA Perceptual Audio Analyser
  • jdelay - Jack utility to measure latency of soundcards
  • jmess - A utility to save your Jack audio connections (mess)
  • jnoise - Jack utility that generates white and pink noise
  • kmidimon - ALSA MIDI monitor
  • libecasoundc - Ecasound - libecasoundc
  • libmpeg3-utils - Utilities from libmpeg3
  • linuxsampler - Linux Sampler
  • mcontrol - MIDI controller message router
  • meterbridge - Software meterbridge for Jack
  • miniaudicle - Light weight ChucK development environment
  • muse - Midi/Audio Music Sequencer
  • pd - Real-time patchable audio and multimedia processor.
  • pd-boids - 2D and 3D boids flocking algorithm
  • pd-bsaylor - signal objects
  • pd-corelibs - core libraries stripped out of Pd
  • pd-creb - creb
  • pd-cxc - cxc pd eternals library
  • pd-cyclone - a library for porting and running Max/MSP patches in Pd
  • pd-deljoin - List join with delimiter
  • pd-delsplit - List split with delimiter
  • pd-ekext - ekext
  • pd-ext13 - ext13
  • pd-extended - Pd extended
  • pd-extended-extra - Pd extended extra externals
  • pd-fftease - A set of Live Spectral Processors for Pd
  • pd-flatspace - flatspace
  • pd-flext - C++ layer for Max/MSP and pd (pure data) externals
  • pd-flib - library for feature extraction
  • pd-fluid - fluid~ - fluidsynth external for PD and Max/MSP
  • pd-freeverb - freeverb
  • pd-gem - GEM (Graphics Environment for Multimedia)
  • pd-ggee - GGEE is a library of pd externals written by Guenter Geiger.
  • pd-gyre - audio loop framework
  • pd-hardware - objects for working with hardware sensor boxes
  • pd-hcs - hcs
  • pd-hid - hid
  • pd-iem_ambi - calculate ambisonic encoder matrices rotation matrices and decoder matrices from 1st to 4th order in 2D or 3D.
  • pd-iem_bin_ambi - calculate the product of an ambisonic decoder-matrix and the binaural HRIR's (in frequency and in time domain)
  • pd-iemlib - a collection of objects written at IEM/KUG
  • pd-jasch_lib - jacsch_lib
  • pd-jmmmp - jmmmp
  • pd-keyboardkeys - objects for using keyboard keys for scrolling and selecting
  • pd-la-kitchen - a collection of objects working with sensors
  • pd-list-abs - a collection of objects for manipulating lists. Requires pd>
  • pd-mapping - objects for mapping data to control
  • pd-markex - markex
  • pd-maxlib - maxlib
  • pd-memento - a collection of objects for managing state saving
  • pd-mjlib - mjlib
  • pd-motex - motex
  • pd-mrpeach - mrpeach
  • pd-msd - msd - Mass Spring Damper modeling
  • pd-nqpoly - nqpoly
  • pd-nusmuk - a collection of objects for physical modelling
  • pd-oscx - objects for working with OpenSoundControl
  • pd-pan - pan
  • pd-parazit - parazit
  • pd-pddp - support objects for the Pure Data Documentation Project
  • pd-pdogg - objects for reading, writing, and streaming ogg
  • pd-pdp - pdp
  • pd-pidip - PiDiP is Definitely in Pieces
  • pd-pixeltango - objects for creating visuals in a live performance setting
  • pd-pmpd - Physical Modelling for Pd
  • pd-pool - Store and retrieve key/value pairs
  • pd-purepd - existing objects reimplemented in Pd
  • pd-rradical - rradical
  • pd-rtc-lib - rtc-lib
  • pd-sigpack - sigpack
  • pd-smlib - vector processing, vector analysis, vector synthesis, number stream analysis, number stream filters
  • pd-syncgrain - Synchronous granular synthesis external for PD
  • pd-toxy - objects for working with Tcl and Pd's Tk GUI
  • pd-unauthorized - GUI and streaming objects
  • pd-unauthorized-mp3 - mp3 objects
  • pd-vasp - Non-realtime array-based audio data processing for Pd
  • pd-vbap - Vector Based Amplitude Panning
  • pd-xsample - Extended sample objects for Max/MSP and PD
  • pd-zexy - GUI and streaming objects
  • pmidi - A Command Line MIDI Player Through the ALSA Sequencer.
  • pyecasound - Python bindings to ecasound control interface.
  • qarecord - Recorder for ALSA and Jack
  • qmidiarp - Midi Arpegiator
  • qmidicontrol - Virtual Midi Fader Box
  • qmidiroute - MIDI router and filter utility
  • qsampler - LinuxSampler GUI front-end
  • rezound - ReZound is a sound file editor and recorder
  • rubyecasound - Ruby bindings to ecasound control interface.
  • snd - A sound editor (%{version}, "11/08/2007")
  • snd-gtk - Gtk version of snd (9.5, "11/08/2007")
  • snd-motif - Motif version of snd (9.5, "11/08/2007")
  • snd-utils - Sndplay and friends (Snd 9.5, "11/08/2007")
  • sndpeek - 3D animated time domain, fft, waterfall, etc display
  • sonic-visualiser - Sound visualization and annotation program
  • sooperlooper - Realtime software looping sampler
  • soundfontcombi - Midi router
  • specimen - A midi controlled audio sampler
  • supercollider - Object oriented programming environment for real-time audio and video processing
  • supercollider-ambiem - Ambisonics rendering system
  • supercollider-bbcut2 - Beat tracking of audio streams
  • supercollider-beqsuite - Josh Parmenter's BiQuad filter suite
  • supercollider-beqsuite-ugens - SuperCollider equalization suite
  • supercollider-bhob-ugens - bhob SuperCollider UGens
  • supercollider-blackrain-ugens - Blackrain's SuperCollider UGens
  • supercollider-dewdrop - DewDrop external collection for Supercollider
  • supercollider-freeverb - Freeverb for SuperCollider
  • supercollider-gverb - GVerb for SuperCollider
  • supercollider-josh-ugens - Josh's SuperCollider UGen collection
  • supercollider-joshlib - Josh Parmenter's SC3 unit generators
  • supercollider-joshpv-ugens - Josh's SuperCollider Phase Vocoder UGens
  • supercollider-ljpc-classes - ljpc SuperCollider class collection
  • supercollider-mathlib - SuperCollider Library
  • supercollider-mcld-ugens - MCLD SuperCollider Ugen collection
  • supercollider-midifile - MIDI file reader for SuperCollider
  • supercollider-redclasses - Fredrik Olofsson Red SuperCollider classes
  • supercollider-reverb-ugens - Freeverb and Gverb SuperCollider UGens
  • supercollider-scum - SuperCollider graphical user interface server
  • supercollider-stk-ugens - STK SuperCollider UGens
  • supercollider-swingosc - Open Sound Control Java server
  • supercollider-world - SuperCollider world packages
  • swami - Soundfont editor
  • tapestrea - Set of new tools and techniques for sound design
  • tapiir - Software Multitap Delay
  • timemachine - Utility to constantly record the last ten seconds of audio
  • traverso - Multitrack audio recording and editing suite
  • xjadeo - Very simple video player that gets sync from Jack
  • yass - Yet Another Scrolling Scope

et bien d'autres....