Archive

Archive for the ‘Windows’ Category

Open source DJ mixxx’ing

January 6th, 2008 Wesley 3 comments

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.

Mixxx 1.6.0 with Collusion/WS/Green skin

Waar staan we vandaag? 1.6.0

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:

  • Scratchen via timecoded vinyl-platen [ link naar flash video 1, video 2 ]
  • Kleurenschema’s voor skins
  • Nieuwe muziekbibliotheek (muziekbrowser)
  • Verbeterde ritmedetectie
  • Verbeterde ondersteuning voor MIDI-controllers (hardware)
  • HQ-equalizer toegevoegd
  • Audio core herschreven/vernieuwd
  • Ondersteuning voor LADSPA geluidseffecten
  • Live broadcasten over internet (Icecast, Shoutcast)
  • Rechtstreeks opnemen naar MP3, Ogg Vorbis, Wav, Flac

Ik werk momenteel aan de laatste twee punten. Het is niet zeker of het helemaal af zal raken voor de Hardy freeze in februari (het moment waarop programma’s naar Ubuntu 8.04 Hardy Heron 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.

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…

Evolutie van de broadcasting code

Mixxx Live Broadcasting Preferences

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 libshout 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 libvorbis, libogg en libvorbisenc.

Afgezien van het feit dat er voor libvorbis geen technische API-documentatie 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 ‘audio callback thread’ 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 (multithreaded) met een eigen buffer.

Albert ging hiermee aan de slag en na twee of drie dagen knoeien presenteerde hij een nieuwe ‘engine’ (de SideChain-engine) aan ons die de audio buffert voor andere engines (zoals de broadcast engine) en deze engines in een aparte thread draait. Het resultaat is lage audio latency en geen enkel performanceprobleem meer. Ook werd het totale CPU-verbruik verlaagd omdat de encoder nu iets minder vaak aangeroepen wordt.

Om het schematisch voor te stellen:

voor: [ afbeelding: Oorspronkelijke Broadcast Implementatie ]
na:
[ afbeelding: Threaded Broadcast Implementatie ]

Wat moet er nog gedaan worden? De SideChain-engine moet nog een klein beetje aangepast worden, er moet nog een MP3-encoder worden geschreven, het instellingenvenster moet afgemaakt worden, en tenslotte moet de code wat opgeschoond worden, en moet alles grondig getest worden!

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)

Slideflow: Qt4 Slideshow Application (alpha preview)

August 1st, 2007 Wesley 13 comments

Slideflow wordt een nieuw open source cross-platform slideshow programma.

Ondersteunde besturingssystemen: Windows XP/Vista, Linux, Mac OS X
Mogelijk ondersteund, maar niet getest: andere Windows versies, alle BSD varianten, Solaris, andere X11-based systemen

update: drag and drop support toegevoegd en screenshot + screencast vernieuwd

Slideflow

Klik hier voor een meer uitgebreide Slideflow demonstratie op YouTube

Ik ben bezig geweest met nieuwe mogelijkheden in Qt 4 waarmee mooie effecten te programmeren zijn zonder lowlevel kennis. Qt regelt zelf XRender (en indien gewenst OpenGL) acceleratie en met behulp van het nieuwe Animation Framework in Qt 4 is het niet moeilijk om mooie effecten te bereiken.

Slideflow is een (open source, cross-platform) slideshow programma dat door een winkel gebruikt zal worden om producten met uitleg op een moderne grafische manier weer te geven op een apart VGA scherm.

Ik ben gisteravond en deze namiddag/avond bezig geweest met de eerste stappen van het programma.

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)

Netwerkprogrammatie

December 9th, 2006 Wesley 3 comments

Voor school ben ik momenteel bezig aan een geïntegreerde proef waarbij ik in Windows in Visual Basic een programma moet ontwerpen voor klantenbeheer, artikelbeheer, beheer van leveranciers, en ook beheer van verkopen en aankopen… We moeten dit doen op basis van de wensen van een spilbedrijf. In ons geval Sportcity. Nu blijkt Sportcity een uitgebreid pakket te gebruiken (Briljant Administrator) dat op meerdere computers draait.

Waarom ook niet? Dan gaan we maar wat netwerkprogrammatie doen in ons project. Maar als je dan op de GiP presentatie komt vertellen dat je bezig bent met netwerkprogrammatie lacht de jury ons gewoon uit omdat we zogezegd geen verstand hebben van zo’n dingen. Volgens die zogenaamde professionals zouden we 2 jaar aan een dergelijk pakket moeten werken.

Nou… diezelfde avond heb ik snel een initiële versie van de netwerkcode geschreven en de dag erna heb ik deze uitgebreid en verbeterd.

Op dit moment kan de huidige netwerkcode meer dan 100 computers tegelijkertijd inloggen op een netwerkserver en elke milliseconde kunnen er gegevens worden uitgewisseld. Om de stabiliteit van de netwerkcode te meten en te testen heb ik een stresstest programma geschreven.

Het resultaat? 0 pakketten niet ontvangen, 8 herstelde pakketten (pakketten die niet op tijd waren of die opnieuw gestuurd moesten worden) en 4448 succesvol verzonden/ontvangen pakketten. Het belangrijkste deel van de netwerkcode is nu af.

Enkele details van de netwerkcode:
- gegevens worden via TCP/IP verstuurd
- gemiste pakketten herstellen zichzelf (mede door gebruik van TCP/IP)
- controle op pakketnummering om alles in de juiste volgorde te houden
- aaneengeplakte pakketten (komt soms voor) worden opgesplitst en afzonderlijk behandeld

We zullen wel eens zien wie er het laatst lacht. Het programma is trouwens open source, dus als je interesse hebt in de programmacode, dan laat je maar iets weten.

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)

Linux op school

September 26th, 2006 Wesley No comments

Op school ben ik de enige persoon die linux (ubuntu) draait op zijn laptop. Alles is afgestemd op Windows XP en daarom was het even zoeken hoe ik alles perfect werkend kon krijgen zodat ik 100% linux kon gebruiken op school.

Dit waren de grote knelpunten

  • Draadloos netwerk; NetworkManager regelt de verbinding perfect in combinatie met mijn ipw2200 draadloze chipset (Intel Pro Wireless 2200BG)
  • Windows 2000 domeinserver; Samba zorgt ervoor dat ik kan verbinden met het internet en met de andere lokale computers/mappen op het netwerk
  • Derive 5, MS Office 2003 (volledige compatibiliteit m.b.t. Access, Excel, Word), BOB Boekhouding software; Derive 5 draait via Wine, maar voor BOB en MS Office (volledige compatibiliteit) gebruik ik nu VMWare met een virtuele Windows XP machine.

Problemen met VMWare:

Na alle configuratie met betrekking tot het netwerk op de hostcomputer (Samba) had ik nog geen netwerk onder VMWare; de enige mogelijkheid die werkte was om NAT (Network Address Translation) te gebruiken in VMWare en om de proxyserver in de virtuele machine handmatig in te stellen.

Ik kon nu wel op het internet, maar nog niet op de Windows domeinserver. Dit heb ik dan maar opgelost met een beetje logica / linux power. Ik heb via mount -t smbfs de nodige mappen op de server gekoppeld aan lege mappen op mijn lokale schijf.

Daarna heb ik Gedeelde mappen ingeschakeld in VMWare en de aangekoppelde mappen geselecteerd. Om het mezelf makkelijk te maken heb ik in de virtuele XP machine op het bureaublad snelkoppelingen gemaakt naar de gedeelde mappen (dit zijn in VMWare virtuele netwerklocaties)

Alles draait stabiel :) Leve linux

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)
Categories: Linux, Microsoft, School, Ubuntu, Windows

Speech Wreckognition

August 7th, 2006 Wesley No comments

Microsoft’s live presentatie van hun nieuwe spraakherkennings-software verliep niet volgens plan :)

“Dear aunt, let’s set so double the killer delete select all”

VN:F [1.6.3_896]
Rating: 0 (from 0 votes)
Categories: Microsoft, Windows