[RELEASE] ift.sh: An open-source, audio-aware FLAC transcoder tailored for legacy iPods and portable devices
▲ 24 r/IpodClassic+1 crossposts

[RELEASE] ift.sh: An open-source, audio-aware FLAC transcoder tailored for legacy iPods and portable devices

Hello everyone,

I would like to share a project I have been developing and refining to streamline my audio workflow: ift.sh (Intelligent FLAC Transcoder).

If you maintain a lossless FLAC library and regularly sync music to legacy hardware—such as classic Apple iPods—you have likely encountered playback instabilities. Common issues include unexpected reboots during track transitions, frame truncation, or memory crashes caused by unoptimized artwork.

I created ift.sh to eliminate these friction points by combining pre-flight audio analysis, dynamic resampling, and strict tagging standardizations into an automated CLI tool.

Key Technical Highlights:

  • Hardware-Centric Encoding Targets: Native support for Nero AAC (-nero), FDK AAC (-aac), and LAME MP3 (-mp3). The Nero AAC target is specifically optimized to prevent the frame truncation and playback crashes often triggered by legacy iPod DSPs.
  • Frequency & Volume Analysis: Analyzes mid- and high-frequency energy levels per track to dynamically assign optimal Variable Bitrate (VBR) parameters, avoiding wasted storage on acoustically simpler files.
  • Safe Resampling Pipeline: Utilizes SoX through intermediate WAV decoding steps to handle high-resolution downsampling (16-bit/44.1kHz or 48kHz) safely.
  • Cover Art Sanitization: Extracts and rescales album art to a baseline 200x200 JPEG to ensure visual compatibility while protecting low-RAM devices from memory exhaustion.
  • Metadata & Normalization: Calculates and embeds Apple iTunNORM (Sound Check) alongside standard ReplayGain tags. It also parses local .log (EAC/XLD) and .cue files to inject CD provenance metadata.
  • Interactive Pre-Flight Validation: Includes an interactive CLI prompt to verify album details, track sequences, and multi-disc tags prior to batch execution.

The script is open-source under the GNU GPLv3 license and is primarily designed for POSIX environments.

Feel free to inspect the codebase, review the full README, or try it out:

Inteligent Flac Transformer

Feedback, issue reports, and contributions are welcome.

u/Jeremias_Queiroz — 1 day ago

Workflow refinement in darktable for negatives

Hello everyone! I'm writing this post with great humility and seeking advice from more experienced users and, perhaps, developers who deeply understand the darktable color pipeline.

I'm a mid-level darktable user and consider myself well-versed in the software's tools. My current film scanning workflow is based on using VueScan, where I extract the file purely in RAW (64-bit/48-bit linear DNG/TIFF) to ensure there is absolutely no color shift or embedded processing by the scanner.

In darktable, I import this linear RAW and follow the modern (scene-based) workflow: I use Negadoctor (meticulously adjusting Dmin with film base sampling, Dmax, and film corrections) and then fine-tune and perform subsequent white balance adjustments with the Color Calibration module (using the RGB channel mixer and channel mapping). I was genuinely happy with my results... until last week. Out of curiosity, I decided to test NegPy (a Python tool for negative inversion) by feeding it the very same pure RAW files from VueScan. My mind was blown. The colors generated by NegPy, with almost no manual adjustment, were incredibly close, rich, and faithful to those I used to obtain in the photo lab—something I honestly thought impossible to achieve natively in Linux.

Intrigued by this discrepancy, I inspected NegPy's source code to understand the mathematics behind it and discovered that it operates by emulating the philosophy of a minilab scanner (like the Noritsu/Frontier logic). In short, its pipeline does the following:

  • Cast Removal: Performs a defensive channel alignment using the fixed Green channel as an anchor and adjusts the slopes of the Red and Blue channels based on the 97.5th percentile.
  • Virtual Printing (Richards Curve): It doesn't treat the image in a purely linear way; Applies an asymmetric sigmoid curve (Richards Curve) to emulate the non-linear physical compression of photographic paper (smoothing shadows and highlights).
  • Crosstalk Matrix: Applies a 3x3 correction matrix in density space to chemically separate spectral leakage from dyes (Cyan, Magenta, Yellow) before final conversion.
  • Local Sharpening/Contrast: Applies CLAHE and Unsharp Masking (USM) acting strictly on the L (Luminance) channel of the LAB space, preserving color integrity.

My dilemma:

NegPy delivers spectacular analog color science right out of the box, but being an immature tool, it completely lacks the refinement that darktable gives me (designed/parametric masks, local corrections, complex dust retouching, and non-destructive catalog management). On the other hand, getting Negadoctor close to that richness of color and chromatic separation has proven to be a Herculean task, often resulting in cold images or difficulties in balancing the histogram per channel without generating distortions.

Since processing entire rolls and generating intermediate 16-bit TIFFs between NegPy and darktable is suicidal in terms of storage and I/O time, I ask the community:

Has anyone tried to replicate this minilab emulation logic (especially the application of density dye crosstalk matrices and paper curves like Richards) within the darktable ecosystem? Is there any way to make Negadoctor behave less like a linear scientific archivist and more like a vibrant virtual analog printer?

I appreciate any insight or mathematical guidance on the modules!

Darktable Image

NegPy Image

Here is the link to the original RAW negative image:

https://we.tl/t-9xfDaGTucYb95OCz

reddit.com
u/Jeremias_Queiroz — 2 months ago

Wabi Sabi

Esse relógio eu peguei num leilão no LeilõesBr por 80 reais me parece ser um exemplar dos anos 80.

Estava parando.

Levei na relojoaria. Meu relojoeiro disse que a máquina estava perfeita e o mostradores também. Eu estava cogitando trocar a caixa dele pois ela é de latão cromado com algumas marcas, mas meu relojoeiro disse que a caixa dele estava com os vincos de vedação em perfeitas condições.

Nessa mesma época eu li sobre wabi sabi.

Resultado fiz apenas um polimento no vidro, uma boa limpeza na caixa e uma pulseira de couro discreta. Agora é um dos meus favoritos da coleção.

u/Jeremias_Queiroz — 3 months ago

Skydiver de 1999. Opinião

Garimpei esse Skydiver antigo (T205.57). Acabei de buscar da revisão.

A peça em si achei muito bonita, era o relógio que todo mundo queria ter quando eu era adolescente.

Mas parece que no meu pulso ele ficou grande d+, o que vocês me dizem?

u/Jeremias_Queiroz — 3 months ago

SKYDIVER T205-57 usado

Olá

Vale a pena comprar um SKYDIVER T205-57 de 2002 em condições de conservação mediana por 290 reais (não está particularmente bonito nem feio)?
O anúncio é daqui da minha cidade portanto não haveria custo de frete.

reddit.com
u/Jeremias_Queiroz — 3 months ago