Musik mit Excel - Just Fun, no Profit

Musik mit Excel

Just Fun, no Profit

Marc Ruef
by Marc Ruef
time to read: 5 minutes

Die traditionelle Definition des Worts Hacking sieht den kreativen Umgang mit Technologien vor. Und dies ist zu einem hohen Grad auch unsere Einstellung. Unsere Mitarbeiter mögen die Herausforderung und das Spiel zugleich. Und so kommt zwischendurch das eine oder andere nicht ganz ernst gemeinte Projekt zustande.

Vor einiger Zeit habe ich in VBA (Visual Basic for Applications) eine Applikation namens ExcelMusix entwickelt, mit der sich in Excel Musik komponieren und abspielen lässt. Dabei benutze ich die folgende API-Funktion in kernel32.dll, um die Töne auf dem PC-Speaker ausgeben zu lassen:

Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

In den jeweiligen Zellen des Excel-Sheets können sodann die Töne und ihre Länge angegeben werden. Diese werden dann an die Funktion Beep() übergeben, um den Ton zu erzeugen. Dabei unterstütze ich unterschiedliche Darstellungen der Tonhöhen:

Funktion Bezeichnung Skala
beep MIDI Notennummer von 0 bis 88
noteenglish Notenbezeichnung in Englisch von G#0 bis C8
notegerman Notenbezeichnung in Deutsch von Gis2 bis c'''''
tone Tonfrequenz in Hertz von ca. 1 bis ca. 15000 Hz (je nach Hardware)

Die Dauer des Tons wird in Millisekunden angegeben, wobei hier werte ab ca. 20 ms brauchbar sind, jedoch bei melodischen Liedern typischerweise mit ca. 100 ms gearbeitet wird. Ist das Lied im Sheet komponiert, kann es durch das Drücken auf den Play-Button abgespielt werden – Hierbei wird iterativ durch die einzelnen Tondefinitionen durchgegangen und diese ausgegeben. Sehr einfach lassen sich damit eigene oder bekannte Lieder umsetzen:

You are able to define your song in the columns defined on the left side. The three columns are divided into type, level and duration. The first column type defines the type of sound you would like to make. Possibilities are notenumber, noteenglish, notegerman and beep. The second column level defines the pitch level of the sound. The pitch level for beeps lies between 1 and 15000, the noteenglish and notegerman use their representation (e.g. C and E1) and the notenumber uses a note number from 1 to 88. Click play to listen to your song.

Für den experimentierfreudigen Benutzer mit Hang zu arithmetischen Beobachtungen lohnt sich das Umsetzen von Zahlenreihen. Exponentieller Wachstum in Bezug auf Tonhöhe und Tondauer haben zum Beispiel spezielle Effekte zur Folge, wie man sie von klassen Videogames her kennt. In diesem Sinne: Viel Spass am Gerät!

About the Author

Marc Ruef

Marc Ruef has been working in information security since the late 1990s. He is well-known for his many publications and books. The last one called The Art of Penetration Testing is discussing security testing in detail. He is a lecturer at several universities, like ETH, HWZ, HSLU and IKF. (ORCID 0000-0002-1328-6357)

Links

You need support in such a project?

Our experts will get in contact with you!

×
scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Home Automation

Home Automation

Marc Ruef

Cyber War

Cyber War

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

You want more?

Further articles available here

You need support in such a project?

Our experts will get in contact with you!

You want more?

Further articles available here