Geluid analyseren
Op één golflengte

Introductie

Hallo, welkom terug bij les drie van onze cursus "From Media Computation to Data Science". In deze les gaan we aan de slag met fysiek comutergebruik. Het is niet wat je bij fysiek computergebruik zou verwachten. Kijk maar...
De orginele video van deze cursus, voorzien van Nederlandse ondertiteling kun je hier terug kijken.

Geluid analyseren

We gaan de opties in het dropdown menu van het microfoon blok nogmaals bekijken. De opties volume en frequenties zijn we in eerdere lessen al tegen gekomen. Vandaag bekijken we de optie samples uit het microfoon blok. Ga naar de sensing categorie en sleep dit
blok het script veld. Selecteer de optie samples en klik op het microfoon blok. Een "list", lijst met samples met getallen varierend tussen -1 en 1wordt zichtbaar. De samples zijn de ruwe data die door de microfoon worden waar genomen.
Doordat de samples optie een lijst als resultaat geeft zouden we daarop de "list" blokken in de categorie "variabelen" moeten kunnen gebruiken. We bouwen een Oscilloscoop, maak je eerste stappen in dit script:
De werking van dit stukje script:
  • Maak het podium leeg, zet de pen neer, "for-each-loop" over de lijst van microfoon samples, pen op.
Elke microfoon heeft zijn eigen opname resolutie. De fijnheid in het aantal samples die de microfoon per tijdseenheid kan openemen/verwerken. Mijn microfoon kan 512 samples verwerken wat je terug ziet in de lengte van de sample lijst of meer direct als getal in de optie "resolution" in het microfoon blok.
We willen de microfoon resolutie uitzetten over de volledige breedte van het podium.
Bouw de tweede stap van dit script:
De werking van de nieuwe blokken in dit script:
  • Initieer de script variabele
  • Wijs de script variabele toe aan het getal dat voorkomt uit de berekening wanneer je de breedte van het podium deelt, door de resolutie van de microfoon. Kortweg: de te nemen stappen.
  • Plaats de sprite helemaal links, midden op het podium
Bouw de derde stap van dit script:
De werking van het "for each" blok in dit script:
  • for elk item in de lijst samples
  • verander de x-positie steeds met een stap, verander de y-positie door het item, de waarde uit de sample lijst met 160 te vermenigvuldig.
  • Waarom vermenigvuldigen we de y-positie met het grote getal 160?
Bouw de vierde en laatste stap van dit script:
Oscilloscoop
De werking van de nieuw toegevoegde blokken in dit script:
  • Herhaal dit script voor altijd, run dit script erg snel.
Test nu de werking van dit script, de werking van je oscilloscoop. Voeg eventueel een
blok toe wanneer je de sprite wilt verbergen.
Experimenteer met de golfvormen, amplitude en golflengte door te zingen, te fluiten. Door hard/zacht, kort/lang en hoog/laag te spreken. Probeer de verschillende muziekinstrumenten uit voor de oscilloscoop. Bespreek met elkaar jullie bevindingen/conclusies.
Wacht...er is meer. Plaats een tweede microfoon blok in het script veld. Selecteer uit het dropdown menu de optie spectrum. Klik met de muis op dit blok. Opnieuw een "list", de getallen hebben nu een hogere waarde. Een spectrum analyzer , geeft de eigenschappen, de frequenties en boventonen van het opgenomen geluid weer.
  • Dupliceer nu het script van de oscilloscoop.
  • Bouw en test het script voor het spectrumanalyse-apparaat
Spectrumanalyse-apparaat
Bespeel een aantal muziekinstrumenten, zing, fluit en onderzoek de verschillen en verschil karakteristiek van het geluid. Veel plezier met deze experimenten de buren zullen je dankbaar zijn.

Testopgaven

  1. 1.
    Hoe kun je een script sneller uitvoeren. Let op, er zijn twee goede antwoorden
  • Gebruik het script als input bij het "compile" blok
  • Plaats een wrap blok om het script heen
  • Selecteer de optie "execute fast" vanuit het menu settings
  • Zet "turbo mode" aan door te "shift-klikken" op de groene vlag.
2. Met welk blok vind ik bijvoorbeeld de hoogte van het podium of de x-waarde van de rechtzijde van het podium?
3. Wat zijn de waardes van het sample bereik in het microfoon blok?
  • -1 tot 1
  • -255 tot 255
  • 0 tot 100
  • 0 tot 255
Last modified 1yr ago