@th.meger ich möchte mich ganz arg bedanken, dass hat mir ziemlich Arbeit gespart(ich hätte nämlich so wie ich es mit c' verfahren habe es mit jedem Ton gemacht) hier glaub ich sind Funktionen sehr nützlich, dass wird mir in Zukunft bei solchen sachen helfen.
:kiss:th.meger
Warum braucht man für den Funktionsaufruf kein Call? Geht dass einfach so?
Spoiler anzeigen
;~ Zweck: Einfacheres erstellen von Beeptönchenreihen.
;~ Autor: Vinschni
#include <GuiConstants.au3>
#include <File.au3>
$Datei = @ScriptDir & "\beep.ini"
;~ Hauptfenstergui
$hauptfenster = GUICreate("Beep Komponist 0.1", 335, 245, -1, -1)
$hauptfensterpos = WinGetPos($hauptfenster, "")
GUISetState(@SW_SHOW)
GUISetBkColor(0xFFFFFF)
$Pausen = GUICtrlCreateGroup("Pausen", 10, 10, 120, 140)
$Tone = GUICtrlCreateGroup("Töne", 140, 10, 190, 230)
$c1 = GUICtrlCreateButton("c'", 150, 30, 80, 20)
$cis1 = GUICtrlCreateButton("cis'", 150, 60, 80, 20)
$d1 = GUICtrlCreateButton("d'", 150, 90, 80, 20)
$dis1 = GUICtrlCreateButton("dis'", 150, 120, 80, 20)
$e1 = GUICtrlCreateButton("e'", 150, 150, 80, 20)
$f1 = GUICtrlCreateButton("f'", 150, 180, 80, 20)
$fis1 = GUICtrlCreateButton("fis'", 150, 210, 80, 20)
$c2 = GUICtrlCreateButton("c''", 240, 180, 80, 20)
$h1 = GUICtrlCreateButton("h'", 240, 150, 80, 20)
$g1 = GUICtrlCreateButton("g'", 240, 30, 80, 20)
$gis1 = GUICtrlCreateButton("gis'", 240, 60, 80, 20)
$a1 = GUICtrlCreateButton("a'", 240, 90, 80, 20)
$ais1 = GUICtrlCreateButton("ais'", 240, 120, 80, 20)
$ganzepause = GUICtrlCreateButton("Ganze Pause", 20, 30, 90, 20)
$halbepause = GUICtrlCreateButton("Halbe Pause", 20, 60, 90, 20)
$virtelpause = GUICtrlCreateButton("Viertel Pause", 20, 90, 90, 20)
$achtelpause = GUICtrlCreateButton("Achtel Pause", 20, 120, 90, 20)
$quit = GUICtrlCreateButton("Schließen", 10, 220, 120, 20)
$incode = GUICtrlCreateButton("In Code umwandeln", 10, 180, 120, 20)
$iniloeschen = GUICtrlCreateButton(".ini löschen", 10, 200, 120, 20)
$abspielen = GUICtrlCreateButton("Abspielen", 10, 160, 120, 20)
;~ Notenlängengui
$toolfenster = GUICreate("Notenlängen", 130, 100, $hauptfensterpos[0] + 342, $hauptfensterpos[1] + 0, -1, -1, $hauptfenster)
GUISetState(@SW_SHOW, $toolfenster)
$GanzeNote = GUICtrlCreateRadio("Ganze Note", 18, 0, 100, 20)
GUICtrlSetState($GanzeNote, $GUI_CHECKED)
$HalbeNote = GUICtrlCreateRadio("Halbe Note", 18, 20, 100, 20)
$ViertelNote = GUICtrlCreateRadio("Viertel Note", 18, 40, 100, 20)
$AchtelNote = GUICtrlCreateRadio("Achtel Note", 18, 60, 100, 20)
GUISwitch($hauptfenster)
GUISetState(@SW_SHOW)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $c1
_write(264)
Case $msg = $cis1
_write(278)
Case $msg = $d1
_write(297)
Case $msg = $dis1
_write(313)
Case $msg = $e1
_write(330)
Case $msg = $f1
_write(352)
Case $msg = $fis1
_write(374)
Case $msg = $c2
_write(528)
Case $msg = $h1
_write(495)
Case $msg = $g1
_write(396)
Case $msg = $gis1
_write(418)
Case $msg = $a1
_write(440)
Case $msg = $ais1
_write(467)
Case $msg = $ganzepause
FileWrite($Datei, "Sleep(1000)" & @CRLF)
Case $msg = $halbepause
FileWrite($Datei, "Sleep(500)" & @CRLF)
Case $msg = $virtelpause
FileWrite($Datei, "Sleep(250)" & @CRLF)
Case $msg = $achtelpause
FileWrite($Datei, "Sleep(125)" & @CRLF)
Case $msg = $quit
Exit
Case $msg = $incode
Global $Codedat = @DesktopDir & "\Beep Komposition " & @MIN & @SEC & ".au3"
FileCopy($Datei, @DesktopDir & "\Beep Komposition " & @MIN & @SEC & ".au3")
_FileWriteToLine($Codedat, 0, "Code erstellt durch Beep Komponist 0.1")
IniWrite(@ScriptDir & "\beep1.ini", "File", "Path", '"' & $Codedat & '"')
Case $msg = $iniloeschen
FileDelete($Datei)
Case $msg = $abspielen
$path = IniRead(@ScriptDir & "\beep1.ini", "File", "Path", "Not Found!")
If FileExists($path) Then Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $path & '"', '', @SW_HIDE)
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
If $msg[1] = $toolfenster Then
Exit
GUISwitch($toolfenster)
GUIDelete()
ElseIf $msg[1] = $hauptfenster Then
Exit
GUISwitch($hauptfenster)
GUIDelete()
Exit
EndIf
Case Else
;;;
EndSelect
WEnd
Func _write($note)
Select
Case GUICtrlRead($GanzeNote) = $GUI_CHECKED
FileWrite($Datei, "Beep(" & $note & ",1000)" & @CRLF)
Beep($note, 1000)
Case GUICtrlRead($HalbeNote) = $GUI_CHECKED
FileWrite($Datei, "Beep(" & $note & ",500)" & @CRLF)
Beep($note, 500)
Case GUICtrlRead($ViertelNote) = $GUI_CHECKED
FileWrite($Datei, "Beep(" & $note & ",250)" & @CRLF)
Beep($note, 250)
Case GUICtrlRead($AchtelNote) = $GUI_CHECKED
FileWrite($Datei, "Beep(" & $note & ",125)" & @CRLF)
Beep($note, 125)
EndSelect
EndFunc ;==>_write
Ich hab die Func nun auch in die anderen Töne reingebracht, und auch die gewählte Tonlänge wird nun gleich beim eingeben mitabgespielt.
PS: Vielleicht hat ja jemand Lust ein paar Liedchen nachzumachen und hier zu posten, gtaspider hat auch mal Klingeltöne gemacht, dass wäre nun einfacher möglich.