HANGHULLÁM WAV_fájl
(HANGHULLÁM WAV_fájl1 WAV_fájl2 ... )
HANGHULLÁM [ WAV_fájl1 WAV_fájl2 ... ]
(HANGHULLÁM WAV_fájl1 WAV_fájl2 ... [ ] )
(HANGHULLÁM WAV_fájl1 WAV_fájl2 ... " )
Ha hangkártyát installáltunk a számítógépre (vagy legalábbis a SPEAKER.DRV programmal szimuláljuk azt), akkor a HANGHULLÁM utasítás lejátssza az adott fájlban vagy fájlokban meghatározott dallamot. Habár néhány fontos különbség fellelhető a hangkártya és a belső hangszóró viselkedése között, itt csak a hangkártya viselkedésével foglalkozunk.
Ha az utasítás egyetlen WAV_fájlt kap bemenetként, akkor ezt elkezdi lejátszani, és azonnal folytatja a program további végrehajtását (miközben a zene szól). Ez azonban nem így történik, ha a Logo másik HANGHULLÁM utasítást talál, és ennek bemenetét, illetve bemeneteit kellene lejátszania. Ha az első dallam még hallatszik, akkor ez hirtelen leáll, és a második HANGHULLÁM bemenetének megfelelő dallam csendül fel. Ezért ebben az esetben a következő utasítások
HANGHULLÁM "X --- valamit.csinálj --- HANGHULLÁM "Y
problémát okozhatnak. Ha először be akarjuk fejezni az első dallamot, és csak ezután lejátszani a másodikat, és esetleg a harmadikat..., akkor ez megtehető egyetlen HANGHULLÁM utasítással is, ha a bemeneteket a következő formában adjuk meg: (HANGH "X "Y "Z ... ). Ebben az esetben a Logo lejátssza a teljes X fájlt (addig a további végrehajtás szünetel), aztán az Y-t stb. Csak amikor a Logo az utolsó WAV bemenetet kezdi játszani, akkor folytatódik a program végrehajtása.
Figyeljük meg, hogy a (HANGH "X "Y "Z ... ) és a HANGH [X Y Z ... ] utasítássorok megegyeznek.
Ha azt szeretnénk, hogy amíg a HANGHULLÁM az utolsó fájl lejátszását be nem fejezte, a Logo ne folytassa a végrehajtást az üres hullám egy fajtájaként , beszúrhatunk egy üres szót vagy egy üres listát mint az utolsó lejátszandó wave fájlt. Például (HANGH "X "Y "Z " ), vagy HANGH [X Y Z [ ]] utasítások először teljes egészében lejátsszák az összes adott dallamot, s csak ezután folytatódik a Logo program futása.