Möglichst einfach Sounds



  • hallo!

    Wie kann ich möglichst einfach bestimmte Töne über die Soundkarte ausgeben (lassen)? Geht es auch einfacher als mit Schnittstellen wie DirectSound und co.? Über irgeneine MFC-/WinAPI Funktion vielleicht? Ich muss nur Dauer und Höhe eines Tones kontrollieren können.

    Danke im Voraus
    DerGhost



  • Nur das MIDI-Interface kennt 'Töne'. Ansonsten gibts nur Samples, die von einem abgetasteten oder generierten Signal stammen. Die Schwingungsform (Sinus, Rechteck, Dreieck, Sägezahn...) ist auch sehr wichtig.



  • Angenommen, ich will ne Tonleiter ausgeben lassen, einfach die exakten Tonhöhen. Wie kann ich das realisieren? (bei "Beep" kann man einfach ne Frequenz angeben, allerdings ist dann die Ausgabe über den Systemlautsprecher, das ist nciht so das wahre...)



  • DerGhost schrieb:

    Wie kann ich möglichst einfach bestimmte Töne über die Soundkarte ausgeben (lassen)?

    Das würde mich auch interessieren.

    Früher konnte man auf dem Amiga mit Hilfe des SOUND-Befehls einfache vierstimmige Melodien spielen.

    SOUND Frequenz , Dauer , Lautstärke , Kanal
    
    Frequenz  20 - 15000
    Dauer      0 - 77
    Lautstärke 0 - 255
    Kanal      0 - 3
    

    Mit SOUND WAIT hat man die Töne gesammelt, mit SOUND RESUME alle gleichzeitig abgespielt.

    Aber der PC ist hier noch nicht soweit. 😃



  • DerGhost schrieb:

    Angenommen, ich will ne Tonleiter ausgeben lassen, einfach die exakten Tonhöhen. Wie kann ich das realisieren? (bei "Beep" kann man einfach ne Frequenz angeben, allerdings ist dann die Ausgabe über den Systemlautsprecher, das ist nciht so das wahre...)

    1. Feld mit 16bit-short-Werten anlegen
    2. Formel für Bestimmung der Sinus-Schwingung mit angegebener Frequenz raussuchen
    3. 1 Periode durch 44100 teilen, um eine Sampling-Frequenz von 44.1kHz (CD-Qualität) zu 'simulieren'.
    4. Anzahl Perioden = Länge des Sounds
    5. Sound als PCM über PlaySound abspielen

    Edit:
    Kann natürlich sein, dass man damit nur wav-Dateien abspielen kann. Oben genannt war nur die Theorie.


Anmelden zum Antworten