Frooty Loops für Arme

  • Jeder hier kennt bestimmt Frooty Loops... Wer es nicht kennt für den erkläre ich es einmal:
    Frooty Loops ist ein Programm mit dem man professionel Lieder oder sog. Beats erstellen kann, ein ziemlich großes und wirklich gutes Programm wer sich damit auskennt kann meist richtig gute Lieder damit machen/nachmachen

    So ich habe einmal ein Frooty Loops "für Arme" erstellt, es basiert auf Beeptönen die vom Board kommen und ist wesentlich einfacher konstruiert als Frooty Loops... Aber man kann immerhin: Aufnehmen, Abspielen, Stoppen, Löschen und eine Aufnahme erweitern.

    Hier ist der Script:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <ProgressConstants.au3>
    #include <Misc.au3>
    #include <Constants.au3>

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

    $Sector = 1
    $Record = 0
    $File = 0
    $Playfile = ""
    $Count = 0

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

    Opt("GUIOnEventMode", 1)
    Opt("GUICloseOnESC", 0)

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

    $Load = GUICreate("Loading", 100, 75, -1, -1, $WS_POPUP, $WS_EX_TOPMOST ,$WS_EX_TOOLWINDOW)
    GUISetBkColor(0xC0DCC0)
    GUISetState(@SW_DISABLE)
    $Progress = GUICtrlCreateProgress(0, 5, 100, 17, $PBS_SMOOTH)
    $Checkbox1 = GUICtrlCreateCheckbox("Loading GUI...", 8, 24, 81, 17)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Checkbox2 = GUICtrlCreateCheckbox("Loading Icons...", 8, 40, 97, 17)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Checkbox3 = GUICtrlCreateCheckbox("Loading Menu...", 8, 56, 97, 17)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreatePic("", 0, 0, 108, 100, $SS_BITMAP)
    GUICtrlSetImage(-1, "C:\Dokumente und Einstellungen\TIM\Desktop\Neu Bitmap.bmp")
    GUISetState(@SW_SHOW, $Load)
    Sleep(50)

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

    $Sound = GUICreate("Sounds", 313, 200, -1, -1, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST ,$WS_EX_WINDOWEDGE))
    GUISetBkColor(0xC0DCC0, $Sound)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Hide", $Sound)
    $ListView1 = GUICtrlCreateListView("Taste|Frequenz|Delay", 8, 8, 170, 182)
    GUICtrlSendMsg(-1, 0x101E, 0, 42)
    GUICtrlSendMsg(-1, 0x101E, 1, 59)
    GUICtrlSendMsg(-1, 0x101E, 2, 42)
    Sleep(50)
    GUICtrlCreateListViewItem("1|120|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("2|140|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("3|160|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("4|180|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    Sleep(50)
    GUICtrlCreateListViewItem("5|200|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("6|220|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("7|240|100", $ListView1)
    Sleep(50)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("8|260|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("9|280|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("10|300|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("11|320|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("12|340|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("13|360|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("14|380|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("15|400|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("16|420|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    Sleep(50)
    GUICtrlCreateListViewItem("17|440|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("18|460|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("19|480|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    GUICtrlCreateListViewItem("20|0|100", $ListView1)
    GUICtrlSetOnEvent(-1, "Sounds")
    $NewF = GUICtrlCreateInput("", 184, 8, 57, 21, BitOR($ES_RIGHT, $ES_AUTOHSCROLL, $ES_NUMBER))
    Sleep(50)
    $NewD = GUICtrlCreateInput("", 248, 8, 57, 21, BitOR($ES_RIGHT, $ES_AUTOHSCROLL, $ES_NUMBER))
    $Accept = GUICtrlCreateButton("Übernehmen", 184, 32, 123, 25, 0)
    GUICtrlSetOnEvent(-1, "Apply")
    Sleep(50)
    GUICtrlSetData($Progress, 30)

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

    GUICtrlSetState($Checkbox1, $GUI_CHECKED)

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

    $Form = GUICreate("Frooty Loops für Arme - Final", 354, 272, -1, -1, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE,$WS_EX_ACCEPTFILES))
    GUISetBkColor(0xA6CAF0)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Close", $Form)
    $Group1 = GUICtrlCreateGroup("Menu", 4, 8, 345, 65)
    $Button1 = GUICtrlCreateButton("", 12, 24, 42, 42, $BS_ICON)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetOnEvent(-1, "Record")
    GUICtrlSetImage(-1, @SystemDir & "\shell32.dll", -41)
    Sleep(5)
    GUICtrlSetData($Progress, 35)
    $Button2 = GUICtrlCreateButton("", 60, 24, 42, 42, $BS_ICON)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetOnEvent(-1, "Delete")
    GUICtrlSetImage(-1, @SystemDir & "\shell32.dll", -132)
    Sleep(5)
    GUICtrlSetData($Progress, 40)
    $Button3 = GUICtrlCreateButton("", 108, 24, 42, 42, $BS_ICON)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetOnEvent(-1, "Show")
    GUICtrlSetImage(-1, @SystemDir & "\shell32.dll", -166)
    Sleep(5)
    GUICtrlSetData($Progress, 45)
    $Button4 = GUICtrlCreateButton("", 156, 24, 42, 42, $BS_ICON)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetOnEvent(-1, "Search")
    Sleep(50)
    GUICtrlSetImage(-1, @SystemDir & "\shell32.dll", -46)
    Sleep(5)
    GUICtrlSetData($Progress, 50)
    $Button5 = GUICtrlCreateButton("", 204, 24, 42, 42, $BS_ICON)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetOnEvent(-1, "Return_")
    GUICtrlSetImage(-1, @SystemDir & "\shell32.dll", -179)
    Sleep(5)
    GUICtrlSetData($Progress, 55)
    $Button6 = GUICtrlCreateButton("", 252, 24, 42, 42, $BS_ICON)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetOnEvent(-1, "Stop")
    GUICtrlSetImage(-1, @SystemDir & "\shell32.dll", -28)
    Sleep(5)
    GUICtrlSetState($Checkbox2, $GUI_CHECKED)
    $Checkbox1 = GUICtrlCreateCheckbox("", 300, 24, 42, 42, BitOR($BS_PUSHLIKE, $BS_ICON))
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetOnEvent(-1, "PlayIt")
    GUICtrlSetImage(-1, @SystemDir & "\shell32.dll", -169)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Keyboard", 8, 104, 337, 161)
    $Button9 = GUICtrlCreateButton("", 16, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_1")
    $Button7 = GUICtrlCreateButton("", 32, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_2")
    Sleep(50)
    $Button10 = GUICtrlCreateButton("", 48, 120, 19, 137, 0)
    GUICtrlSetData($Progress, 64)
    GUICtrlSetOnEvent(-1, "_3")
    $Button11 = GUICtrlCreateButton("", 64, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_4")
    $Button12 = GUICtrlCreateButton("", 80, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_5")
    $Button13 = GUICtrlCreateButton("", 96, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_6")
    Sleep(50)
    $Button14 = GUICtrlCreateButton("", 112, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_7")
    Sleep(5)
    GUICtrlSetData($Progress, 75)
    $Button15 = GUICtrlCreateButton("", 128, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_8")
    $Button16 = GUICtrlCreateButton("", 144, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_9")
    $Button17 = GUICtrlCreateButton("", 160, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_10")
    $Button18 = GUICtrlCreateButton("", 176, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_11")
    $Button19 = GUICtrlCreateButton("", 192, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_12")
    $Button20 = GUICtrlCreateButton("", 208, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_13")
    $Button21 = GUICtrlCreateButton("", 224, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_14")
    $Button22 = GUICtrlCreateButton("", 240, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_15")
    $Button23 = GUICtrlCreateButton("", 256, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_16")
    $Button24 = GUICtrlCreateButton("", 272, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_17")
    $Button25 = GUICtrlCreateButton("", 288, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_18")
    $Button26 = GUICtrlCreateButton("", 304, 120, 19, 137, 0)
    GUICtrlSetOnEvent(-1, "_19")
    $Button27 = GUICtrlCreateButton("D", 320, 120, 19, 21, 0)
    Sleep(200)
    GUICtrlSetState($Checkbox3, $GUI_CHECKED)
    GUICtrlSetOnEvent(-1, "_20")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Sleep(5)
    $Input1 = GUICtrlCreateInput("", 8, 80, 337, 21,$ES_READONLY)
    GUICtrlSetState(-1,$GUI_DROPACCEPTED)
    GUICtrlSetData($Progress, 100)
    Sleep(50)

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

    Opt("TrayOnEventMode",1)
    Opt('TrayMenuMode', 1)

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

    TraySetClick("9")
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"ShowIt")
    TraySetOnEvent($TRAY_EVENT_SECONDARYUP,"ShowIt")

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

    Func ShowIt()
    GUISetState(@SW_RESTORE,$Form)
    EndFunc

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

    If FileExists("Config.ini") Then
    $cindex = -1
    $c = -1
    For $rc = 1 To 20
    $c = $c + 1
    $cindex = $cindex + 1
    _GUICtrlListView_SetItemText($ListView1, $cindex, IniRead("Config.ini", "Keys", "Frequenz_" & $c, 0), 1)
    _GUICtrlListView_SetItemText($ListView1, $cindex, IniRead("Config.ini", "Keys", "Delay_" & $c, 0), 2)
    Next
    $c = -1
    $cindex = -1
    Else
    MsgBox(262192, "Fehler!", "Es wurde keine Config.ini gefunden!")
    EndIf

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

    GUISetState(@SW_HIDE, $Load)
    GUISetState(@SW_SHOW, $Form)
    TraySetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func Close()
    Exit
    EndFunc ;==>Close

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

    Func _1()
    _Beep(0)
    EndFunc ;==>_1

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

    Func _2()
    _Beep(1)
    EndFunc ;==>_2

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

    Func _3()
    _Beep(2)
    EndFunc ;==>_3

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

    Func _4()
    _Beep(3)
    EndFunc ;==>_4

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

    Func _5()
    _Beep(4)
    EndFunc ;==>_5

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

    Func _6()
    _Beep(5)
    EndFunc ;==>_6

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

    Func _7()
    _Beep(6)
    EndFunc ;==>_7

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

    Func _8()
    _Beep(7)
    EndFunc ;==>_8

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

    Func _9()
    _Beep(8)
    EndFunc ;==>_9

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

    Func _10()
    _Beep(9)
    EndFunc ;==>_10

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

    Func _11()
    _Beep(10)
    EndFunc ;==>_11

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

    Func _12()
    _Beep(11)
    EndFunc ;==>_12

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

    Func _13()
    _Beep(12)
    EndFunc ;==>_13

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

    Func _14()
    _Beep(13)
    EndFunc ;==>_14

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

    Func _15()
    _Beep(14)
    EndFunc ;==>_15

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

    Func _16()
    _Beep(15)
    EndFunc ;==>_16

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

    Func _17()
    _Beep(16)
    EndFunc ;==>_17

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

    Func _18()
    _Beep(17)
    EndFunc ;==>_18

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

    Func _19()
    _Beep(18)
    EndFunc ;==>_19

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

    Func _20()
    _Beep(19)
    EndFunc ;==>_20

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

    Func Record()
    $File = FileSelectFolder("Wähle deinen Ordner!", "", "", "")
    If $File = "" Then
    Sleep(100)
    Else
    If Not IsDeclared("sInputBoxAnswer") Then Local $sInputBoxAnswer
    $sInputBoxAnswer = InputBox("Frage!", "Wie soll der Name deiner Aufnahme heißen?", "Record", " ", "120", "130", "1", "1")
    Select
    Case @error = 0 ;OK - The string returned is valid
    $Count = 0
    If FileExists($File & "\" & $sInputBoxAnswer & ".frls") Then
    If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
    $iMsgBoxAnswer = MsgBox(262196, "Achtung!", "Die von ihnen ausgewählte Tonspur besteht bereits!" & @CRLF & "Wollen sie, sie überschreiben?")
    Select
    Case $iMsgBoxAnswer = 6 ;Yes
    FileDelete($File & "\" & $sInputBoxAnswer & ".frls")
    _FileCreate($File & "\" & $sInputBoxAnswer & ".frls")
    GUICtrlSetData($Input1, $File & "\" & $sInputBoxAnswer & ".frls")
    $Record = 1
    Case $iMsgBoxAnswer = 7 ;No
    Sleep(100)
    EndSelect

    Else
    _FileCreate($File & "\" & $sInputBoxAnswer & ".frls")
    GUICtrlSetData($Input1, $File & "\" & $sInputBoxAnswer & ".frls")
    $Record = 1
    EndIf
    Case @error = 1 ;The Cancel button was pushed
    $Record = 0
    Case @error = 3 ;The InputBox failed to open
    $Record = 0
    EndSelect
    EndIf
    EndFunc ;==>Record

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

    Func Delete()
    If GUICtrlRead($Input1) = "" Then
    $iMsgBoxAnswer = MsgBox(270384, "Fehler!", "Du hast bisher keine Aufnahme erstellt!", 5000)
    Else
    If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
    $iMsgBoxAnswer = MsgBox(270628, "Meldung!", "Willst du deine Aufnahme wirklich löschen?")
    Select
    Case $iMsgBoxAnswer = 6 ;Yes
    FileDelete(GUICtrlRead($Input1))
    GUICtrlSetData($Input1, "")
    Case $iMsgBoxAnswer = 7 ;No
    Sleep(100)
    EndSelect
    EndIf
    EndFunc ;==>Delete

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

    Func Hide()
    GUISetState(@SW_HIDE, $Sound)
    EndFunc ;==>Hide

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

    Func Show()
    GUISetState(@SW_SHOW, $Sound)
    EndFunc ;==>Show

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

    Func _Beep($Focus)
    _GUICtrlListView_SetItemSelected($ListView1, $Focus, True, True)
    Local $Index = _GUICtrlListView_GetSelectedIndices($ListView1, True)
    If $Index[0] = 0 Then Return
    Beep(_GUICtrlListView_GetItemText($ListView1, $Index[1], 1), _GUICtrlListView_GetItemText($ListView1, $Index[1], 2))
    _Write()
    EndFunc ;==>_Beep

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

    Func _Write()
    If $Record = 1 Then
    $Count = $Count + 1
    Local $Index = _GUICtrlListView_GetSelectedIndices($ListView1, True)
    If $Index[0] = 0 Then Return
    IniWrite(GUICtrlRead($Input1), $Count, "Frequenz", _GUICtrlListView_GetItemText($ListView1, $Index[1], 1))
    IniWrite(GUICtrlRead($Input1), $Count, "Delay", _GUICtrlListView_GetItemText($ListView1, $Index[1], 2))
    EndIf
    EndFunc ;==>_Write

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

    Func Stop()
    If $Record = 1 Then
    $Record = 0
    MsgBox(262208, "Fertiggestellt", "Ihre Aufnahme ist nun bereit, um wiedergegeben werden zu können!")
    EndIf
    EndFunc ;==>Stop

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

    Func Sounds()
    Local $Index = _GUICtrlListView_GetSelectedIndices($ListView1, True)
    If $Index[0] = 0 Then Return
    $Fre = _GUICtrlListView_GetItemText($ListView1, $Index[1], 1)
    $Del = _GUICtrlListView_GetItemText($ListView1, $Index[1], 2)
    GUICtrlSetData($NewF, $Fre)
    GUICtrlSetData($NewD, $Del)
    EndFunc ;==>Sounds

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

    Func Apply()
    $c = -1
    $cindex = -1
    $D = GUICtrlRead($NewD)
    $F = GUICtrlRead($NewF)
    Local $Index = _GUICtrlListView_GetSelectedIndices($ListView1, True)
    If $Index[0] = 0 Then Return
    _GUICtrlListView_SetItemText($ListView1, $Index[1], $F, 1)
    _GUICtrlListView_SetItemText($ListView1, $Index[1], $D, 2)
    FileDelete("Config.ini")
    _FileCreate(@ScriptDir & "\Config.ini")
    $CONF = @ScriptDir & "\Config.ini"
    For $conf1 = 1 To 20
    $c = $c + 1
    $cindex = $cindex + 1
    IniWrite($CONF, "Keys", "Frequenz_" & $c, _GUICtrlListView_GetItemText($ListView1, $cindex, 1))
    IniWrite($CONF, "Keys", "Delay_" & $c, _GUICtrlListView_GetItemText($ListView1, $cindex, 2))
    Next
    EndFunc ;==>Apply

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

    Func Search()
    $Playfile = FileOpenDialog("Wähle deine Tonspur", @ScriptDir, "(*.frls)", "", "")
    If $Playfile <> "" Then
    GUICtrlSetData($Input1, $Playfile)
    Else
    Sleep(100)
    EndIf
    EndFunc ;==>Search

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

    Func PlayIt()
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    If GUICtrlRead($Input1) <> "" Then
    $AS = _FileCountLines(GUICtrlRead($Input1))
    If $AS < 3 Then
    TrayTip("Meldung", "Leere Tonspur!", 1)
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    Else
    GUICtrlSetState($Input1,$GUI_DISABLE)
    GUISetState(@SW_LOCK, $Form)
    TrayTip("Meldung", "Die Tonspur wird abgespielt..." & @CRLF & "Pause with ESC!", 0, 0)
    $AS = _FileCountLines(GUICtrlRead($Input1))
    $Much = $AS / 3
    For $Sector = 1 To $Much
    If _IsPressed("1B", "user32.dll") Then
    GUISetState(@SW_UNLOCK, $Form)
    TrayTip("", "", 0)
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    ExitLoop
    Else
    Sleep(5)
    EndIf
    If IniRead(GUICtrlRead($Input1),$Sector, "Frequenz", 1) = "0" Then
    Sleep(IniRead(GUICtrlRead($Input1),$Sector, "Delay", 1))
    Else
    Beep(IniRead(GUICtrlRead($Input1),$Sector, "Frequenz", 1), IniRead(GUICtrlRead($Input1),$Sector, "Delay", 1))
    EndIf
    Next
    GUISetState(@SW_UNLOCK, $Form)
    TrayTip("", "", 0)
    GUICtrlSetState($Input1,$GUI_ENABLE)
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    EndIf
    Else
    MsgBox(262192, "Fehler!", "Es wurde keine Tonspur ausgewählt!")
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    EndIf
    Else
    EndIf
    EndFunc ;==>PlayIt

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

    Func Return_()
    If GUICtrlRead($Input1) <> "" Then
    $Record = 1
    $zu = _FileCountLines(GUICtrlRead($Input1))
    $zu = $zu / 3
    $Sector = $zu
    $Count = $zu
    Else
    MsgBox(262192, "Fehler!", "Kann ohne ausgewählte Tonspur nicht fortfahren!")
    EndIf
    EndFunc ;==>Return_

    [/autoit]

    neuer code:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <ProgressConstants.au3>
    #include <Misc.au3>
    #include <Constants.au3>

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

    Global Const $strConfig = @ScriptDir & "\Config.ini"

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

    Global $intTemp, $tmpCount, $strFile, $strPlayfile
    Global $strTemp, $blnFinish = False, $blnRecord = False
    Global $intMsg = 0, $tTimer = TimerInit()

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

    Opt("GUIOnEventMode", False)
    Opt("GUICloseOnESC", False)
    Opt("MustDeclareVars", True)

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

    #Region ; Form - Sounds
    Global $frmEdit = GUICreate("Sounds", 313, 200, Default, Default, Default, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST, $WS_EX_WINDOWEDGE))
    GUISetBkColor(0xC0DCC0, $frmEdit)

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

    Global $lstSounds = GUICtrlCreateListView("Taste|Frequenz|Delay", 8, 8, 170, 182)
    GUICtrlSendMsg(Default, 0x101E, 0, 42)
    GUICtrlSendMsg(Default, 0x101E, 1, 59)
    GUICtrlSendMsg(Default, 0x101E, 2, 42)

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

    Global $itmList[21] = [20]

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

    For $intTemp = 1 To $itmList[0] Step 1
    $strTemp = String($intTemp & "|" & Int(100 + Ceiling($intTemp * 20)) & "|100")
    $itmList[$intTemp] = GUICtrlCreateListViewItem($strTemp, $lstSounds)
    Next

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

    Global $txtFrequence = GUICtrlCreateInput("", 184, 8, 57, 21, BitOR($ES_RIGHT, $ES_AUTOHSCROLL, $ES_NUMBER))
    Global $txtDelay = GUICtrlCreateInput("", 248, 8, 57, 21, BitOR($ES_RIGHT, $ES_AUTOHSCROLL, $ES_NUMBER))
    Global $btnApply = GUICtrlCreateButton("Übernehmen", 184, 32, 123, 25, 0)
    #EndRegion ; Form - Sounds

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

    #Region ; Form - Main
    Global $frmMain = GUICreate("Frooty Loops für Arme - Final", 354, 272, Default, Default, Default, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_ACCEPTFILES))
    GUISetBkColor(0xA6CAF0, $frmMain)

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

    ; Optionsmenu
    Global $grpMenu = GUICtrlCreateGroup("Menu", 4, 8, 345, 65)
    Global $btnMenu[7] = [6]
    For $intTemp = 1 To $btnMenu[0] Step 1
    Switch $intTemp
    Case 5 To 6
    $btnMenu[$intTemp] = GUICtrlCreateCheckbox("", 12 + Ceiling(Ceiling($intTemp - 1) * 48), 24, 42, 42, BitOR($BS_PUSHLIKE, $BS_ICON))
    GUICtrlSetState(Default, $GUI_DISABLE)
    Case Else
    $btnMenu[$intTemp] = GUICtrlCreateButton("", 12 + Ceiling(Ceiling($intTemp - 1) * 48), 24, 42, 42, $BS_ICON)
    EndSwitch
    Switch $intTemp
    Case 1
    GUICtrlSetImage($btnMenu[$intTemp], @SystemDir & "\shell32.dll", -41)
    GUICtrlSetTip($btnMenu[$intTemp], "Erstellt eine neue Tonspur.", "Neu:")
    Case 2
    GUICtrlSetImage($btnMenu[$intTemp], @SystemDir & "\shell32.dll", -132)
    GUICtrlSetTip($btnMenu[$intTemp], "Löscht die aktuelle Aufnahme.", "Löschen:")
    Case 3
    GUICtrlSetImage($btnMenu[$intTemp], @SystemDir & "\shell32.dll", -166)
    GUICtrlSetTip($btnMenu[$intTemp], "Ermöglicht das editieren der Ton- und Buttoneigenschaften.", "Editor:")
    Case 4
    GUICtrlSetImage($btnMenu[$intTemp], @SystemDir & "\shell32.dll", -46)
    GUICtrlSetTip($btnMenu[$intTemp], "Öffnet eine existierende Tonspur.", "Öffnen:")
    Case 5
    GUICtrlSetImage($btnMenu[$intTemp], @SystemDir & "\shell32.dll", -179)
    GUICtrlSetTip($btnMenu[$intTemp], "Startet und stoppt die Aufnahme in die aktuelle Datei.", "Aufnahme:")
    Case 6
    GUICtrlSetTip($btnMenu[$intTemp], "Spielt die aktuelle Tonspur ab.", "Abspielen:")
    GUICtrlSetImage($btnMenu[$intTemp], @SystemDir & "\shell32.dll", -169)
    Case Else
    EndSwitch
    GUICtrlSetCursor(Default, 0)
    Next

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

    ; Keyboard
    Global $grpKeyboard = GUICtrlCreateGroup("Keyboard", 8, 104, 337, 161)
    Global $btnKeyboard[21] = [20]

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

    For $intTemp = 1 To $btnKeyboard[0] Step 1
    $btnKeyboard[$intTemp] = GUICtrlCreateButton($intTemp, $intTemp * 16, 120, 19, 137, 0)
    Next

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

    Global $txtFile = GUICtrlCreateInput("", 8, 80, 337, 21, $ES_READONLY)
    GUICtrlSetState(Default, $GUI_DROPACCEPTED)
    #EndRegion ; Form - Main

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

    If FileExists($strConfig) Then
    For $intTemp = 1 To 20
    _GUICtrlListView_SetItemText($lstSounds, $intTemp - 1, IniRead($strConfig, "Keys", "Frequenz_" & $intTemp - 1, 0), 1)
    _GUICtrlListView_SetItemText($lstSounds, $intTemp - 1, IniRead($strConfig, "Keys", "Delay_" & $intTemp - 1, 0), 2)
    Next
    Else
    MsgBox(262192, "Fehler!", "Es wurde keine Config.ini gefunden!")
    EndIf

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

    GUISetState(@SW_SHOW, $frmMain)

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

    #Region ; Loop - Main
    While True
    If WinActive($frmMain) Then
    $intMsg = GUIGetMsg($frmMain)
    If $intMsg Then
    $blnFinish = False
    If $intMsg = -3 Then
    Exit
    Else
    For $intTemp = 1 To $btnMenu[0] Step 1
    If $intMsg = $btnMenu[$intTemp] Then
    Call("allEvents", $frmMain, "btnMenu", $intTemp)
    $blnFinish = True
    ExitLoop
    EndIf
    Next
    If Not $blnFinish Then
    For $intTemp = 1 To $btnKeyboard[0] Step 1
    If $intMsg = $btnKeyboard[$intTemp] Then
    Call("allEvents", $frmMain, "btnKeyboard", $intTemp)
    ExitLoop
    EndIf
    Next
    EndIf
    EndIf
    EndIf
    Else
    If WinActive($frmEdit) Then
    $intMsg = GUIGetMsg($frmEdit)
    If $intMsg Then
    $blnFinish = False
    If $intMsg = -3 Then
    GUISetState(@SW_HIDE, $frmEdit)
    Else
    For $intTemp = 1 To $itmList[0] Step 1
    If $intMsg = $itmList[$intTemp] Then
    Call("allEvents", $frmEdit, "lstItems", Default)
    $blnFinish = True
    ExitLoop
    EndIf
    Next
    If Not $blnFinish Then
    If $intMsg = $btnApply Then
    Call("allEvents", $frmEdit, "btnApply", Default)
    EndIf
    EndIf
    EndIf
    EndIf
    Else
    ContinueLoop
    EndIf
    EndIf
    If TimerDiff($tTimer) >= 1024 Then
    If GUICtrlRead($txtFile) <> "" Then
    If Not (GUICtrlRead($btnMenu[6]) = $GUI_CHECKED) Then
    GUICtrlSetState($btnMenu[5], $GUI_ENABLE)
    EndIf
    If Not (GUICtrlRead($btnMenu[5]) = $GUI_CHECKED) Then
    GUICtrlSetState($btnMenu[6], $GUI_ENABLE)
    EndIf
    Else
    If GUICtrlRead($btnMenu[5]) = $GUI_CHECKED Then
    GUICtrlSetState($btnMenu[5], $GUI_UNCHECKED)
    EndIf
    GUICtrlSetState($btnMenu[5], $GUI_DISABLE)
    If GUICtrlRead($btnMenu[6]) = $GUI_CHECKED Then
    GUICtrlSetState($btnMenu[6], $GUI_UNCHECKED)
    EndIf
    GUICtrlSetState($btnMenu[6], $GUI_DISABLE)
    EndIf
    $tTimer = TimerInit()
    EndIf
    WEnd
    #EndRegion ; Loop - Main

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

    Func allEvents($frmForm, $strCommands, $intParameter = Default)
    Switch $frmForm
    Case $frmMain
    Switch $strCommands
    Case "btnMenu"
    Switch $intParameter
    Case 1
    #Region ; Function - Neue Tonspur
    Local $strPath = FileSelectFolder("Wähle deinen Ordner!", "", "", "")
    If $strPath <> "" Then
    $strPath &= "\" & InputBox("Neue Datei", "Bitte übergeben sie einen Namen für die neue Datei:", "Record", " ", 120, 130, Default, Default) & ".frls"
    Select
    Case @error = 0 ;OK - The string returned is valid
    If FileExists($strPath) Then
    Local $intAnswer = MsgBox(262196, "Achtung!", "Die von ihnen ausgewählte Tonspur besteht bereits!" & @CRLF & "Wollen sie die bestehende Datei überschreiben?")
    Select
    Case $intAnswer = 6 ; Yes
    FileDelete($strPath)
    GUICtrlSetData($txtFile, $strPath)
    Case Else
    EndSelect
    Else
    GUICtrlSetData($txtFile, $strPath)
    EndIf
    Case Else
    EndSelect
    #EndRegion ; Function - Neue Tonspur
    EndIf
    Case 2
    #Region ; Function - Aufnahme löschen
    If GUICtrlRead($txtFile) = "" Then
    MsgBox(270384, "Fehler!", "Sie haben bisher keine Aufnahme erstellt!")
    Else
    Local $intAnswer = MsgBox(270628, "Meldung!", "Willst du deine Aufnahme wirklich löschen?")
    Select
    Case $intAnswer = 6 ;Yes
    Local $strTemp = GUICtrlRead($txtFile)
    FileDelete($strTemp)
    If Not FileExists($strTemp) Then MsgBox(0, "Benachrichtigung", "Ihre Aufnahme wurde erfolgreich gelöscht!")
    Case Else
    EndSelect
    EndIf
    #EndRegion ; Function - Aufnahme löschen
    Case 3
    #Region ; Function - Editor öffnen
    GUISetState(@SW_SHOW, $frmEdit)
    #EndRegion ; Function - Editor öffnen
    Case 4
    #Region ; Function - Datei öffnen
    Global $strPlayfile = FileOpenDialog("Wähle deine Tonspur", @ScriptDir, "(*.frls)", "", "")
    If $strPlayfile <> "" Then
    GUICtrlSetData($txtFile, $strPlayfile)
    Else
    MsgBox(270384, "Warnung!", "Sie haben keine Tonspur ausgewählt!")
    EndIf
    #EndRegion ; Function - Datei öffnen
    Case 5
    #Region ; Function - Aufnahme on/off
    If $blnRecord = True Then
    GUICtrlSetState($btnMenu[6], $GUI_ENABLE)
    $blnRecord = False
    Else
    If GUICtrlRead($btnMenu[6]) = $GUI_CHECKED Then GUICtrlSetState($btnMenu[6], $GUI_UNCHECKED)
    GUICtrlSetState($btnMenu[6], $GUI_DISABLE)
    $blnRecord = True
    EndIf
    #EndRegion ; Function - Aufnahme on/off
    Case 6
    #Region ; Function - Play
    If GUICtrlRead($txtFile) <> "" Then
    Local $tmpFile = GUICtrlRead($txtFile)
    Local $arrSections = IniReadSectionNames($tmpFile)
    If Not IsArray($arrSections) Then
    GUICtrlSetState($btnMenu[6], $GUI_UNCHECKED)
    Else
    If GUICtrlRead($btnMenu[5]) = $GUI_CHECKED Then GUICtrlSetState($btnMenu[5], $GUI_UNCHECKED)
    GUICtrlSetState($btnMenu[5], $GUI_DISABLE)
    For $intTemp = 1 To $arrSections[0]
    If GUICtrlRead($btnMenu[6]) = $GUI_UNCHECKED Then ExitLoop
    If IniRead($tmpFile, $arrSections[$intTemp], "Frequenz", 1) = "0" Then
    Sleep(IniRead($tmpFile, $arrSections[$intTemp], "Delay", 1))
    Else
    Beep(IniRead($tmpFile, $arrSections[$intTemp], "Frequenz", 1), IniRead($tmpFile, $arrSections[$intTemp], "Delay", 1))
    EndIf
    Next
    GUICtrlSetState($btnMenu[6], $GUI_UNCHECKED)
    EndIf
    EndIf
    #EndRegion ; Function - Play
    Case Else
    EndSwitch
    Case "btnKeyboard"
    Switch $intParameter
    Case 1 To 20
    #Region ; Function - Keyboard
    _GUICtrlListView_SetItemSelected($lstSounds, $intParameter - 1, True, True)
    Local $intIndex = _GUICtrlListView_GetSelectedIndices($lstSounds, True)
    If $intIndex[0] = 0 Then Return
    Beep(_GUICtrlListView_GetItemText($lstSounds, $intIndex[1], 1), _GUICtrlListView_GetItemText($lstSounds, $intIndex[1], 2))

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

    If $blnRecord = True Then
    Local $intIndex = _GUICtrlListView_GetSelectedIndices($lstSounds, True)
    Local $tmpFile = GUICtrlRead($txtFile)
    If $intIndex[0] = 0 Then Return
    Local $arrSections = IniReadSectionNames($tmpFile)
    If IsArray($arrSections) Then
    Local $newStep = String($arrSections[0] + 1)
    Else
    Local $newStep = 1
    EndIf
    IniWrite($tmpFile, $newStep, "Frequenz", _GUICtrlListView_GetItemText($lstSounds, $intIndex[1], 1))
    IniWrite($tmpFile, $newStep, "Delay", _GUICtrlListView_GetItemText($lstSounds, $intIndex[1], 2))
    EndIf
    #EndRegion ; Function - Keyboard
    Case Else
    EndSwitch
    Case Else
    EndSwitch
    Case $frmEdit
    Switch $strCommands
    Case "lstItems"
    #Region ; Function - Play sound
    Local $intIndex = _GUICtrlListView_GetSelectedIndices($lstSounds, True)
    If $intIndex[0] = 0 Then Return
    Local $intFrequence = _GUICtrlListView_GetItemText($lstSounds, $intIndex[1], 1)
    Local $intDelay = _GUICtrlListView_GetItemText($lstSounds, $intIndex[1], 2)
    GUICtrlSetData($txtFrequence, $intFrequence)
    GUICtrlSetData($txtDelay, $intDelay)
    #EndRegion ; Function - Play sound
    Case "btnApply"
    #Region ; Function - Apply changes
    Local $intDelay = GUICtrlRead($txtDelay)
    Local $intFrequence = GUICtrlRead($txtFrequence)
    Local $intIndex = _GUICtrlListView_GetSelectedIndices($lstSounds, True)
    If $intIndex[0] = 0 Then Return
    _GUICtrlListView_SetItemText($lstSounds, $intIndex[1], $intFrequence, 1)
    _GUICtrlListView_SetItemText($lstSounds, $intIndex[1], $intDelay, 2)
    For $intTemp = 1 To 20
    IniWrite($strConfig, "Keys", "Frequenz_" & $intTemp - 1, _GUICtrlListView_GetItemText($lstSounds, $intTemp - 1, 1))
    IniWrite($strConfig, "Keys", "Delay_" & $intTemp - 1, _GUICtrlListView_GetItemText($lstSounds, $intTemp - 1, 2))
    Next
    #EndRegion ; Function - Apply changes
    Case Else
    EndSwitch
    Case Else
    EndSwitch
    EndFunc ;==>allEvents

    [/autoit]

    2 Mal editiert, zuletzt von Darknoop (19. September 2010 um 18:07)

  • Bei mir quakt's leider nur ganz leise "aus den Tiefen des PC's" (PC-Speaker)...
    Die Soundkarten-Boxen bleiben stumm.

    -Rasta-

    das ist auch der Sinn des Zwecks davon ...

    Beep xD

  • Jeskola Buzz ist kostenlos und hat auch sehr viele Möglichkeiten, wenn man es zum laufen bekommt ( ;) ). Es sieht halt nicht ganz so schon aus, wobei wir Programmierer wissen sollten, dass es nicht nur aufs äußere ankommt. :rolleyes:

    Edit: Zum Programm:
    Die Oberfläche ist recht übersichtlich gestaltet, die Bedienung jedoch irgendwie gewöhnungsbedürftig, auf die Buttons hätte man vllt. noch irgendetwas draufschreiben können, um die Identifikation der "Tasten" zu erleichtern. ;)
    Zudem wäre eine Anzeige, welche Töne man schon erzeugt hat gut, auch ein löschen einzelner Töne wäre wünschenswert. Und mich nervt es, das mit "Aufnahme löschen" nicht die Aufnahme im Arbeitsspeicher gelöscht wird, sondern auf der Platte und ich dann erstmal wieder einen neuen Speicherort auswählen muss.
    So, genug herumkritisiert, schönes Programm :thumbup:

    Edit2: Was ich noch sagen wollte: Das "für arme" hört sich irgendwie komisch an ;)

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

    3 Mal editiert, zuletzt von Fast2 (4. November 2008 um 18:11)

  • welcher include brauchts für _beep ? ^^

    noch was

    beim beenden hängt sich das programm auf ^^

    Einmal editiert, zuletzt von K1773R (4. November 2008 um 21:38)