<feed xmlns='http://www.w3.org/2005/Atom'>
<title>audio-visualizer-python/tests/data/inputfiles/test.png, branch master</title>
<subtitle>(forked from djfun) a little GUI tool to render visualization videos of audio files</subtitle>
<id>https://kj-git.com/audio-visualizer-python/atom?h=master</id>
<link rel='self' href='https://kj-git.com/audio-visualizer-python/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://kj-git.com/audio-visualizer-python/'/>
<updated>2026-01-29T19:50:29+00:00</updated>
<entry>
<title>v2.2.2 - fix flaky tests, fix UnboundLocalError in MainWindow.createNewProject (#94)</title>
<updated>2026-01-29T19:50:29+00:00</updated>
<author>
<name>Brianna Rainey</name>
</author>
<published>2026-01-29T19:50:29+00:00</published>
<link rel='alternate' type='text/html' href='https://kj-git.com/audio-visualizer-python/commit/?id=71a22c6a121d1294a05ef35020c525fa70cae2fd'/>
<id>urn:sha1:71a22c6a121d1294a05ef35020c525fa70cae2fd</id>
<content type='text'>
* search more than one filename for compName

* remove extra QVBoxLayout

* insert default components using name instead of index

* bump version 2.2.1 to 2.2.2

* tests do not use `.config` for settings
Core.storeSettings() is no longer called as a side effect any time avp.core is imported. Thus the tests use a new `initCore` method and the normal user path now relies on entering via `cli.py`. This means certain toolkit functions (e.g., ones using `FFMPEG_BIN`) no longer work if imported from a different python script, unless they call Core.storeSettings() themselves to initialize the settings.ini file

* fix UnboundLocalError in createNewProject</content>
</entry>
</feed>
c6a243a3f0b5f4f28d69084a2a'/><input type='hidden' name='showmsg' value='1'/><select name='h' onchange='this.form.submit();'>
<option value='master' selected='selected'>master</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>(forked from djfun) a little GUI tool to render visualization videos of audio files</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/audio-visualizer-python/about/'>about</a><a href='/audio-visualizer-python/'>summary</a><a href='/audio-visualizer-python/refs/?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a'>refs</a><a class='active' href='/audio-visualizer-python/log/src/toolkit/ffmpeg.py?showmsg=1&amp;follow=1'>log</a><a href='/audio-visualizer-python/tree/src/toolkit/ffmpeg.py?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a'>tree</a><a href='/audio-visualizer-python/commit/src/toolkit/ffmpeg.py?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a&amp;follow=1'>commit</a><a href='/audio-visualizer-python/diff/src/toolkit/ffmpeg.py?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a&amp;follow=1'>diff</a><a href='/audio-visualizer-python/stats/src/toolkit/ffmpeg.py'>stats</a></td><td class='form'><form class='right' method='get' action='/audio-visualizer-python/log/src/toolkit/ffmpeg.py'>
<input type='hidden' name='id' value='a12be862e22bdec6a243a3f0b5f4f28d69084a2a'/><input type='hidden' name='showmsg' value='1'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/audio-visualizer-python/log/?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a&amp;ofs=55&amp;showmsg=1&amp;follow=1'>root</a>/<a href='/audio-visualizer-python/log/src?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a&amp;ofs=55&amp;showmsg=1&amp;follow=1'>src</a>/<a href='/audio-visualizer-python/log/src/toolkit?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a&amp;ofs=55&amp;showmsg=1&amp;follow=1'>toolkit</a>/<a href='/audio-visualizer-python/log/src/toolkit/ffmpeg.py?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a&amp;ofs=55&amp;showmsg=1&amp;follow=1'>ffmpeg.py</a> (<a href='/audio-visualizer-python/log/src/toolkit/ffmpeg.py?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a&amp;ofs=55&amp;showmsg=1'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/audio-visualizer-python/log/src/toolkit/ffmpeg.py?id=a12be862e22bdec6a243a3f0b5f4f28d69084a2a&amp;ofs=55&amp;follow=1'>Collapse</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr class='logheader'><td><span title='2022-05-05 20:53:52 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/src/video_thread.py?id=5cc3738ec71815f48bc498ee94c88ba04ae4606d&amp;follow=1'>move more createVideo work into its own methods</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-99</span>/<span class='insertions'>+116</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
rename renderFrame to frameRender for consistency with components


</td></tr>
<tr class='logheader'><td><span title='2022-05-05 20:29:13 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/src/video_thread.py?id=3041fcac0ed74bef039ef7ccade786ff969f5154&amp;follow=1'>move "determine audio duration" into its own method</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-21</span>/<span class='insertions'>+27</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-05-05 20:28:12 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/src/__init__.py?id=19ce98c16b54bbf0b636bd1c8a468b8f9f3d1d11&amp;follow=1'>change version number</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-05-05 20:18:08 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/src/video_thread.py?id=47e63842bcf8ee65c2bb2caa8d4f5252f8e42204&amp;follow=1'>show every frame of preview during export</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-5</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-05-05 19:33:37 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/src/video_thread.py?id=009656a61d566e2a344e55f3dd718e8fba28748d&amp;follow=1'>remove Python threads from video export process</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-106</span>/<span class='insertions'>+55</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-05-05 18:12:30 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/README.md?id=c9cb08d8c5438ae25a430e22cbcbdfdf8aa17c88&amp;follow=1'>fix broken link. move commandline info lower</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-20</span>/<span class='insertions'>+10</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-05-05 16:54:48 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/README.md?id=5afe31729e6ef785e453b7458d8b73c34269e1af&amp;follow=1'>add more links to wiki</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+3</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-05-05 12:30:01 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/README.md?id=c55fd97518fa9a3cabf51aa491c5d1538b83f777&amp;follow=1'>shrink screenshot slightly, add alt/tite text</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+3</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-05-05 12:04:02 -0400'>2022-05-05</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/screenshot.png?id=97797f8189248f3420cd1b86942425631bffc67c&amp;follow=1'>new readme with screenshot</a></td><td>tassaron</td><td>2</td><td><span class='deletions'>-35</span>/<span class='insertions'>+45</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2022-05-03 18:44:49 -0400'>2022-05-03</span></td><td class='logsubject'><a href='/audio-visualizer-python/commit/src/__init__.py?id=926823b58bcfdf65129094b32a3b065c5e5ad7b7&amp;follow=1'>change version number</a></td><td>tassaron</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td/><td colspan='5' class='logmsg'>
</td></tr>
