Hallo, nach länge eines Tastendruckes möchte ich ein Ton ausgeben (Morsezeichen-Ton).
Irgendwie finde ich keinen Anfang, wie ich mich mit den Soundbefehlen einen Ton ausgebe, der so lang ist, wie ich die Taste festhalte.
Wer kann helfen?
Danke.
gruss
Ton als Morsezeichen ausgeben mit Tastendruck.
Re: Ton als Morsezeichen ausgeben mit Tastendruck.
Den Ton selbst musst du selbst erstellen (zB mit Audacity, Sin-Schwingung)
Dann kannst du diese Sound-Datei in PB einladen und mit PlaySound() wiedergeben, wenn die Taste gedrückt wird.
Wird die Taste losgelassen brichst du den Sound mit StopSound() ab.
PlaySound dabei als Schleife abspielen lassen.
Dann kannst du diese Sound-Datei in PB einladen und mit PlaySound() wiedergeben, wenn die Taste gedrückt wird.
Wird die Taste losgelassen brichst du den Sound mit StopSound() ab.
PlaySound dabei als Schleife abspielen lassen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Ton als Morsezeichen ausgeben mit Tastendruck.
Hmmm., wie wird denn eine Taste immer abgefragt ob sie gedrückt ist oder losgelassen wird?
Wenn ich sie einmal drücke, wird ja der Ton abgespielt, ich habe den Finger aber immer noch auf diese Taste, wird der Ton immer wieder neu abgespielt ?
Es gibt ja lange Töne und kurze.
gruss
Wenn ich sie einmal drücke, wird ja der Ton abgespielt, ich habe den Finger aber immer noch auf diese Taste, wird der Ton immer wieder neu abgespielt ?
Es gibt ja lange Töne und kurze.
gruss
Re: Ton als Morsezeichen ausgeben mit Tastendruck.
Wo möchtest du abfragen, ob z.B. die linke Maustaste gedrückt wurde?
In einem Screen?
Oder in einem Fenster?
In einem Screen?
Code: Alles auswählen
EnableExplicit
InitSprite()
InitMouse()
InitKeyboard()
If OpenScreen(1024,768,32,"Screen")
SetFrameRate(60)
Repeat
FlipBuffers()
ClearScreen(RGB(0,0,0))
ExamineKeyboard()
ExamineMouse()
If MouseButton(#PB_MouseButton_Left)=1
If StartDrawing(ScreenOutput())
DrawText(350,350,"Linke Maustaste wird gerade gedrückt.",RGB(200,200,255),0)
StopDrawing()
EndIf
EndIf
If KeyboardReleased(#PB_Key_Escape)
End
EndIf
ForEver
EndIfCode: Alles auswählen
EnableExplicit
Procedure WindowCallback(Windowid,Message,wParam,lParam)
Protected Result
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_LBUTTONDOWN
Debug "Linke Maustaste wird gerade gedrückt."
Case #WM_LBUTTONUP
Debug "Linke Maustaste wurde losgelassen."
EndSelect
ProcedureReturn Result
EndProcedure
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowCallback(@WindowCallback())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIfRe: Ton als Morsezeichen ausgeben mit Tastendruck.
Jup, danke.
Kann ich auch noch gut verwenden.
Ich wollte die A-Taste nehmen zum Morsen.
Gruss
Kann ich auch noch gut verwenden.
Ich wollte die A-Taste nehmen zum Morsen.
Gruss
Re: Ton als Morsezeichen ausgeben mit Tastendruck.
In einem Screen:
Allgemein z.B. in einem Fenster:
Code: Alles auswählen
EnableExplicit
InitSprite()
InitMouse()
InitKeyboard()
If OpenScreen(1024,768,32,"Screen")
SetFrameRate(60)
Repeat
FlipBuffers()
ClearScreen(RGB(0,0,0))
ExamineKeyboard()
ExamineMouse()
If KeyboardPushed(#PB_Key_A)
If StartDrawing(ScreenOutput())
DrawText(350,350,"A-Taste wird gerade gedrückt.",RGB(200,200,255),0)
StopDrawing()
EndIf
EndIf
If KeyboardReleased(#PB_Key_Escape)
End
EndIf
ForEver
EndIfCode: Alles auswählen
If GetAsyncKeyState_(#VK_A)
Debug "A-Taste wird gerade gedrückt."
EndIf
