Het omzetten van MP3 naar ARMovie
zoals door Dick Tanis gedaan en beluisterd

Een paar Asteriskjes geleden had Henk Huinen het over MP3-bestanden. Zoals Henk beschreven had zijn dit sterk gecomprimeerde geluidsbestanden waarvan het geluid bijna van CD kwaliteit is. Ook had Henk vermeld dat deze bestanden op RISC OS kunnen worden afgespeeld met RISC Tracker maar er is ook nog een programma genaamd PlayMP3. Het nadeel van beide programma's is dat ze de MP3 bestanden alleen op een machine met een StrongARM processor realtime kunnen afspelen en dat ze zo'n 50% processortijd vragen waardoor het afspelen al snel gaat haperen (stukjes herhalen) wanneer u op uw machine druk bezig bent. Nu is het toch mogelijk om via een kleine omweg deze MP3-bestanden te converteren zodat ze op alle RISC OS 3 machines afgespeeld kunnen worden (zelfs een A5000)!.

Hierbij heeft u de volgende programma's nodig:

Voor pre RISC OS 3.5 machines heeft u ook nodig:

Zorg dat u een harde schijf hebt waarop u nog minstens 100Mb vrij op heb. Maak dan vervolgens in de hoofdmap een nieuwe map bv. "decode-mp3" aan. Open deze map en maak daarin een map "Extract" aan. Open nu de map !ARMovie (deze staat meestal in !Boot.Resources als u de Boot van Acorn gebruikt) met shift dubbelklikken en open daarna de map Tools. Hierin staat een programma genaamd "Join". Kopieer dit programma in uw net aangemaakte map "decode-mp3".

Pak nu een MP3-afspeelprogramma (RISCTracker of PlayMP3) en open een van deze applicaties met shift dubbelklikken. Als u RISCTracker gebruikt dan moet u nog de map "PlayMods" openen. Kopieer nu ook het programma "dmpa" in uw aangemaakte map "decode-mp3".

Kopieer nu het MP3 bestand dat u wilt omzetten in de map "decode-mp3". Open nu een taakvenster d.m.v. CTRL-F12 of via het menu van de TaskManager. Voer nu het commando "Dir <pad van aangemaakte map> in en druk op RETURN. Als u nu het commando "." intikt krijgt u de inhoud van de aangemaakte map te zien en kunt u controleren of u in de juiste map zit

Als u van een RISC OS 3.1 machine gebruik maakt dan moet u nu volgende doen. Start het programma !Patch en voer in het taakvenster het volgende commando in: "Unsqueeze dmpa" en druk op RETURN. Nu is het programma dmpa klaar voor gebruik.

Voer nu het volgende commando in het taakvenster: "dmpa <mp3-bestand> Extract.Samples" en druk op RETURN. Nu krijgt u wat informatie over het mp3- bestand en een tellertje dat gaat lopen. Het MP3-bestand wordt nu omgezet naar 16 bit lineaire ruwe data, 44KHz of 22KHz. Dit omzetten kan aardig wat tijd in beslag nemen, op een A5000 33 MHz duurt het namelijk 30 minuten voor 3 minuten muziek terwijl op een StrongARM dit maar 3 minuten duurt!

Nu het MP3-bestand is omgezet moet u het ruwe data-bestand omzetten in een gecomprimeerde ARMovie-bestand (muziekformaat van Acorn). Voordat u een ARMovie-bestand kan aanmaken moet u eerst een Sprite (bitmap tekening) aanmaken die als 'intro' wordt gebruikt wanneer de ARMovie door !ARPlayer wordt afgespeeld. Deze Sprite kunt u zelf maken met het programma !Paint maar u kunt ook het volgende doen: Open weer de map !ARMovie en kopieer het Sprite-bestand "Default" in de aangemaakte map "Extract" met de naam "Sprite"

Nu moet u nog een Header-bestand aanmaken. Dit bestand bevat informatie over de ARMovie. Dit maakt u als volgt. Open een tekst-venster met bv. !Edit en voer de volgende tekst in:

ARMovie
<Naam van muziekstuk>
<Datum en copyright>
<Auteur van de muziek>
0 video format
320 pixels (aantal pixels in x-richting van de Sprite)
256 pixels (aantal pixels in y-richting van de Sprite)
16 bits per pixel
25 frames per second
2 adpcm (comprimeren ARMovie naar ADPCM formaat)
44100 Hz samples (het aantal Hz van het ruwe data-bestand, zie hieronder)
2 channels
16 bit
30 frames per chunk

Zoals u ziet moet u aangeven op welke samplesnelheid (in Hz) de muziek is opgenomen. Dit is meestal 44100 Hz maar er zijn ook MP3-bestanden die op 22050 Hz gesampled zijn. Dit kunt u zien aan de informatie die dmpa weergeeft tijdens het converteren van het MP3-bestand.
De laatste regel "15 frames per chunk" geeft aan hoe snel en hoeveel er elke keer van de ARMovie van schijf moet worden gehaald tijdens het afspelen.

Als u dit getal verkleind zal er elke keer kleine stukjes muziek worden ingelezen. Dit heeft als voordeel dat u minder geheugen nodig heeft om de ARMovie af te spelen maar het heeft als nadeel dat er veel van schijf moet worden gelezen waardoor een bewaar-actie het afspelen al kan laten haperen. Als u dit getal groter maakt dan wordt er minder van schijf gelezen maar dan kost het wel meer geheugen. Op mijn A5000 werkte 15 frames per chunk het beste met !ARPlayer 1.49 maar op latere machines of lagere versies van !ARPlayer kan je beter 30 of 45 frames per chunk gebruiken.

Het is belangrijk dat de laatste regel "30 frames per chunk" met een RETURN is afgesloten. Bewaar nu het tekst-bestand in de map "Extract" met de naam "Header".

Nu kunnen we de ARMovie in elkaar zetten. Dit doen we door weer naar het taakvenster te gaan. Voer nu het volgende commando in: "Join -source Extract -dest Muziek" en druk op RETURN. Nu wordt de ARMovie aangemaakt met de naam "Muziekstuk". Dit kan ongeveer 2 minuten duren. Zo nu heeft u een ARMovie-bestand die u op uw machine in de achtergrond kunt afspelen. Zoals ik al vermeld had kunt u het beste !ARPlayer 1.49 gebruiken voor het afspelen van de ARMovies omdat deze beter tegen 'single tasking' processen kan.

De vraag van Henk Huinen of er een programma is dat MP3-bestanden kan omzetten naar wave is hiermee ook beantwoord. Namelijk dmpa converteert de MP3 naar ruwe data en dit is precies hetzelfde formaat wat op een Audio CD staat. Het is belangrijk dat deze ruwe data niet hetzelfde is een als een Microsoft Wave bestand met de extentie .wav. Als u wel Microsoft Wave moet hebben dan moet u het ruwe data bestand converteren met !SoundCon.

Heeft u enige problemen of aanmerkingen geeft ze gerust door aan mij.

Dick Tanis
(dtanis@mail.HZeeland.nl via email (wordt sneller op geantwoord))
(77:8500/100.4 op Aconet)