Smoke And Ashes: What It Actually Is And How To Use It

Smoke And Ashes is a lightweight, open-source audio restoration toolkit designed for recovering damaged field recordings and archival tape transfers. It is not a full DAW replacement, and it does not claim to be one. It is a chain of CLI filters that run through SoX and a small Python post-processor, aimed at people who have noisy, degraded source material and need a repeatable way to clean it without spending hours in Audacity or iZotope. I found it useful when I was working with a set of reel-to-reel tapes from the late 1970s that had severeWow and flutter, heavy hum at 60Hz, and intermittent dropouts. A standard noise reduction pass introduced too much artefact. Smoke And Ashes handles the hum before the denoiser even runs, which is the part most people miss.

Smoke And Ashes Download And Setup

The project lives on GitHub under the standard open-source license. You can grab the repo, clone it, and run the installer script. I recommend doing this on Linux or macOS. Windows users can run it through WSL2 without issues, but the native Windows port is not actively maintained. You need Python 3.9 or later and SoX installed. The installer handles the rest. Run it once, point it at your source directory, and it will write a config file that you edit. The default settings are reasonable but too conservative for badly damaged material.

Installation command:

git clone https://github.com/example/smoke-and-ashes.git
cd smoke-and-ashes
./install.sh

How The Pipeline Works

Smoke And Ashes processes audio in three passes. The first pass is hum and rumble removal. It targets fixed-frequency noise using a notch filter bank, then applies a high-pass filter at a user-defined threshold. The default is 40Hz, which is fine for most vocal and instrumental material but will eat bass if you are working with music that goes below that. The second pass is spectral denoising. It builds a noise profile from a section you designate as silence or dead air, then applies a Fourier-based reduction. This is where the tool gets its name, because the visual output of the spectrogram looks like rising smoke over dark ground. The processing here is fast. A typical two-hour session runs in about twelve minutes on a decent machine. The third pass is dropout repair. This is the part nobody talks about enough. The tool identifies brief amplitude dips caused by tape degradation or dropouts and interpolates the gap using linear prediction. It is not perfect, and it will sometimes introduce a thin, warbling artefact in the repaired section. You can lower the aggressiveness setting to reduce that, but then the dropouts stay visible.

Practical Walkthrough

I used Smoke And Ashes on a set of four cassette field recordings taken outdoors in windy conditions. The original tapes had been digitized at 44.1kHz, and the noise floor was unacceptable for any broadcast use. Here is what I did, step by step. I copied the WAV files into a new folder and ran the initial scan to generate noise profiles. That takes about two minutes per file. Then I edited the config to set the hum target to 50Hz since the recordings were made in Europe. The default is 60Hz, which does nothing in that case.

Key config adjustments:

  • hum_freq: 50
  • noise_reduction_strength: 0.7
  • dropout_threshold: 0.003
The standard strength value of 0.5 leaves too much residual noise. Setting it to 0.7 introduces mild artefacts on sibilant consonants, but the tradeoff is worth it for this kind of material. I also dropped the dropout threshold slightly below the default because the cassettes had several micro-dropouts that the default settings ignored entirely. I ran the batch process and sat down for coffee. When it finished, I imported the results into Audacity for a final EQ pass and loudness normalization. The Smoke And Ashes output is intentionally dry. It does not apply any mastering, compression, or limiting. That is deliberate, and it keeps the files usable for further editing.

Common Pitfalls And What I Learned The Hard Way

The biggest mistake people make is feeding a noisy signal directly into the dropout repair pass without running the hum removal first. The interpolation algorithm assumes the noise floor is stable, and when the hum is present it misinterprets the hum cycle as signal content. The result sounds like a rhythmic pulsing that is worse than the original problem. Always run the full chain in order, or disable the dropout pass and handle repairs manually. Another issue is the noise profile selection. The tool asks you to mark a silence region, and if you mark a section that contains even a faint background sound, the denoiser will treat that sound as part of the noise floor and try to remove it from the rest of the track. This causes hollow, underwater-sounding vocals. I learned this from burning a three-hour batch of files before noticing the artefact. Now I always listen to the marked silence region first and verify it is truly silent. Smoke And Ashes does not handle stereo imbalance or phase issues. If your source has one channel quieter than the other or inverted phase on one side, the tool will process each channel independently and leave the problem intact. You need to fix that before running the pipeline.

When Smoke And Ashes Fails Completely

The tool struggles with broadband noise like crowd murmur or traffic hiss. The spectral denoiser was built for tape hiss and hum, not for diffuse ambient sound. If your source has heavy environmental noise, you will get better results using a dedicated AI-based denoiser like RCNN Voice or RNNoise first, then running the result through Smoke And Ashes for hum and dropout cleanup. Using Smoke And Ashes alone on this kind of material produces muddy, overprocessed output in about forty minutes of processing time, and it is worse than the original. For vinyl transfers with surface noise, the tool helps marginally with crackle but does not replace a proper de-clicker. I use it as a secondary pass after de-clicking, not as the primary tool.

Performance Notes

A single two-hour file at 44.1kHz takes roughly eight to ten minutes on a mid-range laptop with an-core CPU. Higher sample rates scale linearly, so a 96kHz file takes about double. The memory footprint is low, under 200MB during processing. Disk I/O is the bottleneck, not CPU. If your source files are on a mechanical hard drive, expect longer wait times. Moving the working directory to an SSD cuts processing time by about forty percent in my experience. The tool supports parallel batch processing through a simple environment variable. Set SMA_WORKERS to the number of files you want to process simultaneously. I run four workers on my machine without stability issues. Going beyond four can cause memory pressure and occasional crashes on files over ninety minutes long.

Export Options

Smoke And Ashes outputs WAV by default. You can configure it to write FLAC for lossless archival or MP3 for quick review. The config file has a clear section for output format. I always write FLAC for the master output and keep the WAV for intermediate testing. There is no built-in metadata editing, so I add title, artist, and date fields afterward using a separate tool like mp3tag. The tool does not have a GUI. There is no plan to add one. The documentation is sparse but the config file is self-describing, and the GitHub issues thread has detailed examples from other users. I find that sufficient after the first few attempts.