[Just 4 Fun] WAV Generator

  • Moin,
    Vor einiger Zeit habe ich eine lustige Seite zum Tönebasteln entdeckt: ByteBeat.
    Diese Angelegenheit fand ich sehr schön, also habe ich ein kleines Skript gebastelt welches ähnliche Spielereien ermöglicht.
    Es wird keine Javascriptsyntax unterstützt (wer hätte das gedacht), dafür aber alles was der AutoIt Interpreter zulässt :)

    Würde mich freuen wenn einige Leute Spaß daran finden, und ggf. sogar ein kleines Lied komponieren können :thumbup:


    Hab den Editor jetzt intern etwas aufgeräumt und den Gain als neue Einstellung hinzugefügt. (In Bezug auf die Version die ich mal in der SB gepostet habe)

    lg
    M

  • Hi,

    habe bereits bissl rumgespielt und damit unsere Katzen unter die Couch gejagt 8o

    Allerdings kamen auch meine Mädels angerannt und brüllten: "Spinnst du jetzt völlig?! Stell sofort dieses Gedudel ab!" :whistling:
    Man kann nicht alles haben...aber Musik ist definitiv nicht dafür gemacht, LEISE gehört zu werden!
    btw, wo ist der :rock: smilie hingekommen :/

  • Für die Möglichkeit beliebig lange zu spielen habe ich eine Frage, denn bevor ich die Mechanik dazu baue will ich wissen ob das klappen kann.
    Kann man eine z.B. 1s lange WAV nutzen und als loop ($SND_LOOP) abspielen und hinter dem abgespielten den Inhalt verändern ?
    Dann könnte man eine kleine Wav nehmen und die in Echtzeit nachfüllen. (müsste mit AutoIt bei moderaten Samplingraten machbar sein).

  • Apropos: Arraymukke geht hier ebenfalls ;)
    (Gegen das Knacken muss man noch etwas erfinden... aber das Prinzip funktioniert einwandfrei)

    2,5kHz|Gain=14|_Sin($x,StringSplit('73 00 68 69 71 00 69 68 66 00 66 69 73 00 71 69 68 00 68 69 71 00 73 00 69 00 66 00 66 00 00 00', ' ', 2)[Mod(Int($x/500),31)])

    Edit:
    Klassiker: Wir dämpfen zwischen den Noten einfach mit einem Abs(Sin(...)). (Die Wurzel ist damit die Dämpfung etwas "rechteckiger" wird.)
    _Sin($x,StringSplit('73 00 68 69 71 00 69 68 66 00 66 69 73 00 71 69 68 00 68 69 71 00 73 00 69 00 66 00 66 00 00 00', ' ', 2)[Mod(Int($x/500),31)])*Abs(Sin(0.00628318*$x))^0.5

    Edit2:
    Man kann es mit der Arraymusik natürlich auch überteiben... Weil der Text so lang ist musste ich die Box vergrößern. Dann Gibts noch einen Wrapper für StringSplit (via Local Static -> weniger Rechenaufwand). Das hier angeheftete ist aber nur zum Ausprobieren. Die Version aus dem Startpost bleibt die aktuelle.

    Spoiler anzeigen