Music-Maker

  • Ich hab ein Skript gemacht, dass Buchstaben (c,d,e,f,g,a,h,c1) aus einer ini ausliest und diese in Musik umwandelt. Jeder Buchstabe entspricht der reelen Tonhöhe (D-Dur) . Mann kann in die ini 20 Buchstaben reinschreiben (mit "," getrennt) und die werden dann abgespielt... :rock:
    Weiß jemand wie ich das machen kann, dass man unendlich viele Tönen eingeben kann? So muss ich für jeden Ton eine lange If-Schleife mit jedem Array (hier halt 1-20) anlegen. Das geht bestimmt einfacher und kürzer. Die ini muss im Ordner des Skriptes sein.
    Die INI ist in der RAR im Anhang...Bitt sagt mir eure Meinung/Tipps... ;)

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.0.0
    Author: myName

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ; Script Start - Add your code below here

    [/autoit] [autoit][/autoit] [autoit]

    #include

    [/autoit] [autoit][/autoit] [autoit]

    $file = @ScriptDir & "\Sound.ini"

    [/autoit] [autoit][/autoit] [autoit]

    $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $array = StringSplit($noten, ',', 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;Hertzzahl der Noten

    [/autoit] [autoit][/autoit] [autoit]

    Global $c = 264
    Global $d = 297
    Global $e = 330
    Global $f = 352
    Global $g = 396
    Global $a = 440
    Global $h = 495
    Global $c1 = 528
    Global $zeit = 300
    ;Gui

    [/autoit] [autoit][/autoit] [autoit]

    #include

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=D:\Programme\Autoit\Koda\Forms\Musik.kxf
    $Musik = GUICreate("Musik", 268, 161, 193, 125)
    $Button1 = GUICtrlCreateButton("Start", 40, 32, 193, 89, 0)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE , "Beenden")
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    GUICtrlSetOnEvent($Button1, "Start")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")
    Sleep(2)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Funktionen

    [/autoit] [autoit][/autoit] [autoit]

    Func Beenden()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Start() ;Erster Ton
    If $array[1] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[1] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[1] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[1] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[1] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[1] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[1] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[1] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[2] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[2] = "d" Then
    Beep($d,$zeit)
    EndIf
    If $array[2] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[2] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[2] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[2] = "a" Then
    Beep($a,$zeit)
    EndIf
    If $array[2] = "h" Then
    Beep($h,$zeit)
    EndIf
    If $array[2] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[3] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[3] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[3] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[3] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[3] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[3] = "a" Then
    Beep($a,$zeit)
    EndIf
    If $array[3] = "h" Then
    Beep($h,$zeit)
    EndIf
    If $array[3] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[4] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[4] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[4] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[4] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[4] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[4] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[4] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[4] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[5] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[5] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[5] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[5] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[5] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[5] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[5] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[5] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[6] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[6] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[6] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[6] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[6] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[6] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[6] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[6] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[7] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[7] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[7] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[7] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[7] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[7] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[7] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[7] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[8] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[8] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[8] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[8] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[8] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[8] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[8] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[8] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[9] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[9] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[9] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[9] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[9] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[9] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[9] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[9] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[10] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[10] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[10] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[10] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[10] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[10] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[10] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[10] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[11] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[11] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[11] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[11] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[11] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[11] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[11] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[11] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[12] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[12] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[12] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[12] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[12] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[12] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[12] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[12] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[13] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[13] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[13] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[13] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[13] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[13] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[13] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[13] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[14] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[14] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[14] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[14] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[14] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[14] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[14] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[14] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[15] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[15] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[15] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[15] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[15] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[15] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[15] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[15] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[16] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[16] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[16] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[16] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[16] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[16] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[16] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[16] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[17] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[17] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[17] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[17] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[17] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[17] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[17] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[17] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[18] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[18] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[18] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[18] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[18] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[18] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[18] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[18] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[19] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[19] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[19] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[19] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[19] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[19] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[19] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[19] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $array[20] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[20] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[20] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[20] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[20] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[20] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[20] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[20] = "c1" Then
    Beep($c1,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Einmal editiert, zuletzt von FojhtirfX (30. April 2009 um 20:28)

  • Also, ich würde es wie folgt aufbauen:

    • Der Wert wird aus der Ini gelesen
    • StringSplit splittet die Töne
    • Du kannst über UBound die Größe des Arrays ermitteln, packe doch alles in eine For-Next Schleife
    • Außerdem würde ich eine Switch-Abfrage machen...

    Aber sonst, weiter so ;)

  • Danke für deine Tips Matthias!!!
    Skript ist jetz nur noch knapp 130 statt 700 Zeilen lang und kann unbegrezt lange Melodien spielen!!!!!!
    RAR mit INI im Anhang :D

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.0.0
    Author: Frithjof

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Ein Ton-Interpreter

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ; Script Start - Add your code below here

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $file = @ScriptDir & "\Sound.ini"

    [/autoit] [autoit][/autoit] [autoit]

    $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $array = StringSplit($noten, ',', 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $lange = UBound($array)
    Global $wahre_lange = $lange -1
    ;Hertzzahl der Noten

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Gui

    [/autoit] [autoit][/autoit] [autoit]

    #include

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=D:\Programme\Autoit\Koda\Forms\Musik.kxf
    $Musik = GUICreate("Musik", 268, 161, 193, 125)
    $Button1 = GUICtrlCreateButton("Start", 40, 32, 193, 89, 0)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE , "Beenden")
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    GUICtrlSetOnEvent($Button1, "Start")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $c = 264
    Global $d = 297
    Global $e = 330
    Global $f = 352
    Global $g = 396
    Global $a = 440
    Global $h = 495
    Global $c1 = 528
    Global $zeit = 300

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")
    Sleep(2)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Funktionen

    [/autoit] [autoit][/autoit] [autoit]

    Func Beenden()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")
    Sleep(2)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Start()
    For $i = 1 to $wahre_lange Step 1
    ;Erster Ton
    If $array[$i] = "c" Then
    Beep($c,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[$i] = "d" Then
    Beep($d,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[$i] = "e" Then
    Beep($e,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[$i] = "f" Then
    Beep($f,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[$i] = "g" Then
    Beep($g,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[$i] = "a" Then
    Beep($a,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[$i] = "h" Then
    Beep($h,$zeit)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $array[$i] = "c1" Then
    Beep($c1,$zeit)
    EndIf
    Next
    MsgBox(0,"", "Fertig!")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Einmal editiert, zuletzt von FojhtirfX (30. April 2009 um 20:54)

  • Noch ein Tipp: Ich würde die vielen Leerzeilen zur Übersicht einfach rausnehmen, eine reicht :D

    Und benutze ElseIf, dass erhöht die Geschwindigkeit etwas:
    Angenommen der Ton ist c: Dann kommt er ins erste If und gibt True zurück, dann muss er aber noch (zusätzlich(!)) alle anderen Töne durchprüfen. Noch kürzer wäre es mit Switch ;)

  • Jo, danke das mit der Ordnung mach ich gleich.
    Hab hier mal die Nationalhymne komponiert :rock: ein Ton ist falsch, aber sonst ganz witzig :rock:

  • hier mit einer O(n) laufzeit wird aber schnell unübersichtlich bei noch mehr Noten, aber schneller als if und übersichtlicher

    Spoiler anzeigen
    [autoit]

    #include<Array.au3>
    #include <GUIConstants.au3>

    Global $file = @ScriptDir & "\Sound.ini"
    Global $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")
    Global $array = StringSplit($noten, ',', 1)
    ;Global $aToene[8][2] = [["c", 264], ["d", 297], ["e", 330], ["f", 352], ["g", 396], ["a", 440], ["h", 495], ["c1", 528]]
    Global $zeit = 200

    [/autoit] [autoit][/autoit] [autoit]

    ;Gui
    #Region ### START Koda GUI section ### Form=D:\Programme\Autoit\Koda\Forms\Musik.kxf
    $Musik = GUICreate("Musik", 268, 161, 193, 125)
    $Button1 = GUICtrlCreateButton("Start", 40, 32, 193, 89, 0)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE , "Beenden")
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    GUICtrlSetOnEvent($Button1, "Start")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(20)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Start()
    for $i = 0 to Ubound($array)-1
    Switch $array[$i]
    Case "c"
    Beep(264, $zeit)
    Case "d"
    Beep(297, $zeit)
    Case "e"
    Beep(330, $zeit)
    Case "f"
    Beep(352, $zeit)
    Case "g"
    Beep(396, $zeit)
    Case "a"
    Beep(440, $zeit)
    Case "h"
    Beep(495, $zeit)
    Case "c1"
    Beep(528, $zeit)
    EndSwitch
    next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Beenden()
    Exit
    EndFunc

    [/autoit]

    hier im Worstcase noch mit O(n^2), aber einfach um weitere Noten erweiterbar

    Spoiler anzeigen
    [autoit]


    #include<Array.au3>
    #include <GUIConstants.au3>

    Global $file = @ScriptDir & "\Sound.ini"
    Global $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")
    Global $array = StringSplit($noten, ',', 1)
    Global $aToene[8][2] = [["c", 264], ["d", 297], ["e", 330], ["f", 352], ["g", 396], ["a", 440], ["h", 495], ["c1", 528]]
    Global $zeit = 200

    [/autoit] [autoit][/autoit] [autoit]

    ;Gui
    #Region ### START Koda GUI section ### Form=D:\Programme\Autoit\Koda\Forms\Musik.kxf
    $Musik = GUICreate("Musik", 268, 161, 193, 125)
    $Button1 = GUICtrlCreateButton("Start", 40, 32, 193, 89, 0)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE , "Beenden")
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    GUICtrlSetOnEvent($Button1, "Start")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(20)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Start()
    for $i = 0 to Ubound($array)-1
    for $j = 0 to Ubound($aToene) -1
    if($array[$i] == $aToene[$j][0]) then
    Beep($aToene[$j][1], $zeit)
    exitloop
    endif
    next
    next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Beenden()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Einmal editiert, zuletzt von leviathan (30. April 2009 um 21:05)

  • So, jetzt ist's aber fertig: Aufgeräumt und mit ElseIf

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.0.0
    Author: Frithjof

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Ein Ton-Interpreter

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ; Script Start - Add your code below here

    [/autoit] [autoit][/autoit] [autoit]

    $file = @ScriptDir & "\Sound.ini"
    $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")
    $array = StringSplit($noten, ',', 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $lange = UBound($array)
    Global $wahre_lange = $lange -1
    ;Gui
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=D:\Programme\Autoit\Koda\Forms\Musik.kxf
    $Musik = GUICreate("Musik", 268, 161, 193, 125)
    $Button1 = GUICtrlCreateButton("Start", 40, 32, 193, 89, 0)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE , "Beenden")
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    GUICtrlSetOnEvent($Button1, "Start")

    [/autoit] [autoit][/autoit] [autoit]

    Global $c = 264
    Global $d = 297
    Global $e = 330
    Global $f = 352
    Global $g = 396
    Global $a = 440
    Global $h = 495
    Global $c1 = 528
    Global $zeit = 300

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")
    Sleep(2)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ;Funktionen

    [/autoit] [autoit][/autoit] [autoit]

    Func Beenden()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $noten = IniRead( $file , "Noten", "Noten", "NichtGefunden")
    Sleep(2)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Start()
    For $i = 1 to $wahre_lange Step 1
    ;Erster Ton
    If $array[$i] = "c" Then
    Beep($c,$zeit)

    ElseIf $array[$i] = "d" Then
    Beep($d,$zeit)

    ElseIf $array[$i] = "e" Then
    Beep($e,$zeit)

    ElseIf $array[$i] = "f" Then
    Beep($f,$zeit)

    [/autoit] [autoit][/autoit] [autoit]

    ElseIf $array[$i] = "g" Then
    Beep($g,$zeit)

    ElseIf $array[$i] = "a" Then
    Beep($a,$zeit)

    ElseIf $array[$i] = "h" Then
    Beep($h,$zeit)

    ElseIf $array[$i] = "c1" Then
    Beep($c1,$zeit)
    EndIf
    Next
    MsgBox(0,"", "Fertig!")

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
    • Offizieller Beitrag

    Hatte gerade mal Lust dazu:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    GUICreate('Musik-Maker', 640, 240)
    GUISetBkColor(0xffffff)
    GUICtrlCreatePic('tonleiter.gif', 10, 10, 620, 110)
    Global $aNotes[8][2] = [['C', 264], ['D', 297], ['E', 330], ['F', 352], ['G', 396], ['A', 440], ['H', 495], ['C1', 528]]
    Global $ahNotes[8]
    For $i = 0 To 7
    $ahNotes[$i] = GUICtrlCreateLabel($aNotes[$i][0], 116 + $i * 64, 118, 30, 30)
    GUICtrlSetColor($ahNotes[$i], 0xffffff)
    GUICtrlSetFont(-1, 16, 800)
    Next
    $hStart = GUICtrlCreateButton('Start', 300, 200, 80, 22)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hStart
    GUICtrlSetState($hStart, $GUI_DISABLE)
    $aPlay = StringSplit(FileRead('notes.txt'), ' ')
    For $i = 1 To $aPlay[0]
    _Play($aPlay[$i])
    Next
    GUICtrlSetState($hStart, $GUI_ENABLE)
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Play($sNote)
    Local $aPlayPar = StringSplit($sNote, ',')
    If Not IsArray($aPlayPar) Then Return
    If $aPlayPar[0] <> 2 Then Return
    For $i = 0 To 7
    If $aPlayPar[1] = $aNotes[$i][0] Then
    GUICtrlSetColor($ahNotes[$i], 0xff0000)
    Beep($aNotes[$i][1], $aPlayPar[2])
    GUICtrlSetColor($ahNotes[$i], 0xffffff)
    ExitLoop
    EndIf
    Next
    EndFunc

    [/autoit]


    Die Daten in der Notendatei "notes.txt" müssen in der folgenden Form vorliegen: Note,Länge[Leerzeichen]
    Im ZIP-Archiv gibt's auch die Grafik und eine Beispiel-Notendatei.

  • Nett! Gefällt mir! Ich hab sowas auch aml gemacht - Aber ohne externe Noten.
    Lied: Bin beim Suchen..

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)