C++ C Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Note: 3rd July 2017

Chronicle hasn't been updated much lately, I know. It's certainly not a dead project, I just haven't had a lot of time to work on it as this is the busy season for my work!

No, Chronicle isn't dead. It's just... napping.

Cal McLean.

What is Chronicle?

Chronicle is an audio logger, designed for radio station use.

At the moment, it records audio from specified input to an audio file, on the hour, every hour. Once the recordings have become outdated, they will be deleted. As such, it is a full rotating logger.

Getting Chronicle

Windows x32 and x64

Windows users (both 32 and 64 bit) can simply download the latest compiled binaries from the Releases page. Simply extract and run. Hooray!


With binaries

Linux users can also download the binaries. However, you will need to manually install the pre-requisites:

  • RtAudio, (librtaudio-dev)
  • libsndfile, which is in most package managers. (libsndfile1-dev)
  • Boost, which is in most package managers (libboost-all-dev).
  • ncurses, which is available in most package managers (libncurses5-dev).

Compiling from scratch

Or, you can compile chronicle from scratch. You'll also need to download the build toolchain: build-essential and pkg-config Then, download the source tarball and run make linux.

The built binary will exist in (srcdir)/build/linux.

.debs will happen soon!


chronicle [-h | --help]
chronicle [--licence]
chronicle [-l | --list-devices ]
chronicle [-d | --directory OUTPUT_DIRECTORY] [-f | --filename FORMAT] [-i | --input-device DEVICE_ID]
          [[-a | --max-age MAX_FILE_AGE] | --no-delete] [-s | --audio-format [WAV | OGG]]

    -h | --help          Prints this help message.
    --licence            Prints the licence information for this software and libraries that it uses.
    -l | --list-devices  Lists the available input devices with their IDs.
    -d | --directory     Sets the directory to save the logged audio to. A trailing slash is not required, but may
                             be added. On Windows, if using a trailing slash, use a trailing double-slash.
                             Defaults to current directory.
    -f | --format        strftime-compatible format to use when naming the audio files.
                             Defaults to %F %H%M%S .
    -i | --input-device  The ID number of the input device to record from. A list of input devices and their ID
                             numbers can be obtained with `chronicle -l`.
                             If unspecified, the system default audio recording device will be used.
    -a | --max-age       Sets the maximum age before audio files will be automatically deleted.
							 Use the format <length><unit>, where unit is < s| m | h | d > for
							 seconds, minutes, hours and days, respectively.
							 So, to specify 25 hours, pass '-a 25h' .
				             Defaults to 42 days, in accordance with OFCOM rules.
    --no-delete          If passed, Chronicle will not delete old audio files, so they can be manually managed.
		                     Incompatible with --max-age.
    -s | --audio-format Sets the audio format to use for the recorded audio files.
                             Acceptable parameters are:
                                 OGG | Ogg Vorbis (.ogg)
                                 WAV | 16-bit PCM WAV (.wav)
                             Defaults to WAV.

Known Issues:

  • Audio devices with more than 2 channels will default to the first two channels. This is perfectly suitable for standard line-in/mic-in audio devices and sound cards where the channels are split up into pairs (which most do), but any sound card that presents multiple channels in a single device will automatically record the first two.
  • All audio is resampled to 16bit for conversion to PCM Wave. Although theoretically an issue, this is not likely to affect the vast majority of users.
  • Due to the type sizes used in the underlying audio libraries, the audio monitoring graph on the 32-bit version is less reliable at very low levels. This does not affect the quality of the recorded output.

Buy me a coffee?

If you find chronicle to be useful, fancy buying me a coffee?

I'm on Flattr and PayPal!


Copyright 2016-2017 Callum McLean. Distributed under the MIT Licence. See LICENCE for details.