<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wesley&#039;s Techblog &#187; Mixxx</title>
	<atom:link href="http://wesley.vidiqatch.org/category/mixxx/feed/" rel="self" type="application/rss+xml" />
	<link>http://wesley.vidiqatch.org</link>
	<description>This blog does not need a smart-ass tagline</description>
	<lastBuildDate>Wed, 09 Sep 2009 21:36:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Open source DJ mixxx&#8217;ing</title>
		<link>http://wesley.vidiqatch.org/06-01-2008/open-source-dj-mixxxing/</link>
		<comments>http://wesley.vidiqatch.org/06-01-2008/open-source-dj-mixxxing/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 15:33:16 +0000</pubDate>
		<dc:creator>Wesley</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mixxx]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://wesley.debianbox.be/2008/01/06/open-source-dj-mixxxing/</guid>
		<description><![CDATA[Sinds vorige week ben ik begonnen met mee te helpen aan de ontwikkeling van het open source DJ programma mixxx. Mixxx is een stabiel programma waarmee men live muziek kan mixen. Het heeft een aantal zeer interessante features, zoals bijvoorbeeld automatische ritmedetectie en ondersteuning voor een heleboel hardware.

Waar staan we vandaag? 1.6.0
Ik werk mee aan [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;"><strong>Sinds vorige week ben ik begonnen met mee te helpen aan de ontwikkeling van het open source DJ programma mixxx. Mixxx is een stabiel programma waarmee men live muziek kan mixen. Het heeft een aantal zeer interessante features, zoals bijvoorbeeld automatische ritmedetectie en ondersteuning voor een heleboel hardware.</strong></span></p>
<p style="text-align: center;"><a href="http://wesley.vidiqatch.org/images/mixxx.png"><span style="color: #000080;"><img style="border: 0pt none;" src="http://wesley.vidiqatch.org/images/mixxx_thumb.png" border="1" alt="Mixxx 1.6.0 with Collusion/WS/Green skin" align="bottom" /></span></a></p>
<p style="margin-bottom: 0cm"><span style="color: #0066cc;"><span style="font-size: medium;"><strong>Waar staan we vandaag? 1.6.0</strong></span></span></p>
<p>Ik werk mee aan de nieuwe versie waarvan twee weken geleden een eerste bètaversie werd gelanceerd. Voor de nieuwe 1.6.0 versie zijn een heleboel nieuwe features gepland. Ik som even de belangrijkste veranderingen op:</p>
<ul>
<li>Scratchen via <strong>timecoded 	vinyl</strong>-platen <em>[ <a href="http://www.youtube.com/watch?v=U2ZPSSXlK60">link 	naar flash video 1</a>, <a href="http://www.youtube.com/watch?v=9dRLNT2yspg">video 2</a> ]</em></li>
<li><strong>Kleurenschema&#8217;s</strong> voor skins</li>
<li>Nieuwe <strong>muziekbibliotheek</strong> (muziekbrowser)</li>
<li>Verbeterde <strong>ritmedetectie</strong></li>
<li>Verbeterde ondersteuning voor <strong>MIDI-controllers</strong> (hardware)</li>
<li><strong>HQ-equalizer</strong> toegevoegd</li>
<li>Audio core herschreven/vernieuwd</li>
<li>Ondersteuning voor <strong>LADSPA geluidseffecten</strong></li>
<li><strong>Live broadcasten</strong> over internet (Icecast, Shoutcast)</li>
<li><strong>Rechtstreeks opnemen</strong> naar MP3, Ogg Vorbis, Wav, Flac</li>
</ul>
<p>Ik werk momenteel aan de laatste twee punten. Het is niet zeker of het helemaal af zal raken voor de <em>Hardy freeze</em> in februari (het moment waarop programma&#8217;s naar <em>Ubuntu 8.04 Hardy Heron</em> geupload worden en niet meer aangepast mogen worden) maar Ogg Vorbis Icecast/Shoutcast-ondersteuning is zo goed als af, dus dat zal er waarschijnlijk zeker inzitten.</p>
<p>Zelf kijk ik uit naar de ondersteuning voor LADSPA geluidseffecten, maar ik vermoed dat dat niet af zal raken voor de 1.6.0-versie. Dan maar wat langer wachten&#8230;</p>
<p style="margin-bottom: 0cm"><span style="font-size: medium;"><span style="color: #0066cc;"><strong>Evolutie van de broadcasting code</strong></span></span></p>
<p style="margin-bottom: 0cm; text-align: center;"><a href="http://wesley.vidiqatch.org/images/mixxx_broadcast_prefs.png"><img title="Mixxx Live Broadcasting Preferences" src="http://wesley.vidiqatch.org/images/mixxx_broadcast_prefs_thumb.png" alt="Mixxx Live Broadcasting Preferences" /></a></p>
<p>Zoals eerder gezegd ben ik momenteel bezig met het implementeren van Icecast/Shoutcast ondersteuning zodat we een mix rechtstreeks over internet kunnen broadcasten. Aanvankelijk dachten we dat het simpel zou zijn om dit systeem te implementeren (gewoon <em>libshout</em> gebruiken) maar al snel bleek dat we eerst nog een encoder moesten schrijven. Ik ben de laatste dagen dus vooral bezig geweest met het schrijven van een Ogg Vorbis-encoder met behulp van <em>libvorbis</em>, <em>libogg</em> en <em>libvorbisenc</em>.</p>
<p>Afgezien van het feit dat er voor libvorbis <strong>geen technische API-documentatie</strong> beschikbaar is, is het ons uiteindelijk toch gelukt om de encoder werkend te krijgen. Alles ging goed, maar de audio latency was nu wel verhoogd omdat de &#8216;audio callback thread&#8217; voor een korte periode geblokkeerd werd wanneer de encoder zijn werk deed. Toen we ook nog beseften dat we om metadata te updaten een nieuwe stream moesten initialiseren was het onvermijdelijk om een nieuw systeem te ontwerpen om de encoder parallel in een aparte thread te laten draaien <em>(</em><em><strong>multithreaded</strong></em><em>)</em> met een eigen buffer.</p>
<p>Albert ging hiermee aan de slag en na twee of drie dagen knoeien presenteerde hij een nieuwe &#8216;engine&#8217; <em>(de SideChain-engine)</em> aan ons die de audio buffert voor andere engines (zoals de broadcast engine) en deze engines in een aparte thread draait. <strong>Het resultaat is lage audio latency en geen enkel performanceprobleem meer.</strong> Ook werd het totale CPU-verbruik verlaagd omdat de encoder nu iets minder vaak aangeroepen wordt.</p>
<p>Om het schematisch voor te stellen:</p>
<p><strong>voor: </strong><em><strong>[</strong></em><em> afbeelding:</em><em><strong> <a href="http://wesley.vidiqatch.org/images/mixxx_broadcast_scheme.png">Oorspronkelijke Broadcast Implementatie</a> ]</strong></em><strong><br />
na: </strong><em><strong>[ </strong></em><em>afbeelding:</em><em><strong> <a href="http://wesley.vidiqatch.org/images/mixxx_broadcast_scheme_threaded.png">Threaded Broadcast Implementatie</a> ]</strong></em></p>
<p><strong>Wat moet er nog gedaan worden?</strong> De <em>SideChain-engine</em> moet nog een klein beetje aangepast worden, er moet nog een <em>MP3-encoder</em> worden geschreven, het instellingenvenster moet afgemaakt worden, en tenslotte moet de code wat opgeschoond worden, en moet alles grondig getest worden!</p>
]]></content:encoded>
			<wfw:commentRss>http://wesley.vidiqatch.org/06-01-2008/open-source-dj-mixxxing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
