BeepingShit - Das so ziemlich unnötigste Programm der Welt

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

BeepingShit - Das so ziemlich unnötigste Programm der Welt

Beitrag von PureBasic4.0 »

Hi, Leute

Hatte gerade mal 10 Minuten Zeit und habe zum Spaß mal das hier geproggt.

ES IST WIRKLICH DAS UNNÖTIGSTE PROGRAMM DER WELT! Ich erwarte deshalb auch kein gutes Feedback von euch. Wenn man Lust dazu hat, kann man es als Scherzprog durchgehen lassen. Hier der Code:

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #TrackBar_0
  #CheckBox_0
  #Text_0
  #Text_1
  #Text_2
  #TrackBar_1
  #Text_3
EndEnumeration

Global Tonhoehe
Global Beepen
Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 600, 216, "Beeping-Shit - Das so ziemlich unnötigste Programm der Welt © 2007 by Anton Wuerfel",  #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      TrackBarGadget(#TrackBar_0, 90, 40, 370, 30, 0, 2500)
      CheckBoxGadget(#CheckBox_0, 20, 140, 570, 20, "Sound konstant abspielen")
      TextGadget(#Text_0, 100, 20, 350, 20, "Tonhöhe", #PB_Text_Center)
      TextGadget(#Text_1, 20, 170, 100, 20, "Aktuelle Tonhöhe")
      TextGadget(#Text_2, 120, 170, 460, 20, "", #PB_Text_Center | #PB_Text_Border)
      TrackBarGadget(#TrackBar_1, 90, 90, 370, 30, 1, 3, #PB_TrackBar_Ticks)
      TextGadget(#Text_3, 100, 70, 350, 20, "Bereich", #PB_Text_Center)
      
    EndIf
  EndIf
EndProcedure

Procedure Beep()
  Repeat
    Delay(10)
    If Beepen = 1
      Beep_(TonHoehe,1)
    EndIf
    SetGadgetText(#Text_2,Str(Tonhoehe))
  ForEver
EndProcedure

Open_Window_0()
CreateThread(@Beep(),0)
Repeat ; Start of the event loop
Tonhoehe = GetGadgetState(#TrackBar_0) + 2500 * GetGadgetState(#TrackBar_1) - 2500

  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  
  GadgetID = EventGadget() ; Is it a gadget event?
  
  EventType = EventType() ; The event type
  
  ;You can place code here, and use the result as parameters for the procedures
  
  If Event = #PB_Event_Gadget
    
    If GadgetID = #TrackBar_0
      If Beepen = 0
        Beep_(Tonhoehe,1)
      EndIf
    ElseIf GadgetID = #CheckBox_0
      Beepen = GetGadgetState(#CheckBox_0)
    EndIf
    
  EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop

End
;

Ich habe mir nicht einmal die Mühe gemacht, die Konstanten zu benennen.

Das Prog ist besoners witzig, wenn man die Oktave auf 1 lässt, die Tonhöhe anklickt (gedrückt halten) und dann ein bisschen mit der Maus wackelt...

Wie immer hafte ich nicht für Schäden, die durch den Einsatz dieses Programms entstehen können. Mit dem Download erkennt ihr diese Belehrung als gültig an ..... blablabla..... Hab ich von irgendeiner Website. Find ich jetzt persönlich für dieses Prog sehr wichtig, weil wenn man es mit der Tonhöhe übertreibt, kann es durchaus sein, dass einem mal der PC Speaker um die Ohren fliegt, wenn man noch so einen alten hat, der extra am Gehäuse befestigt und nicht im Mainboard eingebaut ist.
Zuletzt geändert von PureBasic4.0 am 31.05.2007 17:22, insgesamt 2-mal geändert.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

der begriff "Oktave" ist natürlich völlig falsch an dieser stelle.
du solltest das besser in "Bereich" umbenennen...

und damit die funktion etwas sinnvoller ist, änder die berechnung doch mal so:

Code: Alles auswählen

Tonhoehe = GetGadgetState(#TrackBar_0) + 2500 * GetGadgetState(#TrackBar_1) - 2500
btw, den boardspeaker kannst du nicht durchschlagen mit nem system-Beep.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Kaeru Gaman hat geschrieben: btw, den boardspeaker kannst du nicht durchschlagen mit nem system-Beep.
Möchte ich auch nicht.

Kaeru Gaman hat geschrieben:der begriff "Oktave" ist natürlich völlig falsch an dieser stelle. du solltest das besser in "Bereich" umbenennen.
OK. Die eine Veränderung mache ich noch.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

is schon klar, war ja nur ne anmerkung.

> ES IST WIRKLICH DAS UNNÖTIGSTE PROGRAMM DER WELT!

nunja, es gibt da noch mehr, die sich mit deinem proggi um den letzten platz streiten... ;)


btw... darf ich dieses topic in ein paar tagen vermülleimern?
wäre nett, wenn nix unnötiges hier rumdümpelt...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag von D@nte »

Vllt kann ja einer von unseren DrawMania Proggern das gebrauchen, STARGATEs Vorgabe war ja Sounds nur über Beep_ wenn ich das jetzt noch richtig im Hinterkopf hab.
Ansonsten ist es wirklich nur ein nutzloses totnerviger Geräuscherzeuger :allright:
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

wehr zu viel Zeit hat ...
Benutzeravatar
RiSiNG
Beiträge: 92
Registriert: 18.06.2006 10:31
Kontaktdaten:

Beitrag von RiSiNG »

LOL :mrgreen: Deine Idee ist keineswegs so neu, aber trotzdem toll!

Schaut mal hier:

Bild
Beeper v2.0
xperience2003
Beiträge: 972
Registriert: 04.10.2004 18:42
Computerausstattung: Amiga, LinuxMint, Windows7
Wohnort: gotha
Kontaktdaten:

Beitrag von xperience2003 »

wenn dirs naechste mal langweilig is, schreib doch ma nen synth ...haette definitiv interesse daran :allright:
amiga rulez...
Rebirth Software
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Kaeru Gaman hat geschrieben:btw... darf ich dieses topic in ein paar tagen vermülleimern?
Kannste von mir aus auch morgen schon machen ;-)
xperience2003 hat geschrieben:wenn dirs naechste mal langweilig is, schreib doch ma nen synth ...haette definitiv interesse daran
Wenn du mir jetzt noch erzählst, was du unter synth verstehst, könnte ich dir evtl. helfen.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag von TomS »

Synthesizer.
Im Prinzip, das gleiche, was dein BeepingShit macht. Mit Frequenzen Töne erzeugen, nur dass das dann nicht an den Speaker gesendet wird, sondern in den Buffer geschrieben und dann als Wave-Datei abgespeichert wird.
Mit diversen Manipulationen, sollte man verschiedene Klänge (Instrumente) schaffen können.

Das ist aber ein bißchen schwieriger als nur in Beep_() 2 Werte einzusetzen. Irgendwo lungert hier im Forum noch ein Code rum, der eine Frequenz als Wave abspeichert. Wenn man weiß, was man ändern muss, um den Klang zu filtern, kann man damit bestimmt einen einfachen Synthie bauen.
Antworten