Hola
Casi tengo terminada la función WaveOut_Open() de la UDF que estoy haciendo para estas apis que comentaba en el post de arriba.
Os la pongo, para que la veais a ver si os parece qe la estoy haciendo bien...
Seguro que puede mejorarse, sobre todo la documentación; pero no soy un crack con el inglés ni con el sonido digital :P. Por eso, seguramente pueda traducirse mejor, o hayan cosas que no estén del todo bien traducidas y/o redactadas (SORRY) :).
Código: Seleccionar todo
Global Const $_Err_Dll=-1
Global Const $_MMSysErr_Base=0
Global Const $_WavErr_Base=32
Global Const $_MMSysErr_NoError=0
Global Const $_MMSysErr_InValHandle=($_MMSysErr_Base+5)
Global Const $_MMSysErr_NoDriver=($_MMSysErr_Base+6)
Global Const $_MMSysErr_NoMem=($_MMSysErr_Base+7)
Global Const $_WavErr_StillPlaying=($_WavErr_Base+1)
Global Const $_MMSysErr_BadDeviceID=($_MMSysErr_Base+2)
Global Const $_MMSysErr_NotSupported=($_MMSysErr_Base+8)
Global Const $_Wave_Format_1M08=1
Global Const $_Wave_Format_1M16=4
Global Const $_Wave_Format_1S08=2
Global Const $_Wave_Format_1S16=8
Global Const $_Wave_Format_2M08=16
Global Const $_Wave_Format_2M16=64
Global Const $_Wave_Format_2S08=32
Global Const $_Wave_Format_2S16=128
Global Const $_Wave_Format_4M08=256
Global $_Wave_Format_4M16=1024
Global Const $_Wave_Format_4S08=512
Global Const $_Wave_Format_4S16=2048
Global Const $_WaveCaps_LRVolume=8
Global Const $_WaveCaps_Pitch=1
Global $_WaveCaps_PlayBackRate=2
Global Const $_WaveCaps_Volume=4
Global Const $_WaveCaps_SampleAccurate=32
Global Const $_Wave_Format_Query=1
Global Const $_Wave_Mapper=-1
Global Const $_Wave_AllowSync=2
Global Const $_Wave_AllowSyncNull=0
Global Const $_CallBack_Event=0x50000
Global Const $_CallBack_Function=0x30000
Global Const $_CallBack_Null=0
Global Const $_CallBack_Window=0x10000
Global Const $_Wave_Format_Direct=8
Global Const $_WAVE_MAPPED=4
Global Const $_WavErr_BadFormat=($_WavErr_Base+0)
Global Const $_WavErr_Sync=($_WavErr_Base+3)
Global Const $_Wave_Format_PCM=0x01
Global Const $_Wave_Format_Unknown=0x0000 ;Microsoft Corporation
Global Const $_Wave_Format_AdPCM=0x0002 ;Microsoft Corporation
Global Const $_Wave_Format_Ieee_Float=0x0003 ;Microsoft Corporation
Global Const $_Wave_Format_VSElp=0x0004 ;Compaq Computer Corp.
Global Const $_Wave_Format_IBM_CVSD=0x0005 ;IBM Corporation
Global Const $_Wave_Format_AlAw=0x0006 ;Microsoft Corporation
Global Const $_Wave_Format_MuLaw=0x0007 ;Microsoft Corporation
Global Const $_Wave_Format_DTS=0x0008 ;Microsoft Corporation
Global Const $_Wave_Format_DRM=0x0009 ;Microsoft Corporation
Global Const $_Wave_Format_WmaVoice9=0x000A ;Microsoft Corporation
Global Const $_Wave_Format_WmaVoice10=0x000B ;Microsoft Corporation
Global Const $_Wave_Format_Oki_AdPCM=0x0010 ;OKI
Global Const $_Wave_Format_Dvi_AdPCM=0x0011 ;Intel Corporation
Global Const $_Wave_Format_Ima_AdPCM=($_Wave_Format_Dvi_AdPCM) ;Intel Corporation
Global Const $_Wave_Format_MediaSpace_AdPCM=0x0012 ;Videologic
Global Const $_Wave_Format_Sierra_AdPCM=0x0013 ;Sierra Semiconductor Corp
Global Const $_Wave_Format_G723_AdPCM=0x0014 ;Antex Electronics Corporation
Global Const $_Wave_Format_Digistd=0x0015 ;DSP Solutions, Inc.
Global Const $_Wave_Format_DigiFix=0x0016 ;DSP Solutions, Inc.
Global Const $_Wave_Format_Dialogic_Oki_AdPCM=0x0017 ;Dialogic Corporation
Global Const $_Wave_Format_MediaVision_AdPCM=0x0018 ;Media Vision, Inc.
Global Const $_Wave_Format_Cu_Codec=0x0019 ;Hewlett-Packard Company
Global Const $_Wave_Format_Yamaha_AdPCM=0x0020 ;Yamaha Corporation of America
Global Const $_Wave_Format_Sonarc=0x0021 ;Speech Compression
Global Const $_Wave_Format_DSPGroupS_TrueSpeech=0x0022 ;DSP Group, Inc
Global Const $_Wave_Format_EchoSc1=0x0023 ;Echo Speech Corporation
Global Const $_Wave_Format_AudioFile_Af36=0x0024 ;Virtual Music, Inc.
Global Const $_Wave_Format_Aptx=0x0025 ;Audio Processing Technology
Global Const $_Wave_Format_AudioFile_Af10=0x0026 ;Virtual Music, Inc.
Global Const $_Wave_Format_Prosody_1612=0x0027 ;Aculab plc
Global Const $_Wave_Format_Lrc=0x0028 ;Merging Technologies S.A.
Global Const $_Wave_Format_Dolby_Ac2=0x0030 ;Dolby Laboratories
Global Const $_Wave_Format_Gsm610=0x0031 ;Microsoft Corporation
Global Const $_Wave_Format_MsnAudio=0x0032 ;Microsoft Corporation
Global Const $_Wave_Format_Antex_AdPCME=0x0033 ;Antex Electronics Corporation
Global Const $_Wave_Format_Control_Res_VqlPC=0x0034 ;Control Resources Limited
Global Const $_Wave_Format_DigiReal=0x0035 ;DSP Solutions, Inc.
Global Const $_Wave_Format_DigiAdPCM=0x0036 ;DSP Solutions, Inc.
Global Const $_Wave_Format_Control_Res_Cr10=0x0037 ;Control Resources Limited
Global Const $_Wave_Format_Nms_VbxADPCM=0x0038 ;Natural MicroSystems
Global Const $_Wave_Format_Cs_ImaAdPCM=0x0039 ;Crystal Semiconductor IMA ADPCM
Global Const $_Wave_Format_EchoSc3=0x003A ;Echo Speech Corporation
Global Const $_Wave_Format_RockWell_AdPCM=0x003B ;Rockwell International
Global Const $_Wave_Format_RockWell_DigiTalk=0x003C ;Rockwell International
Global Const $_Wave_Format_Xebec=0x003D ;Xebec Multimedia Solutions Limited
Global Const $_Wave_Format_G721_AdPCM=0x0040 ;Antex Electronics Corporation
Global Const $_Wave_Format_G728_Celp=0x0041 ;Antex Electronics Corporation
Global Const $_Wave_Format_Msg723=0x0042 ;Microsoft Corporation
Global Const $_Wave_Format_Mpeg=0x0050 ;Microsoft Corporation
Global Const $_Wave_Format_Rt24=0x0052 ;InSoft, Inc.
Global Const $_Wave_Format_Pac=0x0053 ;InSoft, Inc.
Global Const $_Wave_Format_MpegLayer3=0x0055 ;ISO/MPEG Layer3 Format Tag
Global Const $_Wave_Format_Lucent_G723=0x0059 ;Lucent Technologies
Global Const $_Wave_Format_Cirrus=0x0060 ;Cirrus Logic
Global Const $_Wave_Format_EsPCM=0x0061 ;ESS Technology
Global Const $_Wave_Format_VoxWare=0x0062 ;Voxware Inc
Global Const $_Wave_Format_Canopus_Atrac=0x0063 ;Canopus, co., Ltd.
Global Const $_Wave_Format_G726_AdPCM=0x0064 ;APICOM
Global Const $_Wave_Format_G722_AdPCM=0x0065 ;APICOM
Global Const $_Wave_Format_DsAt_Display=0x0067 ;Microsoft Corporation
Global Const $_Wave_Format_VoxWare_Byte_Aligned=0x0069 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Ac8=0x0070 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Ac10=0x0071 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Ac16=0x0072 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Ac20=0x0073 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Rt24=0x0074 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Rt29=0x0075 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Rt29Hw=0x0076 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Vr12=0x0077 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Vr18=0x0078 ;Voxware Inc
Global Const $_Wave_Format_VoxWare_Tq40=0x0079 ;Voxware Inc
Global Const $_Wave_Format_SoftSound=0x0080 ;Softsound, Ltd.
Global Const $_Wave_Format_VoxWare_Tq60=0x0081 ;Voxware Inc
Global Const $_Wave_Format_Msrt24=0x0082 ;Microsoft Corporation
Global Const $_Wave_Format_G729A=0x0083 ;AT&T Labs, Inc.
Global Const $_Wave_Format_Mvi_Mvi2=0x0084 ;Motion Pixels
Global Const $_Wave_Format_Df_G726=0x0085 ;DataFusion Systems (Pty) (Ltd)
Global Const $_Wave_Format_Df_Gsm610=0x0086 ;DataFusion Systems (Pty) (Ltd)
Global Const $_Wave_Format_IsiAudio=0x0088 ;Iterated Systems, Inc.
Global Const $_Wave_Format_OnlyVe=0x0089 ;OnLive! Technologies, Inc.
Global Const $_Wave_Format_Sbc24=0x0091 ;Siemens Business Communications Sys
Global Const $_Wave_Format_Dolby_Ac3_Spdif=0x0092 ;Sonic Foundry
Global Const $_Wave_Format_MediaSonic_G723=0x0093 ;MediaSonic
Global Const $_Wave_Format_Prosody_8KBPS=0x0094 ;Aculab plc
Global Const $_Wave_Format_Zyxel_AdPCM=0x0097 ;ZyXEL Communications, Inc.
Global Const $_Wave_Format_Philips_Lpcbb=0x0098 ;Philips Speech Processing
Global Const $_Wave_Format_Packed=0x0099 ;Studer Professional Audio AG
Global Const $_Wave_Format_Malden_PhonyTalk=0x00A0 ;Malden Electronics Ltd.
Global Const $_Wave_Format_Rhetorex_AdPCM=0x0100 ;Rhetorex Inc.
Global Const $_Wave_Format_Irat=0x0101 ;BeCubed Software Inc.
Global Const $_Wave_Format_Vivo_G723=0x0111 ;Vivo Software
Global Const $_Wave_Format_Vivo_Siren=0x0112 ;Vivo Software
Global Const $_Wave_Format_Digital_G723=0x0123 ;Digital Equipment Corporation
Global Const $_Wave_Format_Sanyo_Ld_AdPCM=0x0125 ;Sanyo Electric Co., Ltd.
Global Const $_Wave_Format_Siprolab_Aceplnet=0x0130 ;Sipro Lab Telecom Inc.
Global Const $_Wave_Format_Siprolab_Acelp4800=0x0131 ;Sipro Lab Telecom Inc.
Global Const $_Wave_Format_Ssiprolab_Acelp8V3=0x0132 ;Sipro Lab Telecom Inc.
Global Const $_Wave_Format_Siprolab_G729=0x0133 ;Sipro Lab Telecom Inc.
Global Const $_Wave_Format_Siprolab_G729A=0x0134 ;Sipro Lab Telecom Inc.
Global Const $_Wave_Format_Siprolab_Kelvin=0x0135 ;Sipro Lab Telecom Inc.
Global Const $_Wave_Format_G726AdPCM=0x0140 ;Dictaphone Corporation
Global Const $_Wave_Format_Qualcomm_PPureVoice=0x0150 ;Qualcomm, Inc.
Global Const $_Wave_Format_Qualcomm_HalfRate=0x0151 ;Qualcomm, Inc.
Global Const $_Wave_Format_TubGsm=0x0155 ;Ring Zero Systems, Inc.
Global Const $_Wave_Format_MsAudio1=0x0160 ;Microsoft Corporation
Global Const $_Wave_Format_WmAUDIO2=0x0161 ;Microsoft Corporation
Global Const $_Wave_Format_WmAudio3=0x0162 ;Microsoft Corporation
Global Const $_Wave_Format_WmAudio_LossLess=0x0163 ;Microsoft Corporation
Global Const $_Wave_Format_WmAspdif=0x0164 ;Microsoft Corporation
Global Const $_Wave_Format_Unisys_Nap_AdPCM=0x0170 ;Unisys Corp.
Global Const $_Wave_Format_Unisys_Nap_UlAw=0x0171 ;Unisys Corp.
Global Const $_Wave_Format_Unisys_Nap_AlAw=0x0172 ;Unisys Corp.
Global Const $_Wave_Format_Unisys_Nap_16K=0x0173 ;Unisys Corp.
Global Const $_Wave_Format_Creative_AdPCM=0x0200 ;Creative Labs, Inc
Global Const $_Wave_Format_Creative_FastSpeech8=0x0202 ;Creative Labs, Inc
Global Const $_Wave_Format_Creative_FastSpeech10=0x0203 ;Creative Labs, Inc
Global Const $_Wave_Format_Uher_AdPCM=0x0210 ;UHER informatic GmbH
Global Const $_Wave_Format_QuarterDeck=0x0220 ;Quarterdeck Corporation
Global Const $_Wave_Format_ILink_Vc=0x0230 ;I-link Worldwide
Global Const $_Wave_Format_Raw_Sport=0x0240 ;Aureal Semiconductor
Global Const $_Wave_Format_Esst_Ac3=0x0241 ;ESS Technology, Inc.
Global Const $_Wave_Format_Generic_Passthru=0x0249
Global Const $_Wave_Format_Ipi_Hsx=0x0250 ;Interactive Products, Inc.
Global Const $_Wave_Format_Ipi_Rpelp=0x0251 ;Interactive Products, Inc.
Global Const $_Wave_Format_Cs2=0x0260 ;Consistent Software
Global Const $_Wave_Format_Sony_Scx=0x0270 ;Sony Corp.
Global Const $_Wave_Format_Fm_Twns_Snd=0x0300 ;Fujitsu Corp.
Global Const $_Wave_Format_Btv_Digital=0x0400 ;Brooktree Corporation
Global Const $_Wave_Format_QDesign_Music=0x0450 ;QDesign Corporation
Global Const $_Wave_Format_Vme_VmPCM=0x0680 ;AT&T Labs, Inc.
Global Const $_Wave_Format_Tpc=0x0681 ;AT&T Labs, Inc.
Global Const $_Wave_Format_OliGsm=0x1000 ;Ing C. Olivetti & C., S.p.A.
Global Const $_Wave_Format_OliAdPCM=0x1001 ;Ing C. Olivetti & C., S.p.A.
Global Const $_Wave_Format_OliCelp=0x1002 ;Ing C. Olivetti & C., S.p.A.
Global Const $_Wave_Format_OliSbc=0x1003 ;Ing C. Olivetti & C., S.p.A.
Global Const $_Wave_Format_OliOpr=0x1004 ;Ing C. Olivetti & C., S.p.A.
Global Const $_Wave_Format_Lh_Codec=0x1100 ;Lernout & Hauspie
Global Const $_Wave_Format_NoRris=0x1400 ;Norris Communications, Inc.
Global Const $_Wave_Format_SoundSpace_MusicOmpress=0x1500 ;AT&T Labs, Inc.
Global Const $_Wave_Format_Mpeg_Adts_Aac=0x1600 ;Microsoft Corporation
Global Const $_Wave_Format_Mpeg_Raw_Aac=0x1601 ;Microsoft Corporation
Global Const $_Wave_Format_Nokia_Mpeg_Adts_Aac=0x1608 ;Microsoft Corporation
Global Const $_Wave_Format_Nokia_Mpeg_Raw_Aac=0x1609 ;Microsoft Corporation
Global Const $_Wave_Format_Vodafone_Mpeg_Adts_Aac=0x160A ;Microsoft Corporation
Global Const $_Wave_Format_Vodafone_Mpeg_Raw_Aac=0x160B ;Microsoft Corporation
Global Const $_Wave_Format_Dvm=0x2000 ;FAST Multimedia AG
Func WaveOut_Open($IDDevice=$_Wave_Mapper, $FormatDevice=$_Wave_Format_PCM, $CallBackFuncName=$_CallBack_Null, $FlagDevice=$_Wave_allowSync, $ArgnChannels=2, $ArgnSamplesPerSec=22050, $ArgwBitsPerSample=16)
#CS
----------
Descripción: Abre un dispositivo de salida de audio.
Argumentos:
-$IDDevice:
Identificador del dispositivo de salida de audio a abrir.
Pueden utilizarse una de las siguientes banderas en vez del identificador del dispositivo:
-$_Wave_Mapper: Se abre un dispositivo capaz de reproducir el formato de audio indicado (Valor por defecto).
Si sólo hay un dispositivo de salida de audio, el identificador de este será 0.
-$FormatDevice:
Formato de audio a utilizar en el dispositivo de salida de audio (Por defecto el dispositivo se abre para "wave").
(Ver la lista de constantes relativas a los formatos de audio, para ver la lista completa de formatos disponibles).
-$CallBackFuncName:
-Nombre de la función callback a la que el dispositivo de salida de audio llamará durante el procesamiento del audio.
Si no se desea registrar ninguna función callback este parámetro debe valer $_CallBack_Null (valor por defecto).
Las funciones callback que invoca esta función, reciben los siguientes mensajes de procesamiento del audio:
-"WOM_OPEN".
-"WOM_CLOSE".
-"WOM_DONE".
Las llamadas a las funciones callback se realizan cuando uno o más buffers se devuelven a la aplicación cliente.
-$FlagDevice:
Flags para la apertura del dispositivo de salida de audio:
-$_Wave_AllowSync: Permite abrir otros dispositivos de salida de audio simultáneamente, mientras el dispositivo indicado esté abierto.
-$_Wave_AllowSyncNull: No permite que se abran otros dispositivos de salida de audio mientras el dispositivo indicado esté abierto.
-$_Wave_Format_Direct: "ACM driver" no realiza conversiones entre formatos de audio.
-$_Wave_Format_Query: Comprueba si el dispositivo de salida de audio soporta el formato indicado, pero no lo abre.
Si se requiere especificar más de un flag, estos deben indicarse mediante una operación BitAnd, por ejemplo así:
BitAnd($_Wave_AllowSync, $_Wave_Format_Query)
Con tantos flags como deseen pasarse a la función.
-$ArgnChannels:
Canales del formato de audio que se utilizará en el dispositivo de salida de audio indicado:
-1=Mono.
-2=Estéreo (valor por defecto).
-$ArgnSamplesPerSec:
Samples por segundo del formato de audio que se utilizará en el dispositivo de salida de audio indicado.
Si se especifica $_Wave_Format_PCM en $FormatDevice, serán válidos los siguientes valores:
-8.0 kHz.
-11.025 kHz.
-22.05 kHz (valor por defecto).
-44.1 kHz.
Para otros formatos de audio, consultar las especificaciones del fabricante, para ver los posibles valores de este parámetro.
-$ArgwBitsPerSample:
Bits por muestra de audio.
Si se especifica $_Wave_Format_PCM en $FormatDevice, serán válidos los siguientes valores:
-8.
-16 (valor por defecto).
Valor(es) de retorno:
-$_Err_Dll: Ocurrió un error al abrir el dispositivo indicado.
-$_MMSysErr_InValHandle: El handle del dispositivo de salida de audio indicado es incorrecto.
-$_MMSysErr_BadDeviceID: El identificador del dispositivo de salida de audio indicado está fuera de rango.
-$_MMSysErr_NoDriver: No hay dispositivos de salida de audio en el equipo.
-$_MMSysErr_NoMem: Imposible asignar memoria.
-$_WavErr_BadFormat: El dispositivo de salida de audio indicado no soporta el formato de audio especificado.
-$_WavErr_Sync: El dispositivo de salida de audio es síncrono, pero WaveOut_Open() fue llamada sin utilizar el flag $_Wave_AllowSync.
-<>$_Err_Dll/$_MMSysErr_InValHandle/$_MMSysErr_BadDeviceID/$_MMSysErr_NoDriver/$_MMSysErr_NoMem/$_WavErr_BadFormat/$_WavErr_Sync: Handle del dispositivo de salida de audio abierto.
----------
#CE
Local $BuffAudioCaps, $OpDevice, $SetAudioFormat1
Local $SetAudioFormat2, $SetAudioFormat3, $SetAudioFormat4
Local $SetAudioFormat5, $SetAudioFormat6, $SetAudioFormat7
Local $FuncCallBackDevice, $FuncCallBackPTR, $CallBackType
Local $BuffHandDevice, $ValFlagDevice
If ($IDDevice=="" Or $FormatDevice=="" Or $CallBackFuncName=="" Or $FlagDevice=="" _
Or $ArgnChannels=="" Or $ArgnSamplesPerSec=="" Or $ArgwBitsPerSample=="") Then Return $_Err_Dll
$BuffAudioCaps=DllStructCreate("ushort wFormatTag;ushort nChannels;dword nSamplesPerSec;dword nAvgBytesPerSec;ushort nBlockAlign;ushort wBitsPerSample;ushort cbSize")
$BuffHandDevice=DllStructCreate("long")
$SetAudioFormat1=DllStructSetData($BuffAudioCaps, "wFormatTag", $FormatDevice)
$SetAudioFormat2=DllStructSetData($BuffAudioCaps, "nChannels", $ArgnChannels)
$SetAudioFormat3=DllStructSetData($BuffAudioCaps, "nSamplesPerSec", $ArgnSamplesPerSec)
$SetAudioFormat4=DllStructSetData($BuffAudioCaps, "wBitsPerSample", $ArgwBitsPerSample)
$SetAudioFormat5=DllStructSetData($BuffAudioCaps, "nBlockAlign", ($ArgwBitsPerSample/8)*$ArgnChannels)
$SetAudioFormat6=DllStructSetData($BuffAudioCaps, "nAvgBytesPerSec", DllStructGetData($BuffAudioCaps, "nBlockAlign")*$ArgnSamplesPerSec)
$SetAudioFormat7=DllStructSetData($BuffAudioCaps, "cbSize", 0)
If ($BuffAudioCaps==0 Or $BuffHandDevice==0 Or $SetAudioFormat1==0 Or $SetAudioFormat2==0 Or $SetAudioFormat3==0 _
Or $SetAudioFormat4==0 Or $SetAudioFormat5==0 Or $SetAudioFormat6==0 Or ($SetAudioFormat7==0 And @Error<>0)) Then Return $_Err_Dll
If $IDDevice==$_Wave_Mapper Then
$ValFlagDevice=BitAnd($FlagDevice, $_Wave_Mapper)
EndIf
$OpDevice=DllCall($WinmmDLL, "int", "waveOutOpen", "ptr", DllStructGetPtr($BuffHandDevice), "uint", $IdDevice, "ptr", DllStructGetPtr($BuffAudioCaps), "ulong", 0, "ulong", 0, "dword", $ValFlagDevice)
If @Error<>0 Then Return $_Err_Dll
If $OpDevice[0]<>0 Then
Return $OpDevice[0]
Else
Return DllStructGetData($BuffHandDevice, 1)
EndIf
EndFunc
Ese montón de constantes, son de un .h que utiliza la librería (habrán más cuando esté toda la UDF terminada). las he puesto para que sea más fácil entender el significado de los valores y de recordarlas; además, de para tenerlo todo a mano a la hora de usar las funciones, y no tener que romperse los cuernos buscando en archivos .h, en la msdn o en Google, porque la documentación de las funciones habla siempre de las constantes en vez de los valores reales.
Digo que está casi terminada, porque faltaría implementar la opción de registrar un callback si se desea, pero aún no lo he implementado, pues no se qué parámetros ha de tener la función callback (a ver si lo encuentro por algún sitio).
Por lo demás, yo creo que está todo hecho. Devuelve aparentemente el handle del dispositivo abierto, tanto si se especifica un id de dispositivo como si se deja que sea la propia función quien busque el más adecuado para reproducir el formato de audio indicado.
Lo que ocurre, es que no se el porqué, pero a veces, al cerrar el script con el que invoco a esta función, peta el autoit y sale eso de los informes de errores. Es por la llamada a WaveoutOpen, pero no se por qué. Aunque debe ser cosa del tipo de dato de algún argumento, he probado de todas las formas posibles y nada... Peta cuando le da la gana. A ver si alguien sabe ver cual es el problema...
Ale, que espero opiniones, sugerencias.... :P.
Salu2!