<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atracdenc/src/yaml_log.h, branch master</title>
<subtitle>OpenSource ATRAC1 ATRAC3 Encoder</subtitle>
<id>https://code.mastervirt.ru/atracdenc/atom?h=master</id>
<link rel='self' href='https://code.mastervirt.ru/atracdenc/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/'/>
<updated>2026-05-08T22:12:48Z</updated>
<entry>
<title>Use gain energy scale for ATRAC3 allocation</title>
<updated>2026-05-08T22:12:48Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-08T22:12:48Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=a57dab0fa16bb48972405ca861f6bfd7059b80b8'/>
<id>urn:sha1:a57dab0fa16bb48972405ca861f6bfd7059b80b8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>atrac3: add YAML gain control debug logging (--yaml-log)</title>
<updated>2026-04-08T21:33:40Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-03-16T17:14:19Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=901974b3aa5045226201c710da13a8365a7bf1c8'/>
<id>urn:sha1:901974b3aa5045226201c710da13a8365a7bf1c8</id>
<content type='text'>
Inspired by edge264's YAML logging approach (FOSDEM 2026): emit every
gain control decision as a self-contained YAML stream so any frame can
be grep'd, analyzed with Python, or used to craft custom test curves.

  ./atracdenc -e atrac3 -i in.wav -o out.oma --yaml-log gain.yaml

Each YAML document covers one frame (frame:/time: header) with channels
and bands nested below. Per-band fields emitted in pipeline order:
  high_freq_ratio, overlap_ratio, dynamic_min_score, gain[], next_level
  pcm_qmf (256 raw QMF samples, non-modulated, non-windowed)
  curve_raw, rms_cur, rms_next_mod, point0_level, crossover
  curve_final, max_gain, ratio, level_boost, scale_boost, total_boost
  gain_boost (or skip: &lt;reason&gt; at each early-exit point)

New files / changes:
  src/yaml_log.h         - TYamlFmtGuard (stream format RAII),
                           YamlWriteFloatSeq (vector + ptr/len overloads)
  src/atrac/at3/atrac3.h - YamlLog field in TAtrac3EncoderSettings
  src/atrac3denc.h       - FrameNum counter + YamlLog pointer on TAtrac3Encoder
  src/atrac3denc.cpp     - frame header in GetLambda, incremental YAML in
                           CreateSubbandInfo at every decision point
  src/main.cpp           - --yaml-log &lt;file&gt; CLI flag

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
