1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. eukalyptus

Beiträge von eukalyptus

  • QuickDraw 100mal so schnell wie GDIPlus Update10 Texture speichern / Screencap

    • eukalyptus
    • 1. August 2010 um 22:32

    Daumen hoch! :thumbup:

    Du könntest die Funktionsnamen noch kürzer machen zb.: _QD_Line

    mfgE

  • Low-, Mid- und High Töne filtern (EQ)

    • eukalyptus
    • 31. Juli 2010 um 11:57

    Ein SplitStream schein mit einem RecordChannel nicht zu funktionieren.
    Du kannst aber einen zusätzlichen Buffer verwenden, um die Record-Samples in den SourceStream zu füttern.

    Beispiel im Anhang

    Zitat von Jam00

    Gibt es irgendwo eine hilfe zu Bass.dll, kann keine finden


    BrettF und ich arbeiten zur Zeit an einer Hilfe im chm-Format, das wird aber noch länger dauern bis wir fertig sind.

    mfgE

    Dateien

    LoMidHi.zip 221,19 kB – 306 Downloads
  • Low-, Mid- und High Töne filtern (EQ)

    • eukalyptus
    • 29. Juli 2010 um 04:00

    Wie man das löst, hängt davon ab was du genau machen willst.

    Schau dir einfach mal dieses Beispiel an und dann sehen wir weiter ;) :

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include "Bass.au3"
    #include "BassMix.au3"
    #include "BassFX.au3"

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

    $iFreq_Lo = 800; Hz
    $iFreq_Hi = 3000; Hz

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

    HotKeySet("{ESC}", "_Exit")

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

    $sFile = FileOpenDialog("Open...", "", "playable formats (*.MP3;*.MP2;*.MP1;*.OGG;*.WAV;*.AIFF;*.AIF)")

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

    _BASS_Startup(@ScriptDir & "\bass.dll")
    _BASS_MIX_Startup(@ScriptDir & "\bassmix.dll")
    _BASS_FX_Startup(@ScriptDir & "\bass_fx.dll")

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

    _BASS_Init(0, -1, 44100, 0, "")

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

    $hStream = _BASS_StreamCreateFile(False, $sFile, 0, 0, $BASS_STREAM_DECODE)

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

    $hSplit_Lo = _BASS_Split_StreamCreate($hStream, $BASS_STREAM_DECODE, 0)
    $hLFX_Lo = _BASS_ChannelSetFX($hSplit_Lo, $BASS_FX_BFX_BQF, 1)
    _BASS_FXSetParameters($hLFX_Lo, $BASS_BFX_BQF_LOWPASS & "|" & $iFreq_Lo & "|0|1|0|0|" & $BASS_BFX_CHANALL)

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

    $hSplit_Mi = _BASS_Split_StreamCreate($hStream, $BASS_STREAM_DECODE, 0)
    $hLFX_MiLo = _BASS_ChannelSetFX($hSplit_Mi, $BASS_FX_BFX_BQF, 1)
    _BASS_FXSetParameters($hLFX_MiLo, $BASS_BFX_BQF_HIGHPASS & "|" & $iFreq_Lo & "|0|1|0|0|" & $BASS_BFX_CHANALL)
    $hLFX_MiHi = _BASS_ChannelSetFX($hSplit_Mi, $BASS_FX_BFX_BQF, 1)
    _BASS_FXSetParameters($hLFX_MiHi, $BASS_BFX_BQF_LOWPASS & "|" & $iFreq_Hi & "|0|1|0|0|" & $BASS_BFX_CHANALL)

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

    $hSplit_Hi = _BASS_Split_StreamCreate($hStream, $BASS_STREAM_DECODE, 0)
    $hLFX_Hi = _BASS_ChannelSetFX($hSplit_Hi, $BASS_FX_BFX_BQF, 1)
    _BASS_FXSetParameters($hLFX_Hi, $BASS_BFX_BQF_HIGHPASS & "|" & $iFreq_Hi & "|0|1|0|0|" & $BASS_BFX_CHANALL)

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

    $aInfo = _BASS_ChannelGetInfo($hStream)
    $hMixer = _BASS_Mixer_StreamCreate($aInfo[0], $aInfo[1], 0)
    _BASS_Mixer_StreamAddChannel($hMixer, $hSplit_Lo, 0)
    ;_BASS_Mixer_StreamAddChannel($hMixer, $hSplit_Mi, 0)
    ;_BASS_Mixer_StreamAddChannel($hMixer, $hSplit_Hi, 0)

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

    _BASS_ChannelPlay($hMixer, True)

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

    While _BASS_ChannelIsActive($hMixer)
    Sleep(10)
    WEnd

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

    _Exit()

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

    Func _Exit()
    _BASS_ChannelStop($hMixer)
    _BASS_Free()
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    Dateien

    LoMidHi.zip 193,38 kB – 283 Downloads
  • GDI+ Problem

    • eukalyptus
    • 28. Juli 2010 um 18:17

    Meinst du sowas?

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>

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

    $pi = 3.14159265358979
    $degToRad = $pi / 180

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

    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bilder\tacho_hintergrund.jpg")

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

    $hGUI = GUICreate("GDI+", 256, 256)
    GUISetState()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $Pen = _GDIPlus_PenCreate(0xFFFF0000, 3)

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

    For $i = 0 To 360
    $X = Round(Cos($i * $degToRad) * 100)
    $Y = Round(Sin($i * $degToRad) * 100)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage, 0, 0, 256, 256)
    _GDIPlus_GraphicsDrawLine($hGraphic, 128, 128, 128 + $X, 128 + $Y, $Pen)
    Sleep(10)
    Next

    [/autoit]
  • Frequenz aus dem Mic-Eingang filtern

    • eukalyptus
    • 27. Juli 2010 um 16:40

    Mit der Bass.dll würde das in etwa so funktionieren:

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include "Bass.au3"
    #include "BassExt.au3"

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

    OnAutoItExitRegister("_FreeBass")
    HotKeySet("{ESC}", "_Exit")

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

    _BASS_Startup()
    _BASS_EXT_Startup()

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

    _BASS_RecordInit(-1)

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

    $hRecord = _BASS_RecordStart(44100, 2, 0, $BASS_EXT_RecordProc)
    $tFFT = DllStructCreate("float[4096]")
    $pFFT = DllStructGetPtr($tFFT)

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

    While 1
    _BASS_ChannelGetData($hRecord, $pFFT, $BASS_DATA_FFT8192)
    $fMax = 0
    $fFreq = 0
    For $i = 1 To 4096
    If DllStructGetData($tFFT, 1, $i) > $fMax Then
    $fMax = DllStructGetData($tFFT, 1, $i)
    $fFreq = $i * 44100 / 8190
    EndIf
    Next
    ToolTip("Frequency: " & Round($fFreq, 1) & "Hz")
    Sleep(50)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    Func _FreeBass()
    _BASS_RecordFree()
    EndFunc ;==>_FreeBass

    [/autoit]

    die nötigen Dateien findest du hier: Audio Meter (Peak, VU, Stereoscope und Korrelationsgradmesser)

    mfgE

  • Tonhöhe veränderen (mit Bass.dll?)

    • eukalyptus
    • 23. Juli 2010 um 17:37

    Normalerweise wird beim Pitchen eine Sounddatei mit einer anderen Samplerate abgespielt = Tonhöhe UND Geschwindigkeit verändern sich

    Bei der bassfx.dll gibt es 3 verschiedene Varianten:

    BASS_ATTRIB_TEMPO_FREQ = Verändert nur die Samplerate beim Abspielen = Ton wird langsamer und tiefer
    BASS_ATTRIB_TEMPO = Kombination aus Timestreching und Samplerate = Ton wird langsamer bei gleichbleibender Tonhöhe
    BASS_ATTRIB_TEMPO_PITCH = Kombination aus Timestreching und Samplerate = Tonhöhe verändert sich, Geschwindigkeit bleibt gleich

    Spoiler anzeigen
    [autoit]

    #include <Bass.au3>
    #include <BassConstants.au3>
    #include <BassFX.au3>
    #include <BassFXConstants.au3>

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

    HotKeySet("{UP}", "_Pitch")
    HotKeySet("{DOWN}", "_Pitch")
    HotKeySet("{LEFT}", "_Pitch")
    HotKeySet("{RIGHT}", "_Pitch")

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

    HotKeySet("{ESC}", "_Exit")

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

    Global $sFile = FileOpenDialog("Open...", "", "playable formats (*.MP3;*.MP2;*.MP1;*.OGG;*.WAV;*.AIFF;*.AIF)")
    Global $hStream, $hTempo
    Global $iPitch = 0
    Global $iTempo = 0

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

    _BASS_STARTUP("BASS.dll")
    _BASS_FX_Startup("bass_fx.dll")

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

    _BASS_Init(0, -1, 44100, 0, "")

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

    $hStream = _BASS_StreamCreateFile(False, $sFile, 0, 0, $BASS_STREAM_DECODE)
    $hTempo = _BASS_FX_TempoCreate($hStream, $BASS_SAMPLE_LOOP)

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

    _BASS_ChannelPlay($hTempo, 1)

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

    While _BASS_ChannelIsActive($hTempo)
    ToolTip("Pitch: " & $iPitch & " semitones" & @CRLF & "Tempo: " & $iTempo & " percent")
    Sleep(100)
    WEnd

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

    _Exit()

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

    Func _Exit()
    _BASS_StreamFree($hStream)
    _BASS_Free()
    Exit
    EndFunc ;==>_EXIT

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

    Func _Pitch()
    Switch @HotKeyPressed
    Case "{UP}"
    $iPitch += 1
    _BASS_ChannelSetAttribute($hTempo, $BASS_ATTRIB_TEMPO_PITCH, $iPitch)
    Case "{DOWN}"
    $iPitch -= 1
    _BASS_ChannelSetAttribute($hTempo, $BASS_ATTRIB_TEMPO_PITCH, $iPitch)
    Case "{LEFT}"
    $iTempo -= 1
    _BASS_ChannelSetAttribute($hTempo, $BASS_ATTRIB_TEMPO, $iTempo)
    Case "{RIGHT}"
    $iTempo += 1
    _BASS_ChannelSetAttribute($hTempo, $BASS_ATTRIB_TEMPO, $iTempo)
    EndSwitch
    EndFunc ;==>_Pitch

    [/autoit]

    mfgE

  • Alternativer IconHandler für LNK-Dateien

    • eukalyptus
    • 21. Juli 2010 um 12:38

    DANKE Prog@ndy für dieses Geschenk! :thumbup:

  • _GDIPlus_GraphicsSetSmoothingMode BUG???

    • eukalyptus
    • 20. Juli 2010 um 21:08
    Zitat von progandy

    Die richtige Quelle ist immer noch eine Dokumentation:
    http://www.com.it-berater.org/gdiplus/GdiPlus.htm


    Das ist auch meine Quelle :thumbup:

    Weiters findet man auch in der GDIP.au3 immer was brauchbares!

  • _GDIPlus_GraphicsSetSmoothingMode BUG???

    • eukalyptus
    • 19. Juli 2010 um 22:43

    Das sollte helfen:

    [autoit]

    DllCall($ghGDIPDll, "int", "GdipSetInterpolationMode", "handle", $hGraphic, "int", 5)

    [/autoit]

    mfgE

  • Wie Kreige ich raus welcher sound mit soundplay gestartet wurde?

    • eukalyptus
    • 18. Juli 2010 um 10:46

    Ich würde das in etwa so machen:

    Spoiler anzeigen
    [autoit]

    #include <Sound.au3>

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

    HotKeySet("!1", "Song")
    HotKeySet("!2", "Song")
    HotKeySet("!3", "Song")
    HotKeySet("!4", "Song")
    HotKeySet("!5", "Song")

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

    HotKeySet("{ESC}", "Stop")

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

    Global $aSnd_id[6], $iSnd_id

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

    $aSnd_id[1] = _SoundOpen(@ScriptDir & "\1.mp3")
    $aSnd_id[2] = _SoundOpen(@ScriptDir & "\2.mp3")
    $aSnd_id[3] = _SoundOpen(@ScriptDir & "\3.mp3")
    $aSnd_id[4] = _SoundOpen(@ScriptDir & "\4.mp3")
    $aSnd_id[5] = _SoundOpen(@ScriptDir & "\5.mp3")

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

    While 1
    Sleep(10)
    WEnd

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

    Func Song()
    Switch @HotKeyPressed
    Case "!1"
    $iSnd_id = 1
    Case "!2"
    $iSnd_id = 2
    Case "!3"
    $iSnd_id = 3
    Case "!4"
    $iSnd_id = 4
    Case "!5"
    $iSnd_id = 5
    EndSwitch
    _SoundPlay($aSnd_id[$iSnd_id])
    EndFunc

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

    Func Stop()
    _SoundStop($aSnd_id[$iSnd_id])
    EndFunc

    [/autoit]

    Das Problem mit dem Zeilenabstand hab ich auch manchmal auf meinem Rechner in der Firma - hab allerdings keine Ahnung wieso...

    mfgE

  • Aufnahme Methode ändern

    • eukalyptus
    • 15. Juli 2010 um 00:53

    liegen Bass.dll, Bass.au3 und BassConstants.au3 im Scriptordner?

  • Aufnahme Methode ändern

    • eukalyptus
    • 14. Juli 2010 um 21:39

    In etwa so:

    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include "Bass.au3"
    _BASS_Startup()
    _BASS_RecordInit(-1)
    _BASS_RecordSetInput(0, $BASS_INPUT_ON, -1)

    [/autoit]

    Dieses Script setzt den ersten Input der (in Windows als default gesetzten) Soundkarte aktiv

    _BASS_RecordInit: Welche Soundkarte soll initialisiert werden -1=default, 0=erste, 1=zweite Soundkarte
    _BASS_RecordSetInput:
    erster Parameter: Input der Soundkarte (welche Zahl dem Mikroeingang bzw. dem Stereomix entspricht mußt du halt ausprobieren)
    zweiter Parameter: Input aktiv oder inaktiv setzen (= Hakchen im Windows Mixer)
    dritter Parameter: Lautstärke; -1=nicht verändern (=Slider im Windows Mixer)

    Zu beachten ist, daß unter WinXP die Soundkarten so "dargestellt" werden, wie sie hardwaremässig auch aussehen. (Eine Soundkarte kann mehrere Inputs haben)
    Win Vista/7 stellt jeden einzelnen Input einer Soundkarte als "eigene" Soundkarte dar...


    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include "Bass.au3"

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

    OnAutoItExitRegister("_FreeBass")

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

    Global $iDevice, $iInput, $aInfo, $sName

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

    _BASS_Startup()

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

    $iDevice = 0
    While 1
    $aInfo = _BASS_RecordGetDeviceInfo($iDevice)
    If @error Then ExitLoop
    ConsoleWrite(@CRLF & ">Device found: " & $aInfo[0] & @CRLF)
    If BitAND($aInfo[2], $BASS_DEVICE_ENABLED) Then
    ConsoleWrite("+" & @TAB & "Device is enabled" & @CRLF)
    Else
    ConsoleWrite("!" & @TAB & "Device is disabled" & @CRLF)
    ContinueLoop
    EndIf
    If BitAND($aInfo[2], $BASS_DEVICE_DEFAULT) Then ConsoleWrite("-" & @TAB & "Device is the system default" & @CRLF)
    _BASS_RecordInit($iDevice)
    $iInput = 0
    While 1
    $sName = _BASS_RecordGetInputName($iInput)
    If @error Then ExitLoop
    $aInfo = _BASS_RecordGetInput($iInput)
    ConsoleWrite(">" & @TAB & @TAB & "Input found: " & $sName & @CRLF)
    Switch BitAND($aInfo[0], $BASS_INPUT_OFF)
    Case 0
    ConsoleWrite("+" & @TAB & @TAB & @TAB & "Input is ON" & @CRLF)
    Case Else
    ConsoleWrite("!" & @TAB & @TAB & @TAB & "Input is OFF" & @CRLF)
    EndSwitch
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_DIGITAL) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Digital input source, for example, a DAT or audio CD." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_LINE) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Line-in. On some devices, 'Line-in' may be combined with other analog sources into a single BASS_INPUT_TYPE_ANALOG input." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_MIC) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Microphone." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_SYNTH) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Internal MIDI synthesizer." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_CD) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Analog audio CD." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_PHONE) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Telephone." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_SPEAKER) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "PC speaker." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_WAVE) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "The device's WAVE/PCM output." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_AUX) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Auxiliary. Like 'Line-in', 'Aux' may be combined with other analog sources into a single BASS_INPUT_TYPE_ANALOG input on some devices." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_ANALOG) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Analog, typically a mix of all analog sources." & @CRLF)
    If BitAND($aInfo[0], $BASS_INPUT_TYPE_UNDEF) Then ConsoleWrite("-" & @TAB & @TAB & @TAB & "Undefined" & @CRLF)

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

    $iInput += 1
    WEnd

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

    _BASS_RecordFree()
    $iDevice += 1
    ConsoleWrite(@CRLF)
    WEnd

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

    Func _FreeBass()
    If _BASS_RecordGetDevice() <> -1 Then _BASS_RecordFree()
    EndFunc ;==>_FreeBass

    [/autoit]

    mfgE

  • Just 4 Fun: BrainFuck-Text-Interpreter (BF2Ascii und Ascii2BF)

    • eukalyptus
    • 14. Juli 2010 um 21:23

    Das gefällt mir :thumbup:

    Ich möchte noch auf die Programmiersprache Ook! hinweisen:

    Code
    Die Designkriterien der Sprache sind:
       1. Eine Programmiersprache sollte schreib- und lesbar für Orang-Utans sein.
       2. Die Syntax sollte einfach sein, leicht zu merken und das Wort Monkey (engl. Affe) vermeiden.
       3. Bananen sind gut.


    http://de.wikipedia.org/wiki/Ook!
    :D

  • Aufnahme Methode ändern

    • eukalyptus
    • 14. Juli 2010 um 13:11

    Such mal im Forum nach _Bass_RecordSetInput

    mfgE

  • ID3-Skript Problem - "Error allocating memory."-Error

    • eukalyptus
    • 13. Juli 2010 um 13:00

    Im Id3v2 Tag können große Datenmengen gespeichert sein (z.B.: Coverbilder)
    Vielleicht liegt das Problem ja hier...

  • kleiner mixer mit bass.au3

    • eukalyptus
    • 26. Juni 2010 um 18:43

    Hi

    Um 2 Lieder gleichzeitig abzuspielen brauchst du nur 2 Streams zu starten:

    Spoiler anzeigen
    [autoit]

    #include "Bass.au3"

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

    $hGui = GUICreate("", 150, 120)
    $hSlider1 = GUICtrlCreateSlider(35, 10, 30, 100, 0x0006)
    $hSlider2 = GUICtrlCreateSlider(85, 10, 30, 100, 0x0006)
    GUISetState()

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

    _BASS_Startup()

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

    _BASS_Init(0, -1, 44100, 0, "")

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

    $sFile1 = FileOpenDialog("Open...", "", "playable formats (*.MP3;*.MP2;*.MP1;*.OGG;*.WAV;*.AIFF;*.AIF)")
    $sFile2 = FileOpenDialog("Open...", "", "playable formats (*.MP3;*.MP2;*.MP1;*.OGG;*.WAV;*.AIFF;*.AIF)")

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

    $hStream1 = _BASS_StreamCreateFile(False, $sFile1, 0, 0, 0)
    $hStream2 = _BASS_StreamCreateFile(False, $sFile2, 0, 0, 0)

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

    _BASS_ChannelPlay($hStream1, True)
    _BASS_ChannelPlay($hStream2, True)

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

    While _BASS_ChannelIsActive($hStream1)
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    ExitLoop
    Case $hSlider1
    _BASS_ChannelSetAttribute($hStream1, $BASS_ATTRIB_VOL, (100 - GUICtrlRead($hSlider1)) / 100)
    Case $hSlider2
    _BASS_ChannelSetAttribute($hStream2, $BASS_ATTRIB_VOL, (100 - GUICtrlRead($hSlider2)) / 100)
    EndSwitch
    Sleep(20)
    WEnd

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

    _BASS_StreamFree($hStream1)
    _BASS_StreamFree($hStream2)

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

    _BASS_Free()

    [/autoit]

    Wenn du mit dem zusammengemixten Signal noch was machen möchtest, z.B. Gesammtlautstärke abfragen, dann solltest du _BASS_Mixer_StreamCreate und _BASS_Mixer_StreamAddChannel verwenden.

    Spoiler anzeigen
    [autoit]

    #include "Bass.au3"
    #include "BassMix.au3"

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

    $hGui = GUICreate("", 150, 120)
    $hSlider1 = GUICtrlCreateSlider(35, 10, 30, 100, 0x0006)
    $hSlider2 = GUICtrlCreateSlider(85, 10, 30, 100, 0x0006)
    GUISetState()

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

    _BASS_Startup()
    _BASS_MIX_Startup()

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

    _BASS_Init(0, -1, 44100, 0, "")

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

    $sFile1 = FileOpenDialog("Open...", "", "playable formats (*.MP3;*.MP2;*.MP1;*.OGG;*.WAV;*.AIFF;*.AIF)")
    $sFile2 = FileOpenDialog("Open...", "", "playable formats (*.MP3;*.MP2;*.MP1;*.OGG;*.WAV;*.AIFF;*.AIF)")

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

    $hStream1 = _BASS_StreamCreateFile(False, $sFile1, 0, 0, $BASS_STREAM_DECODE)
    $hStream2 = _BASS_StreamCreateFile(False, $sFile2, 0, 0, $BASS_STREAM_DECODE)

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

    $hMixer = _BASS_Mixer_StreamCreate(44100, 2, 0)
    _BASS_Mixer_StreamAddChannel($hMixer, $hStream1, 0)
    _BASS_Mixer_StreamAddChannel($hMixer, $hStream2, 0)

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

    _BASS_ChannelPlay($hMixer, True)

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

    While _BASS_ChannelIsActive($hMixer)
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    ExitLoop
    Case $hSlider1
    _BASS_ChannelSetAttribute($hStream1, $BASS_ATTRIB_VOL, (100 - GUICtrlRead($hSlider1)) / 100)
    Case $hSlider2
    _BASS_ChannelSetAttribute($hStream2, $BASS_ATTRIB_VOL, (100 - GUICtrlRead($hSlider2)) / 100)
    EndSwitch
    Sleep(20)
    WEnd

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

    _BASS_StreamFree($hStream1)
    _BASS_StreamFree($hStream2)

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

    _BASS_Free()

    [/autoit]

    mfgE

  • Audio Meter (Peak, VU, Stereoscope und Korrelationsgradmesser)

    • eukalyptus
    • 26. Juni 2010 um 15:56

    Neue Version; siehe Post 1

  • WM-Tippspiel

    • eukalyptus
    • 26. Juni 2010 um 15:38

    Mittlerweile werden die Vuvuzelas von vielen Fernsehanstalten herausgefiltert (und auch teilw. Fangesänge mit dem Sampler eingespielt)

    Vuvuzelas in action: http://www.youtube.com/watch?v=NXPPyjtw5WU :thumbup:

  • Aus welchem Bundesland kommt ihr ?

    • eukalyptus
    • 24. Juni 2010 um 19:40

    Oberösterreich, also auch Ausland :D

  • Audio Output aufnehmen

    • eukalyptus
    • 24. Juni 2010 um 19:32

    Hi

    Das Aufnahmescript ist eigentlich ganz einfach:

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include "Bass.au3"
    #include "BassEnc.au3"
    #include "BassExt.au3"

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

    HotKeySet("{ESC}", "_Exit")

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

    OnAutoItExitRegister("_FreeBass")

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

    Global $hRecord, $hEncoder

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

    _BASS_Startup()
    _BASS_ENCODE_Startup()
    _BASS_EXT_Startup()

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

    _BASS_RecordInit(0)
    _BASS_RecordSetInput(0, $BASS_INPUT_ON, -1)
    $hRecord = _BASS_RecordStart(44100, 2, 0, $BASS_EXT_RecordProc)
    $hEncoder = _BASS_Encode_Start($hRecord, @ScriptDir & "\BASS_EXAMPLE.wav", $BASS_ENCODE_PCM)

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

    While 1
    Sleep(1000)
    WEnd

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

    Func _FreeBass()
    If $hEncoder Then _BASS_Encode_Stop($hEncoder)
    If _BASS_RecordGetDevice() <> -1 Then _BASS_RecordFree()
    EndFunc ;==>_FreeBass

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

    Func _Exit()
    ShellExecute(@ScriptDir & "\BASS_EXAMPLE.wav")
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    Dieses Script nimmt von Device Nr.: 0 / Input Nr.: 0 auf

    welcher Input jetzt der richtige ist, kannst du mit diesem Script ausprobieren:

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=n
    #include "Bass.au3"

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

    Global $iDevice, $iInput, $aInfo, $sName

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

    _BASS_Startup()

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

    $iDevice = 0
    While 1
    $aInfo = _BASS_RecordGetDeviceInfo($iDevice)
    If @error Then ExitLoop
    ConsoleWrite(@CRLF & "+---------------------------------" & @CRLF)
    ConsoleWrite(">" & $aInfo[0] & @CRLF)
    _BASS_RecordInit($iDevice)
    $iInput = 0
    While 1
    $sName = _BASS_RecordGetInputName($iInput)
    If @error Then ExitLoop
    ConsoleWrite("-" & $sName & @CRLF & "+" & @TAB & $iDevice & "/" & $iInput & @CRLF)
    $iInput += 1
    WEnd
    ConsoleWrite(@CRLF & "+---------------------------------" & @CRLF)
    _BASS_RecordFree()
    $iDevice += 1
    WEnd

    [/autoit]

    Das liefert bei mir unter WinXP:

    Spoiler anzeigen
    Code
    +---------------------------------
    >X-Fi Surround 5.1 What U Hear
    -Was Sie hören
    +	0/0
    
    
    +---------------------------------
    
    
    +---------------------------------
    >Realtek HD Audio Input
    -Mikrofon
    +	1/0
    -Stereomix
    +	1/1
    
    
    +---------------------------------
    
    
    +---------------------------------
    >X-Fi Surround 5.1 Line/Mic-In
    -Eingang/Mikro
    +	2/0
    
    
    +---------------------------------
    Alles anzeigen

    und unter Win7:

    Spoiler anzeigen
    Code
    +---------------------------------
    >Eingang/Mikro (SB X-Fi Surround
    -Hauptlautstärke
    +	0/0
    
    
    +---------------------------------
    
    
    +---------------------------------
    >Stereo Mix (Realtek High Defini
    -Hauptlautstärke
    +	1/0
    
    
    +---------------------------------
    
    
    +---------------------------------
    >Microphone (Realtek High Defini
    -Hauptlautstärke
    +	2/0
    
    
    +---------------------------------
    
    
    +---------------------------------
    >Was Sie hören (SB X-Fi Surround
    -Hauptlautstärke
    +	3/0
    
    
    +---------------------------------
    Alles anzeigen


    In meinem Fall kann ich den Ausgang der Realtek-Soundkarte über Stereomix und den Ausgang der Creative über "Was Sie hören" aufnehmen.
    Diese beiden Hersteller bieten dieses Feature an - das ist quasi, als würde man ein Kabel vom Output wieder in den Input stecken...
    Das können aber nicht alle Soundkarten

    Wenn ich jetzt den Ausgang der Realteksoundkarte aufnehmen will (Stereomix), muß ich auf WinXP

    [autoit]

    _BASS_RecordInit(1)
    _BASS_RecordSetInput(1, $BASS_INPUT_ON, -1)

    [/autoit]


    und auf Win7

    [autoit]

    _BASS_RecordInit(1)
    _BASS_RecordSetInput(0, $BASS_INPUT_ON, -1)

    [/autoit]

    schreiben


    evtl. sind auf Win 7 / Vista manche Inputs deaktiviert und müssen erst in der Systemsteuerung aktiviert werden...

    die benötigten bass-UDF´s sind im Anhang

    Dateien

    RESOURCES.zip 177,75 kB – 462 Downloads

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™