{"id":13437136,"url":"https://github.com/njh/rotter","last_synced_at":"2025-03-17T16:30:34.021Z","repository":{"id":1021968,"uuid":"849774","full_name":"njh/rotter","owner":"njh","description":"Rotter is a Recording of Transmission / Audio Logger for JACK.","archived":false,"fork":false,"pushed_at":"2021-07-29T23:03:45.000Z","size":167,"stargazers_count":49,"open_issues_count":13,"forks_count":10,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-04-14T04:25:59.852Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.aelius.com/njh/rotter/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/njh.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-08-19T20:53:52.000Z","updated_at":"2024-04-03T12:39:23.000Z","dependencies_parsed_at":"2022-08-16T11:50:26.540Z","dependency_job_id":null,"html_url":"https://github.com/njh/rotter","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2Frotter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2Frotter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2Frotter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2Frotter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njh","download_url":"https://codeload.github.com/njh/rotter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243871094,"owners_count":20361304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:00:54.571Z","updated_at":"2025-03-17T16:30:33.608Z","avatar_url":"https://github.com/njh.png","language":"C","funding_links":[],"categories":["Monitoring \u0026 Quality Control"],"sub_categories":[],"readme":"Rotter\n======\nNicholas J. Humfrey\n\nFor the latest stable version of Rotter, please see:\nhttp://www.aelius.com/njh/rotter/\n\n\nWhat is Rotter ?\n----------------\n\nRotter is a [Recording of Transmission] / Audio Logger for [JACK]. It was\ndesigned for use by radio stations, who are legally required to keep\na recording of all their output. Rotter runs continuously, writing to\na new file every at regular intervals (typically every hour).\n\nRotter can output files in various different structures, either all files\nin a single directory or create a directory structure:\n\n    flat:      /root_directory/YYYY-MM-DD-HH.suffix\n    hierarchy: /root_directory/YYYY/MM/DD/HH/archive.suffix\n    combo:     /root_directory/YYYY/MM/DD/HH/YYYY-MM-DD-HH.suffix\n    dailydir:  /root_directory/YYYY-MM-DD/YYYY-MM-DD-HH.suffix\n    accurate:  /root_directory/YYYY-MM-DD/YYYY-MM-DD-HH-mm-ss-uu.suffix\n\nThe advantage of using a folder hierarchy is that you can store related\nfiles in the hour's directory. The \"accurate\" structure stores the\nstart time of the hourly file to an accuracy of one hundredth of a\nsecond.\n\nThere is also an option to write to a custom layout using strftime() the\nbased string format.\n\n\n\nUsage\n-----\n\n    Usage: rotter [options] \u003croot_directory\u003e\n       -a            Automatically connect JACK ports\n       -l \u003cport\u003e     Connect the left input to this port\n       -r \u003cport\u003e     Connect the right input to this port\n       -f \u003cformat\u003e   Format of recording (see list below)\n       -b \u003cbitrate\u003e  Bitrate of recording (bitstream formats only)\n       -Q \u003cquality\u003e  VBR quality, for formats that support it (0 lowest, 10 highest)\n       -c \u003cchannels\u003e Number of channels\n       -n \u003cname\u003e     Name for this JACK client\n       -N \u003cfilename\u003e Name for archive files (default 'archive')\n       -O \u003cname\u003e     Originator (artist) name for metadata (default is hostname)\n       -p \u003csecs\u003e     Period of each archive file (in seconds, default 3600)\n       -d \u003chours\u003e    Delete files in directory older than this\n       -R \u003csecs\u003e     Length of the ring buffer (in seconds, default 2.00)\n       -L \u003clayout\u003e   File layout (default 'hierarchy')\n       -j            Don't automatically start jackd\n       -u            Use UTC rather than local time in filenames\n       -v            Enable verbose mode\n       -q            Enable quiet mode\n\n    Supported file layouts:\n       flat          /root_directory/YYYY-MM-DD-HH.suffix\n       hierarchy     /root_directory/YYYY/MM/DD/HH/archive.suffix\n       combo         /root_directory/YYYY/MM/DD/HH/YYYY-MM-DD-HH.suffix\n       dailydir      /root_directory/YYYY-MM-DD/YYYY-MM-DD-HH.suffix\n       accurate      /root_directory/YYYY-MM-DD/YYYY-MM-DD-HH-mm-ss-uu.suffix\n\n    A custom file layout may be specified using a strftime-style format string,\n    for example: -L \"%Y-%m-%d/studio-1/%H%M.flac\"\n\n    Supported audio output formats:\n       mp3           MPEG Audio Layer 3   [Default]\n       mp2           MPEG Audio Layer 2\n       aiff          AIFF (Apple/SGI 16 bit PCM)\n       aiff32        AIFF (Apple/SGI 32 bit float)\n       au            AU (Sun/Next 16 bit PCM)\n       au32          AU (Sun/Next 32 bit float)\n       caf           CAF (Apple 16 bit PCM)\n       caf32         CAF (Apple 32 bit float)\n       flac          FLAC 16 bit\n       vorbis        Ogg Vorbis\n       wav           WAV (Microsoft 16 bit PCM)\n       wav32         WAV (Microsoft 32 bit float)\n\n\nExample Run\n-----------\n\n    rotter -a -f mp3 -d 1000 -b 128 -v /var/achives\n    [DEBUG]  Wed Jun 21 22:54:19 2006  Root directory: /var/archives\n    [INFO]   Wed Jun 21 22:54:19 2006  JACK client registered as 'rotter'.\n    [DEBUG]  Wed Jun 21 22:54:19 2006  Size of the ring buffers is 2.00 seconds (352800 bytes).\n    [INFO]   Wed Jun 21 22:54:19 2006  Encoding using liblame version 3.96.1.\n    [DEBUG]  Wed Jun 21 22:54:19 2006    Input: 44100 Hz, 2 channels\n    [DEBUG]  Wed Jun 21 22:54:19 2006    Output: MPEG-1 Layer 3, 160 kbps, Joint Stereo\n    [INFO]   Wed Jun 21 22:54:19 2006  Connecting 'alsa_pcm:capture_1' to 'rotter:left'\n    [INFO]   Wed Jun 21 22:54:19 2006  Connecting 'alsa_pcm:capture_2' to 'rotter:right'\n    [INFO]   Wed Jun 21 22:54:19 2006  Starting new archive file: /var/archives/2006/06/21/22/archive.mp3\n    [DEBUG]  Wed Jun 21 22:54:19 2006  Opening MPEG Audio output file: /var/archives/2006/06/21/22/archive.mp3\n    [INFO]   Wed Jun 21 23:00:00 2006  Starting new archive file: /var/archives/2006/06/21/23/archive.mp3\n    [DEBUG]  Wed Jun 21 23:00:00 2006  Closing MPEG Audio output file.\n    [DEBUG]  Wed Jun 21 23:00:00 2006  Opening MPEG Audio output file: /var/archives/2006/06/21/23/archive.mp3\n\nStart logging audio to hourly files in /var/archives.\nRotter will automatically connect itself to the first two JACK output ports\nit finds and encode to MPEG Layer 3 audio at 128kbps. Each hour it will\ndelete files older than 1000 hours (42 days). Verbose mode means it will\ndisplay more informational messages.\n\n\n\n[Recording of Transmission]:  http://en.wikipedia.org/wiki/Recording_of_transmission\n[JACK]:  http://jackaudio.org/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjh%2Frotter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjh%2Frotter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjh%2Frotter/lists"}