Skip to main content

🎙 recs: the Universal Recorder 🎙

Project description

🎬 recs: the Universal Recorder 🎬

Why should there be a record button at all?

A long time ago, I asked myself, "Why is there a record button and the possibility of missing a take? Why not record everything?"

I sometimes play music, and I have mixed bands live, and I wanted a program that would simply record everything at all times which I didn't have to stop and start, that I could run completely separately from my other music programs.

Separately, I wanted to digitize a huge number of cassettes and LPs, so I wanted a program that ran in the background and recorded everything except silence, so I just play the music into the machine, and have it divided into pieces

Nothing like that existed so I wrote it.

recs: the Universal Recorder

recs records any or every audio input on your machine, intelligently filters out quiet, and stores the results in named, organized files.

Free, open-source, configurable, light on CPU and memory, and bulletproof

Bulletproof?

It's not difficult to record some audio. Writing a program that runs continuously and records audio even as real-world things happen is considerably harder.

It is impossible to prevent all loss, but considerable ingenuity and pulling of cables has been used to mitigate and minimize this through software. See Appendix A.

Universal?

It is a "Universal Recorder" because I plan to be able to record all streams of data in some coherent way.

I have already written code to do this for MIDI and DMX and I'll be folding that in in due time, but most of the difficulty and most of the value in this first step is the audio, so I have focused on just audio for this first release!

It might be that video is also incorporated in the far future, but the tooling is just not there for Python yet, and it would be much too heavy to sit in the background all the time and almost be forgotten about, so you could call it an Almost Universal Recorder if you liked.

Installation

Use

Usage

Appendix A: Failure modes

  1. Hardware crash or power loss
  2. Segfault or similar C/C++ errors

The aim is to be as bulletproof as possible. The pre-beta existing as I write this (2023/11/19) seems to handle harder cases like hybernation well, and can detect if a device goes offline and report it.

The holy grail is reconnecting to a device that comes back online: this is an unsolved problem in Python, I believe, but I am on my way to solving it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

recs-0.2.0.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

recs-0.2.0-py3-none-any.whl (28.6 kB view details)

Uploaded Python 3

File details

Details for the file recs-0.2.0.tar.gz.

File metadata

  • Download URL: recs-0.2.0.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.0 CPython/3.10.11 Darwin/21.6.0

File hashes

Hashes for recs-0.2.0.tar.gz
Algorithm Hash digest
SHA256 920c3eb4cdc256d9ad1931b82af5affdba0c94968ac39a6cc4a0fbe9fcdddfb4
MD5 09b86ce62adddc80052cbb57f50312a5
BLAKE2b-256 9b4fd8d563200c4d1a1548d715080c1199240d9fe9b58a75b846a9c8c66931a9

See more details on using hashes here.

File details

Details for the file recs-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: recs-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 28.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.0 CPython/3.10.11 Darwin/21.6.0

File hashes

Hashes for recs-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f22236b3ff6913a5b477e392ec2e41d922f4de26ba847727fa325423baa09482
MD5 b5f58583f0f7a4c66e88ff35067c7c67
BLAKE2b-256 a3558dd44f6519cd4e7cbdefaec7b1b0c3b31ecd8126f038c76ccb6b85672d69

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page