Menu

wineasio on macosx

Help
Anonymous
2013-05-30
2014-12-08
  • Anonymous

    Anonymous - 2013-05-30

    to make it compile for macosx I replaced in asio.c:

    #define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl " #name suffix "\n\t.type " #name suffix ",@function\n" #name suffix ":\n\t.cfi_startproc\n\t" code "\n\t.cfi_endproc\n\t.previous");
    

    by

    #define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl _" #name suffix "\n\t\n_" #name suffix ":\n\t" code "");
    

    and

    #define __ASM_NAME(name) name
    

    by

    #define __ASM_NAME(name) "_" name
    

    (borrowed from wine sources)

    I could install the dll, but I had no luck in making it work though... How can I debug/log what happens? I saw in other posts that you can log wineasio?

     
  • Anonymous

    Anonymous - 2013-05-30

    a log example:

    env WINEDEBUG=+asio wine savihost.exe
    err:ntdll:RtlpWaitForCriticalSection section 0x7bc98b14 "loader.c: loader_section" wait timed out in thread 0021, blocked by 0022, retrying (60 sec)
    fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
    fixme:coreaudio:get_channel_mask Unknown speaker configuration: 16
    fixme:coreaudio:get_channel_mask Unknown speaker configuration: 16
    2013-05-30 22:47:02.390 wine[42735:1903] AudioComponentPluginLoader: can't create bundle: TAL-NoizeM4k3r.component -- file://localhost/Users/conversy/Library/Audio/Plug-Ins/Components/
    fixme:coreaudio:get_channel_mask Unknown speaker configuration: 16
    fixme:dsound:DSOUND_WaveFormat Limiting channels to 2 due to lack of multichannel support
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 1 lpvReserved: 0x0)
    trace:asio:DllGetClassObject rclsid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, riid: {00000001-0000-0000-c000-000000000046}, ppv: 0x32e6fc)
    trace:asio:CF_AddRef iface: 0x4d092560, ref has been set to 2
    trace:asio:CF_CreateInstance iface: 0x4d092560, pOuter: 0x0, riid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, ppobj: 0x32ef4c)
    trace:asio:CF_CreateInstance Creating the WineASIO object
    trace:asio:WineASIOCreateInstance riid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, ppobj: 0x32ef4c
    trace:asio:WineASIOCreateInstance pobj = 0x791a88
    trace:asio:WineASIOCreateInstance return 0x791a88
    trace:asio:CF_Release iface 0x4d092560, ref has been set to 1
    trace:asio:Init iface: 0x791a88, sysRef: 0x30038
    trace:asio:Init JACK client opened as: 'savihost'
    trace:asio:Init 32 IOChannel structures allocated
    trace:asio:Init 32 IOChannel structures initialized
    trace:asio:Init WineASIO 0.9.0 initialized
    trace:asio:GetDriverName iface: 0x791a88, name: 0xc105a4
    trace:asio:GetDriverVersion iface: 0x791a88
    trace:asio:CanSampleRate iface: 0x791a88, Samplerate = 44100, requested samplerate = 44100
    trace:asio:CanSampleRate iface: 0x791a88, Samplerate = 44100, requested samplerate = 48000
    trace:asio:CanSampleRate iface: 0x791a88, Samplerate = 44100, requested samplerate = 88200
    trace:asio:CanSampleRate iface: 0x791a88, Samplerate = 44100, requested samplerate = 96000
    trace:asio:CanSampleRate iface: 0x791a88, Samplerate = 44100, requested samplerate = 176400
    trace:asio:CanSampleRate iface: 0x791a88, Samplerate = 44100, requested samplerate = 192000
    trace:asio:GetBufferSize iface: 0x791a88, minSize: 0xc10284, maxSize: 0xc10288, preferredSize: 0xc1028c, granularity: 0xc10290
    trace:asio:GetBufferSize Buffersize fixed at 512
    trace:asio:GetChannels iface: 0x791a88, inputs: 16, outputs: 16
    trace:asio:CreateBuffers iface: 0x791a88, bufferInfo: 0x32eef4, numChannels: 4, bufferSize: 512, asioCallbacks: 0x32ef34
    trace:asio:CreateBuffers Buffersize fixed at 512
    trace:asio:CreateBuffers The ASIO host supports ASIO v0
    trace:asio:CreateBuffers 32 ASIO audio buffers allocated (128 kB)
    trace:asio:CreateBuffers 4 audio channels initialized
    trace:asio:GetLatencies iface: 0x791a88 Latency = 512 frames
    trace:asio:DisposeBuffers iface: 0x791a88
    trace:asio:Release iface: 0x791a88, ref count is 0
    trace:asio:Release 32 IOChannel structures released
    trace:asio:Release WineASIO terminated

    fixme:asio:DllCanUnloadNow (void): stub
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 2 lpvReserved: 0x0)
    fixme:thread:SetThreadIdealProcessor (0xf8): stub
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 2 lpvReserved: 0x0)
    fixme:asio:DllCanUnloadNow (void): stub
    trace:asio:jack_thread_creator arg: 0x4118c60c, thread_id: 0x4118c620, attr: 0x32e110, function: 0x4c84fdd0
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 2 lpvReserved: 0x0)
    trace:asio:jack_thread_creator_helper arg: 0x4118c60c
    trace:asio:jack_thread_creator arg: 0x405280e4, thread_id: 0x405280f8, attr: 0x32e0f0, function: 0x4c84fdd0
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 2 lpvReserved: 0x0)
    trace:asio:jack_thread_creator_helper arg: 0x405280e4
    trace:asio:jack_thread_creator arg: 0x40527f78, thread_id: 0x40527f8c, attr: 0x32e210, function: 0x4c84fdd0
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 2 lpvReserved: 0x0)
    trace:asio:jack_thread_creator_helper arg: 0x40527f78
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 2 lpvReserved: 0x0)
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 2 lpvReserved: 0x0)
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 2 lpvReserved: 0x0)
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 3 lpvReserved: 0x0)
    trace:asio:DllMain hInstDLL: 0x4d080000, fdwReason: 3 lpvReserved: 0x0)
    trace:asio:DllGetClassObject rclsid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, riid: {00000001-0000-0000-c000-000000000046}, ppv: 0x32f45c)
    trace:asio:CF_AddRef iface: 0x4d092560, ref has been set to 2
    trace:asio:CF_CreateInstance iface: 0x4d092560, pOuter: 0x0, riid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, ppobj: 0xc1057c)
    trace:asio:CF_CreateInstance Creating the WineASIO object
    trace:asio:WineASIOCreateInstance riid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, ppobj: 0xc1057c
    trace:asio:WineASIOCreateInstance pobj = 0xc1c6e8
    trace:asio:WineASIOCreateInstance return 0xc1c6e8
    trace:asio:CF_Release iface 0x4d092560, ref has been set to 1
    trace:asio:Init iface: 0xc1c6e8, sysRef: 0x30038
    trace:asio:Release iface: 0xc1c6e8, ref count is 0
    trace:asio:Release WineASIO terminated

     
  • pfaffian

    pfaffian - 2013-06-02

    Using wine 1.5.31 and using the code changes above, I was able to successfully compile and use wineasio on osx with ableton live 6. I compiled it using clang.

     

    Last edit: pfaffian 2013-06-02
  • Anonymous

    Anonymous - 2013-06-02

    nice! I still cannot make it work, what a strange situation ;-)!

    My test setup is to run wine with savihost.exe and load Tal-NoiseMaker DLL... I can see the Asio device showing in savihost menu, but for some reasons it cannot connect to the jack server...

    Could you please tell me the steps you followed to make it work? Which wine binaries (macport?) and jack version do you use?

     
  • Steve

    Steve - 2014-11-10

    I was able to get these changes to compile and successfully work. Use the above changes to asio.c, then add the following flag to gcc lines of Makefile: -DASIOST32INT

    This seems to work fine, I hear audio, etc. Would love to see something integrated into the source mainline so that OSX users can benefit from wineasio without having to manually patch stuff.

     
  • Joakim Hernberg

    Joakim Hernberg - 2014-12-08

    I am not quite sure what is wrong above, but just want to let you know that I'm in the process of trying to integrate wineasio into wine itself. On the todo list is also to merge in the coreasio driver and hopefully support both JACK and coreaudio on OSX. Don't know how long this will take as I have limited time to work on it, and I don't know if the wine project will want to include the driver at all. But the upshot is that at some point I hope to start building it for OS/X too.

     

Log in to post a comment.