dinsdag 2 december 2014

Muziek in een doosje - vervolg

Eén groot nadeel aan bestellingen in China: ze duren en duren en duren...
Het is alweer meer dan een maand geleden dat ik muziek in een doosje probeerde te stoppen, iets wat toen slecht afliep. De testen met de D/A convertor waren slecht omdat alles veel te traag ging.

Ik bestelde dus andere modellen en die arriveerden vorige week. Meteen was duidelijk dat op z'n minst het formaat van de chip past in mijn plannen: een zo klein mogelijk doosje dat muziek maakt of coördinaten uitspreekt in bosrijk gebied.

Het oude concept van mijn MP3 potje had nadelen en onder het motto: wat je zelf doet, doe je beter is dit een schot in de roos.

Hier is het dus om te doen, om deze grafiek. De oscilloscoop toont het resultaat van mijn testprogrammaatje dat draait op een Arduino Mini. Ik heb een sinusgolf in een lijst gestopt en gebruik nu 128 stapjes om één golf (op en neer) weer te geven. Er is geen vertraging ingebouwd, dus wat je hier ziet is de maximumfrequentie die mogelijk is met de Arduino en de Max522 seriële D/A convertor. Omdat de seriële verbinding nu SPI is in plaats van I2C, kan ie nu veel hogere snelheden aan.



De golf heeft een frequentie van ongeveer 450 Hz. Dat wil zeggen dat ik grofweg 60.000 samples per seconde seriëel kan versturen. Als je weet dat het met de vorige chip, door het trage I2C protocol slechts 3 à 4000 was, is dit natuurlijk een wereld van verschil.

Muziek is natuurlijk nooit zo'n perfecte sinus, maar als je weet dat een CD speler met 44.000 samples per seconde werkt, zit ik nu toch wel heel goed. Het is natuurlijk nog maar één kanaal, of ik al dan niet stereogeluid ga voorzien zal afhangen van het geheugen dat ik vrij heb (de chip heeft 2 kanalen, dus het kan wel). Het vorige MP3 potje deed dat ook niet, en wees nu eerlijk: zo belangrijk is het niet als verstaanbare coördinaten je doel zijn. Een CD speler gebruikt ook 16 bits per sample en deze chip slechts 8. Maar geef toe, de golf is bijna perfect.

Dat wil zeggen dat de klank dat normaal ook zal zijn :)

Geen opmerkingen:

Een reactie plaatsen