Airchecker v1.6 is a web-managed audio recording engine designed for radio stations, podcasters, and broadcast facilities.
Download Airchecker v1.6 Learn More
Built for seamless broadcast integration.
Supports AudioScience (ASI) cards to bypass the Windows mixer, alongside modern WASAPI (WheatNet-IP, Dante, Livewire) and legacy DirectSound drivers.
Automate your recordings directly from your console. Native integration with Wheatstone WheatNet-IP (SLIOs) and Serial COM integration for Broadcast Tools (GPI-16/24). System-agnostic triggering supported via customizable TCP string triggers.
Save storage space with modern OPUS and VORBIS (.ogg) compression, or maintain maximum compatibility with standard MP3 and lossless Linear WAV formats.
Record 24/7 with automatic hourly file splitting, limit recordings to specific days/hours, or use dynamic GPI window logic to record only when triggered during scheduled shows.
Monitor live channel VU meters, trigger logic states, and system diagnostic logs remotely via a web dashboard*.
Cut your storage footprint in half with Stereo-to-Mono downmixing.
Easily configure unlimited** virtual recording channels. Assign custom input devices, set your desired compression type and bitrate, and monitor audio levels with dynamic, real-time VU meters directly in your browser.
Link physical events to your audio logger. Configure Wheatstone WheatNet-IP SLIOs, Broadcast Tools GPI's via serial communication or allow generic TCP connections for generic string monitoring. Configure the hardware connection and logic, name them, and map them to start/stop any recording channel automatically.
Never guess if your triggers are working. The GPI Status tab provides visual badge indicators for every SLIO, physical input pin, or configured TCP string monitor. Plus, view the raw background processing logs in real time.
Requires Windows 10/11 or Windows Server 2016+.
Airchecker is free to download and use. Planning, Installation and Technical Support are available as paid services as needed.
Added a setting to turn off ASI Device Enumeration. On systems not using an ASI card this will skip the GetAsiDevices() function in the AudioDeviceEnumerator and suppress the error messages when asihpi64.dll is not found.
Corrected NullReferenceException at startup on first run/when no configuration file exists.
Interface improvements to better support smaller screens. Changed language on from "Trigger/Record Delay" to "Trigger/Record Offset" to better indicate how this feature works.
Added SMTP Configuration fields to GlobalSettings and added EmailManager Class. Critical Alert storage threshold will now trigger an email alert for monitored drives if SMTP is configured.
Added a real-time live monitor for record channels. Data inside the OnAudioDataAvailable routine gets forked to prevent any interference with recording. Raw audio chunks get cloned and pushed to a thread-safe concurrent queue dedicated to the browser/client connection. Instead of using high-latency streaming streaming protocols, which introduce encoding delays, we can stream the raw audio blocks using a chunked HTTP connection to the browser's native Web Audio API. This provides very low latency monitoring but uses more bandwidth ~ 0.77Mbps - 3.07Mbps depending on channel type (shouldn't be a problem as traffic is intended for internal network).
Added secondary protection to PruneDriveBalanced routine to only allow automated purging of .wav, .mp3 and .ogg files.
Added DriveStorageConfig.CriticalThresholdGB to StorageManagementService in case automated purging fails or Minimum retention prevents enough clean up... this will trigger email alerts in later builds once SMTP module is tested and server configuration added to global settings.
Added Minimum File Retention Setting (DriveStorageConfig.MinAgeRetentionDays) to prevent deletion of X days regardless of free space thresholds.
Added DriveStorageConfig and StorageManagementService Class to monitor disk usage and automate balanced purging of record channel paths.
ProfanityDelaySeconds and ProfanityTriggerSources settings added. When a profanity delay is configured on a channel and a trigger source is assigned the channel will add that delay to the recording start/stop timing only when the trigger is active.
Fixed input enumeration in BroadcastToolsListener preventing detection of closures above input 16. Now allows for dynamic range and in theory should work with any BTS GPI device.
Fixed network adapter binding/IP access restriction mechanism.
Added LogRetentionDays and BackupRetentionDays to Public Class GlobalSettings. PruneExpiredLogs() will remove expired logs checking every 12 hours triggered by the ConsoleLogger->WriteLine subroutine. ConfigBackupService->ExecuteAsync will remove old backup at the same time automated backups occur.
Fixed Active Config console. (Scrubs encrypted passwords from config display).
Added SanitizeConfig(updatedConfig) as a safety net for bad data/negative values. These have been guarded against in the web configuration but this is a double check in case a bad value was manually introduced in to the json file.
Added option to delete a manual backup.
Made page header sticky so commit button and settings tabs are always visible.
Made "AudioScience (ASI) Hardware Routing Notice" and "Audio Format & Bitrate Deployment Guide" on Record Channels tab collapsable so they don't take up space unless being read.
Corrected "No hardware triggers are currently enabled" text.
Added multi-client automation agnostic asynchronous TCP Server to catch user defined start/stop strings from any automation system/client.
Added web based configuration of web server settings instead of manual editing of config.json at /admin or /admin.html Default password created on first run is 'your_secure_password'
Add Livewire GPI Triggering via Livewire Routing Protocol.
Right now the profanity delay option simply adds the offset time of the delay when the selected trigger(s) are active. Might be edge cases where a mic is opened while a delay is ramping up or down... best way to handle this?
Trigger SMTP email notifications for recording errors and hardware disconnects. Add a zero byte (or small file) watchdog to detect potential issues.
Check real-time VU thresholds to detect dropped streams or dead air. Trigger SMTP email notifications if thresholds break for a user-defined duration.
Add automatic podcast assembly option? Could use FFmpeg Concat Demuxer to quick stitch files without re-encoding depending on source format or depending on source formats stitch and re-encode to required output.
Add ability to customize the folder structures and file naming design. Might complicate automatic podcast assembly.
Add API Key Generation and /api/status endpoint for external monitoring?
Could have FFmpeg push output to an external icecast stream.
Add input adjustment sliders to each record channel. Not sure this is needed might add extra cpu usage to process sample arrays through a multiplication step on arrival to attenuate or boost input levels. This is probably better handled by the Windows mixer, ASI Control or adjustment of the input signal. Possible could tie the sliders in to the Windows Mixer Control or ASI Mixer.
In some rare situations a reboot such as that caused by a Windows Update will cause the service to loop while trying to continue with recordings. This prevents or slows down the Windows shutdown procedure. While stuck in the loop a large number of 1KB files get created for active record channels. The problem seems to be that the windows audio service shuts down before Airchecker so the service was modified to add a dependency on the windows audio service so it should shutdown with that service but needs more testing to confirm the fix.
Add file metadata to supported formats so recording information will be retained regardless of filename adjustments.
Airchecker Web Server (1.5) - User option to transcribe files. Add AI API call.
Automate backups. The moment an audio chunk is finalized and split, push the clip to a remote FTP/SFTP storage system or an Amazon S3 cloud bucket.