Hotkey-Klavier v 1.0

  • Da war mir mal lw, da hab ich ein kleines script geschrieben: Das Hotkey Klavier.
    Note = Frequenz = taste
    A = 440 = 1

    A# = 466,16 = q

    H = 493,88 =2

    C = 523,25 = 3

    C# = 554,37 = w

    D = 587,33=4

    D# = 622,25 =

    E = 659,26 =5

    F = 698,46 = 6

    F# = 739,99 = e

    G = 783,99 = 7

    G# = 830,61 = r

    A = 880 = 8
    ______________________________

    EIN riesiges danke an stayawayknight weil er mir die Pause func geschrieben hat.

    Script:

    Spoiler anzeigen
    [autoit]


    HotKeySet("{PAUSE}", "TogglePause")
    HotKeySet("{ESC}", "Terminate")
    HotKeySet("{1}", "boop1")
    HotKeySet("{2}", "boop2")
    HotKeySet("{3}", "boop3")
    HotKeySet("{4}", "boop4")
    HotKeySet("{5}", "boop5")
    HotKeySet("{6}", "boop6")
    HotKeySet("{7}", "boop7")
    HotKeySet("{8}", "boop8")
    HotKeySet("{q}", "boop1r")
    HotKeySet("{w}", "boop2r")
    HotKeySet("{e}", "boop3r")
    HotKeySet("{r}", "boop4r")
    HotKeySet("{t}", "boop5r")

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

    $Pause = False

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

    While 1
    Sleep(100)
    WEnd
    ;;;;;;;;

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

    Func TogglePause()
    If $Pause = True Then
    $Pause = False
    ToolTip("", 0, 0, "")
    Sleep( 1000 )

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

    Else
    $Pause = True
    While $Pause = True
    ToolTip("Pause", 0, 0, "Hotkey-Klavier", 8)

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

    WEnd

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

    EndIf
    EndFunc ;==>TogglePause

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

    Func Terminate()
    ToolTip("END", 0, 0, "Wird beendet", 8)
    Sleep( 2000 )
    Exit
    EndFunc ;==>Terminate

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

    Func boop1()
    If $Pause = False Then
    Beep(440, 100)
    EndIf
    EndFunc ;==>boop1

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

    Func boop2()
    If $Pause = False Then
    Beep(493.88, 100)
    EndIf
    EndFunc ;==>boop2

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

    Func boop3()
    If $Pause = False Then
    Beep(523.25, 100)
    EndIf
    EndFunc ;==>boop3

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

    Func boop4()
    If $Pause = False Then
    Beep(587.33, 100)
    EndIf
    EndFunc ;==>boop4

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

    Func boop5()
    If $Pause = False Then
    Beep(659.26, 100)
    EndIf
    EndFunc ;==>boop5

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

    Func boop6()
    If $Pause = False Then
    Beep(698.46, 100)
    EndIf

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

    EndFunc ;==>boop6

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

    Func boop7()
    If $Pause = False Then
    Beep(783.99, 100)
    EndIf
    EndFunc ;==>boop7

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

    Func boop8()
    If $Pause = False Then
    Beep(880, 100)
    EndIf
    EndFunc ;==>boop8

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

    Func boop1r()
    If $Pause = False Then
    Beep(466.16, 100)
    EndIf
    EndFunc ;==>boop1r

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

    Func boop2r()
    If $Pause = False Then
    Beep(554.37, 100)
    EndIf
    EndFunc ;==>boop2r

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

    Func boop3r()
    If $Pause = False Then
    Beep(622.25, 100)
    EndIf
    EndFunc ;==>boop3r

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

    Func boop4r()
    If $Pause = False Then
    Beep(739.99, 100)
    EndIf
    EndFunc ;==>boop4r

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

    Func boop5r()
    If $Pause = False Then
    Beep(830.61, 100)
    EndIf
    EndFunc ;==>boop5r

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

    Exit

    [/autoit]


    BEKANNTE BUG´s
    Keine (bis jetzt :D)


    ToDo List

    • Aufnehmen/Aufnahme beenden/Afunahme Abspielen
    • Eigenen Dateinamen für Aufnehmen definieren
    • Timer einbauen
    • Beep zeit selbst definieren

    Achtung:
    Vorschläge werden zur kenntniss genommen, aber nicht umbedingt bearbeitet!
    (wegen den ganzen hilfe posts^^)

    4 Mal editiert, zuletzt von darksider3 (28. Juli 2010 um 20:17)

  • du könntest das ganze aufnehmen, wenn du z.b. eine .txt anlegst und dort dann zeile für zeile jeweils die frequenz oder die note angibst. dann kannst du das alles leicht wiederholen!^^

  • Die aufnahme wird in v1.5 eingefügt, die ist vorraussichtlich übermorgen fertig.
    Bitte keine aufnahme scripts senden, wir haben schon alles geplant ;)
    trotzdem thx für die scripts =)

    mfg
    Darksider3

  • Hey.
    Das ganze ist noch sehr zu vereinfachen, vllt schaust du dir mal Arrays an.
    Aber so wie du es aufgebaut hast ist auch noch um die hälte verkürzbar.
    Soll jetzt keine schwere kritik sein aber man kuckt doch allgemein immer, dass sein Script so übersichtlich wie möglich ist und umsolänger ein Script wir, umso unübersichtlicher kann es werden

    Spoiler anzeigen
    [autoit]

    HotKeySet("{PAUSE}", "TogglePause")
    HotKeySet("{ESC}", "Terminate")
    HotKeySet("{1}", "boop1")
    HotKeySet("{2}", "boop2")
    HotKeySet("{3}", "boop3")
    HotKeySet("{4}", "boop4")
    HotKeySet("{5}", "boop5")
    HotKeySet("{6}", "boop6")
    HotKeySet("{7}", "boop7")
    HotKeySet("{8}", "boop8")
    HotKeySet("{q}", "boop1r")
    HotKeySet("{w}", "boop2r")
    HotKeySet("{e}", "boop3r")
    HotKeySet("{r}", "boop4r")
    HotKeySet("{t}", "boop5r")

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

    $Pause = False

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

    While 1
    Sleep(100)
    WEnd
    ;;;;;;;;

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

    Func TogglePause()
    If $Pause = True Then
    $Pause = False
    ToolTip("", 0, 0, "")
    Sleep( 1000 )
    Else
    $Pause = True
    While $Pause = True
    ToolTip("Pause", 0, 0, "Hotkey-Klavier", 8)
    WEnd
    EndIf
    EndFunc ;==>TogglePause

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

    Func Terminate()
    ToolTip("END", 0, 0, "Wird beendet", 8)
    Sleep( 2000 )
    Exit
    EndFunc ;==>Terminate

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

    Func boop1()
    If $Pause = False Then Beep(440, 100)
    EndFunc ;==>boop1

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

    Func boop2()
    If $Pause = False Then Beep(493.88, 100)
    EndFunc ;==>boop2

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

    Func boop3()
    If $Pause = False Then Beep(523.25, 100)
    EndFunc ;==>boop3

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

    Func boop4()
    If $Pause = False Then Beep(587.33, 100)
    EndFunc ;==>boop4

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

    Func boop5()
    If $Pause = False Then Beep(659.26, 100)
    EndFunc ;==>boop5

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

    Func boop6()
    If $Pause = False Then Beep(698.46, 100)
    EndFunc ;==>boop6

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

    Func boop7()
    If $Pause = False Then Beep(783.99, 100)
    EndFunc ;==>boop7

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

    Func boop8()
    If $Pause = False Then Beep(880, 100)
    EndFunc ;==>boop8

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

    Func boop1r()
    If $Pause = False Then Beep(466.16, 100)
    EndFunc ;==>boop1r

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

    Func boop2r()
    If $Pause = False Then Beep(554.37, 100)
    EndFunc ;==>boop2r

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

    Func boop3r()
    If $Pause = False Then Beep(622.25, 100)
    EndFunc ;==>boop3r

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

    Func boop4r()
    If $Pause = False Then Beep(739.99, 100)
    EndFunc ;==>boop4r

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

    Func boop5r()
    If $Pause = False Then Beep(830.61, 100)
    EndFunc ;==>boop5r

    [/autoit]


    mfg Darter

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • ja deswegen hab ich ja auch die extra abstande reingebaut, so finden wir das übersichtlicher^^

  • Nette Umsetzung eines Klaviers.
    Ich finds wirklich gut gelungen.
    Wenn du es weiter ausbaust wirds noch besser.
    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • wie schon gesagt, wir werden es ab morgen bzw. übermorgen erweitern, lasst uns doch ein bisschen zeit.
    Schließlich sind wir auch nur menschen (und wenn auch talentierte :D:D)

  • hier meine version mit gui:
    (ja ich weiß, aber es war einfach ein ansporn für mich^^)

    Spoiler anzeigen
    [autoit]

    Local $Aufnahme = False, $Speicherort = "", $oft = 0
    $Dauer = 100
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Alizatur", 689, 339, 360, 155)
    $Group1 = GUICtrlCreateGroup("A", 8, 0, 65, 193)
    $A = GUICtrlCreateButton("", 8, 40, 65, 153, 0)
    $AVal = GUICtrlCreateInput("440", 8, 16, 65, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("A#", 72, 0, 33, 193)
    $AR = GUICtrlCreateButton("", 72, 40, 33, 153, 0)
    $ARVal = GUICtrlCreateInput("466,16", 72, 16, 33, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("H", 104, 0, 65, 193)
    $H = GUICtrlCreateButton("", 104, 40, 65, 153, 0)
    $HVal = GUICtrlCreateInput("493,88", 104, 16, 65, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("C", 168, 0, 65, 193)
    $C = GUICtrlCreateButton("", 168, 40, 65, 153, 0)
    $CVal = GUICtrlCreateInput("523,33", 168, 16, 65, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group5 = GUICtrlCreateGroup("D", 264, 0, 65, 193)
    $D = GUICtrlCreateButton("", 264, 40, 65, 153, 0)
    $DVal = GUICtrlCreateInput("587,33", 264, 16, 65, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group6 = GUICtrlCreateGroup("C#", 232, 0, 33, 193)
    $CR = GUICtrlCreateButton("", 232, 40, 33, 153, 0)
    $CRVal = GUICtrlCreateInput("554,37", 232, 16, 33, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group9 = GUICtrlCreateGroup("D#", 328, 0, 33, 193)
    $DR = GUICtrlCreateButton("", 328, 40, 33, 153, 0)
    $DRVal = GUICtrlCreateInput("622,25", 328, 16, 33, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group10 = GUICtrlCreateGroup("E", 360, 0, 65, 193)
    $E = GUICtrlCreateButton("", 360, 40, 65, 153, 0)
    $EVal = GUICtrlCreateInput("659,26", 360, 16, 65, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group11 = GUICtrlCreateGroup("F", 424, 0, 65, 193)
    $F = GUICtrlCreateButton("", 424, 40, 65, 153, 0)
    $FVal = GUICtrlCreateInput("698,46", 424, 16, 65, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group12 = GUICtrlCreateGroup("F#", 488, 0, 33, 193)
    $FR = GUICtrlCreateButton("", 488, 40, 33, 153, 0)
    $FRVal = GUICtrlCreateInput("739,99", 488, 16, 33, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group13 = GUICtrlCreateGroup("G", 520, 0, 65, 193)
    $G = GUICtrlCreateButton("", 520, 40, 65, 153, 0)
    $GVal = GUICtrlCreateInput("783,99", 520, 16, 65, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group14 = GUICtrlCreateGroup("G#", 584, 0, 33, 193)
    $GR = GUICtrlCreateButton("", 584, 40, 33, 153, 0)
    $GRVal = GUICtrlCreateInput("830,61", 584, 16, 33, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group15 = GUICtrlCreateGroup("A", 616, 0, 65, 193)
    $A2 = GUICtrlCreateButton("", 616, 40, 65, 153, 0)
    $A2Val = GUICtrlCreateInput("880", 616, 16, 65, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Aufnahme starten", 8, 200, 99, 33, 0)
    GUICtrlSetState($Button1, $GUI_DISABLE)
    $Button2 = GUICtrlCreateButton("Aufnahme beenden", 144, 200, 107, 33, 0)
    GUICtrlSetState($Button2, $GUI_DISABLE)
    $Button3 = GUICtrlCreateButton("Speicherort", 288, 200, 107, 33, 0)
    $Button4 = GUICtrlCreateButton("Aufnahme hören", 432, 200, 107, 33, 0)
    GUICtrlSetState($Button4, $GUI_DISABLE)
    $Button5 = GUICtrlCreateButton("Aufnahme löschen", 576, 200, 107, 33, 0)
    GUICtrlSetState($Button5, $GUI_DISABLE)
    $Edit1 = GUICtrlCreateEdit("", 8, 240, 673, 89)
    GUISetState()
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Aufnahme = True
    GUICtrlSetState($Button1, $GUI_DISABLE)
    GUICtrlSetState($Button4, $GUI_DISABLE)
    GUICtrlSetState($Button3, $GUI_DISABLE)
    GUICtrlSetState($Button2, $GUI_ENABLE)
    $oft += 1
    Case $Button2
    $Aufnahme = False
    GUICtrlSetState($Button1, $GUI_ENABLE)
    GUICtrlSetState($Button4, $GUI_ENABLE)
    GUICtrlSetState($Button3, $GUI_ENABLE)
    GUICtrlSetState($Button2, $GUI_DISABLE)
    If FileExists($Speicherort) Then FileDelete($Speicherort)
    FileWrite($Speicherort, GUICtrlRead($Edit1))
    Case $Button3
    GUICtrlSetState($Button1, $GUI_DISABLE)
    GUICtrlSetState($Button2, $GUI_DISABLE)
    GUICtrlSetState($Button3, $GUI_DISABLE)
    GUICtrlSetState($Button4, $GUI_DISABLE)
    $Speicherort = FileOpenDialog("Speicherort auswählen", "", "Alizatur Dateien (*.azd)", 8, "Mein erstes werk.azd", $Form1)
    If Not @error Then GUICtrlSetState($Button1, $GUI_ENABLE)
    Case $Button4
    If $oft > 0 Then
    $lines = ""
    _FileReadToArray($Speicherort, $lines)
    If IsArray($lines) And Not @error Then
    For $i = 1 To $lines[0]
    Beep($lines[$i], $Dauer)
    Next
    EndIf
    EndIf
    GUICtrlSetState($Button1, $GUI_ENABLE)
    GUICtrlSetState($Button3, $GUI_ENABLE)
    GUICtrlSetState($Button4, $GUI_ENABLE)
    Case $Button5
    If MsgBox(4, "Wirklich löschen?", "Möchten sie die Aufnahme wirklich löschen?") = 6 Then FileDelete($Speicherort)
    ;#################################Tasten##################################################################################
    Case $A
    If $Aufnahme = True Then
    Beep(GUICtrlRead($AVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($AVal) & @CRLF)
    EndIf
    Case $AR
    If $Aufnahme = True Then
    Beep(GUICtrlRead($ARVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($ARVal) & @CRLF)
    EndIf
    Case $H
    If $Aufnahme = True Then
    Beep(GUICtrlRead($HVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($HVal) & @CRLF)
    EndIf
    Case $C
    If $Aufnahme = True Then
    Beep(GUICtrlRead($CVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($CVal) & @CRLF)
    EndIf
    Case $CR
    If $Aufnahme = True Then
    Beep(GUICtrlRead($CRVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($CRVal) & @CRLF)
    EndIf
    Case $D
    If $Aufnahme = True Then
    Beep(GUICtrlRead($DVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($DVal) & @CRLF)
    EndIf
    Case $DR
    If $Aufnahme = True Then
    Beep(GUICtrlRead($DRVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($DRVal) & @CRLF)
    EndIf
    Case $E
    If $Aufnahme = True Then
    Beep(GUICtrlRead($EVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($EVal) & @CRLF)
    EndIf
    Case $F
    If $Aufnahme = True Then
    Beep(GUICtrlRead($FVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($FVal) & @CRLF)
    EndIf
    Case $FR
    If $Aufnahme = True Then
    Beep(GUICtrlRead($FRVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($FRVal) & @CRLF)
    EndIf
    Case $G
    If $Aufnahme = True Then
    Beep(GUICtrlRead($GVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($GVal) & @CRLF)
    EndIf
    Case $GR
    If $Aufnahme = True Then
    Beep(GUICtrlRead($GRVal), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($GRVal) & @CRLF)
    EndIf
    Case $A2
    If $Aufnahme = True Then
    Beep(GUICtrlRead($A2Val), $Dauer)
    GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & GUICtrlRead($A2Val) & @CRLF)
    EndIf
    ;#################################Tasten###end############################################################################
    EndSwitch
    WEnd

    [/autoit]
  • Tja wenn man nunmal ein Skript veröffentlicht bevor es fertig ist muss man mit der Angst leben das einem dann massiv geholfen wird... ;)
    Ich will mich daher den fiesen Hilfestellern anschließen und den Hinweis geben das man die Frequenzen nicht fest eintragen muss sondern sie auch über den Kammerton berechnen kann.

    Für unsere europäische Tonleiter hab ich sowas schonmal umgesetzt:
    >>Link1<<
    >>Link2<<