Giter Club home page Giter Club logo

wineasio's Introduction

WineASIO

WineASIO provides an ASIO to JACK driver for WINE.
ASIO is the most common Windows low-latency driver, so is commonly used in audio workstation programs.

You can, for example, use with FLStudio under GNU/Linux systems (together with JACK).

Screenshot

For best results with Debian-based distributions, enable the KXStudio repositories and install WineASIO from there.

BUILDING

Do the following to build for 32-bit Wine.

make 32

Do the following to build for 64-bit Wine.

make 64

INSTALLING

To install 32-bit WineASIO (substitute with the path to the 32-bit wine libs for your distro).

sudo cp build32/wineasio32.dll /usr/lib/i386-linux-gnu/wine/i386-windows/
sudo cp build32/wineasio32.dll.so /usr/lib/i386-linux-gnu/wine/i386-unix/

To install 64bit WineASIO (substitute with the path to the 64-bit wine libs for your distro).

sudo cp build64/wineasio64.dll /usr/lib/x86_64-linux-gnu/wine/x86_64-windows/
sudo cp build64/wineasio64.dll.so /usr/lib/x86_64-linux-gnu/wine/x86_64-unix/

NOTE:
Wine does not have consistent paths between different Linux distributions, these paths are only a hint and likely not what will work for you.
New versions of wine might also need to use wineasio64.so as name instead of wineasio64.dll.so.
It is up to the packager to figure out what works for the Wine version used on their specific distro.

EXTRAS

For user convenience a wineasio-register script is included in this repo, if you are packaging WineASIO consider installing it as part of WineASIO.

Additionally a control panel GUI is provided in this repository's gui subdir, which requires PyQt5 to build and run.
The WineASIO driver will use this GUI as the ASIO control panel.

REGISTERING

After building and installing WineASIO, we still need to register it on each Wine prefix.
For your convenience a script is provided on this repository, so you can simply run:

wineasio-register

to activate WineASIO for the current Wine prefix.

CUSTOM WINEPREFIX

The wineasio-register script will register the WineASIO driver in the default Wine prefix ~/.wine.
You can specify another prefix like so:

env WINEPREFIX=~/asioapp wineasio-register

GENERAL INFORMATION

ASIO apps get notified if the jack buffersize changes.

WineASIO can slave to the jack transport.

WineASIO can change jack's buffersize if so desired. Must be enabled in the registry, see below.

The configuration of WineASIO is done with Windows registry (HKEY_CURRENT_USER\Software\Wine\WineASIO).
All these options can be overridden by environment variables.
There is also a GUI for changing these settings, which WineASIO will try to launch when the ASIO "panel" is clicked.

The registry keys are automatically created with default values if they doesn't exist when the driver initializes. The available options are:

[Number of inputs] & [Number of outputs]

These two settings control the number of jack ports that WineASIO will try to open.
Defaults are 16 in and 16 out. Environment variables are WINEASIO_NUMBER_INPUTS and WINEASIO_NUMBER_OUTPUTS.

[Autostart server]

Defaults to off (0), setting it to 1 enables WineASIO to launch the jack server.
See the jack documentation for further details.
The environment variable is WINEASIO_AUTOSTART_SERVER, and it can be set to on or off.

[Connect to hardware]

Defaults to on (1), makes WineASIO try to connect the ASIO channels to the physical I/O ports on your hardware.
Setting it to 0 disables it.
The environment variable is WINEASIO_CONNECT_TO_HARDWARE, and it can be set to on or off.

[Fixed buffersize]

Defaults to on (1) which means the buffer size is controlled by jack and WineASIO has no say in the matter.
When set to 0, an ASIO app will be able to change the jack buffer size when calling CreateBuffers().
The environment variable is WINEASIO_FIXED_BUFFERSIZE and it can be set to on or off.

[Preferred buffersize]

Defaults to 1024, and is one of the sizes returned by GetBufferSize(), see the ASIO documentation for details.
Must be a power of 2.

The other values returned by the driver are hardcoded in the source,
see ASIO_MINIMUM_BUFFERSIZE which is set at 16, and ASIO_MAXIMUM_BUFFERSIZE which is set to 8192.
The environment variable is WINEASIO_PREFERRED_BUFFERSIZE.

Be careful, if you set a size that isn't supported by the backend, the jack server will most likely shut down, might be a good idea to change ASIO_MINIMUM_BUFFERSIZE and ASIO_MAXIMUM_BUFFERSIZE to values you know work on your system before building.

In addition there is a WINEASIO_CLIENT_NAME environment variable, that overrides the JACK client name derived from the program name.

CHANGE LOG

1.2.0

  • 29-SEP-2023: Fix compatibility with Wine > 8
  • 29-SEP-2023: Add wineasio-register script for simplifying driver registration

1.1.0

  • 18-FEB-2022: Various bug fixes (falkTX)
  • 24-NOV-2021: Fix compatibility with Wine > 6.5

1.0.0

  • 14-JUL-2020: Add packaging script
  • 12-MAR-2020: Fix control panel startup
  • 08-FEB-2020: Fix code to work with latest Wine
  • 08-FEB-2020: Add custom GUI for WineASIO settings, made in PyQt5 (taken from Cadence project code)

0.9.2

  • 28-OCT-2013: Add 64-bit support and some small fixes

0.9.1

  • 15-OCT-2013: Various bug fixes (JH)

0.9.0

  • 19-FEB-2011: Nearly complete refactoring of the WineASIO codebase (asio.c) (JH)

0.8.1

  • 05-OCT-2010: Code from Win32 callback thread moved to JACK process callback, except for bufferSwitch() call.
  • 05-OCT-2010: Switch from int to float for samples.

0.8.0

  • 08-AUG-2010: Forward port JackWASIO changes... needs testing hard. (PLJ)

0.7.6

  • 27-DEC-2009: Fixes for compilation on 64-bit platform. (PLJ)

0.7.5

  • 29-Oct-2009: Added fork with call to qjackctl from ASIOControlPanel(). (JH)
  • 29-Oct-2009: Changed the SCHED_FIFO priority of the win32 callback thread. (JH)
  • 28-Oct-2009: Fixed wrongly reported output latency. (JH)

0.7.4

  • 08-APR-2008: Updates to the README.TXT (PLJ)
  • 02-APR-2008: Move update to "toggle" to hopefully better place (PLJ)
  • 24-MCH-2008: Don't trace in win32_callback. Set patch-level to 4. (PLJ)
  • 09-JAN-2008: Nedko Arnaudov supplied a fix for Nuendo under WINE.

0.7.3

  • 27-DEC-2007: Make slaving to jack transport work, correct port allocation bug. (RB)

0.7

  • 01-DEC-2007: In a fit of insanity, I merged JackLab and Robert Reif code bases. (PLJ)

0.6

  • 21-NOV-2007: add dynamic client naming (PLJ)

0.0.3

  • 17-NOV-2007: Unique port name code (RR)

0.5

  • 03-SEP-2007: port mapping and config file (PLJ)

0.3

  • 30-APR-2007: corrected connection of in/outputs (RB)

0.1

  • ???????????: Initial RB release (RB)

0.0.2

  • 12-SEP-2006: Fix thread bug, tidy up code (RR)

0.0.1

  • 31-AUG-2006: Initial version (RR)

LEGAL STUFF

Copyright (C) 2006 Robert Reif
Portions copyright (C) 2007 Ralf Beck
Portions copyright (C) 2007 Johnny Petrantoni
Portions copyright (C) 2007 Stephane Letz
Portions copyright (C) 2008 William Steidtmann
Portions copyright (C) 2010 Peter L Jones
Portions copyright (C) 2010 Torben Hohn
Portions copyright (C) 2010 Nedko Arnaudov
Portions copyright (C) 2011 Christian Schoenebeck
Portions copyright (C) 2013 Joakim Hernberg
Portions copyright (C) 2020-2023 Filipe Coelho

The WineASIO library code is licensed under LGPL v2.1, see COPYING.LIB for more details.
The WineASIO settings UI code is licensed under GPL v2+, see COPYING.GUI for more details.

wineasio's People

Contributors

falktx avatar farlongsignal avatar infinity0 avatar jhernberg avatar kottv avatar praashie avatar terencode avatar trebmuh avatar yellowonion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wineasio's Issues

ALSA support

I wonder how difficult it would to have optional direct ALSA support? I don't really need my mixers audio interface for my Ubuntu desktop and would not mind Wine takeover. Also, I run at most only a single audio application at a time under wine. To summarize, JACK is only overhead in this kind of situation.

I could give it shot possibly but would need some feedback whether this is technically feasible or not at first.

Apps crash when ASIO device is selected

  • System: Archlinux
  • Wine: 5.4
  • Jack2: 1.9.14

Applications running on Wine crash when Jack is running and the ASIO device is selected. However, they do not crash when Jack is not running.

Debug information of the crash: https://gist.github.com/ChuckDaniels87/a1ec8da7829033076d573c6c17f43079

Things I have tried without success:

  • Downgrade to Wine 4.0.
  • Use the current wineasio AUR version
  • Use the version of wineasio in this repo.
  • Reinstall applications.
  • Test in a clean Wine prefix.

Notes:

rtaudio file empty

can't make 64 nor 32 the rtaudio file is empty
output

make build ARCH=x86_64 M=64 make[1]: Entering directory '/username/wine/wineasio' make[1]: *** No rule to make target 'rtaudio/include/asio.h', needed by 'build'. Stop. make[1]: Leaving directory /'username/wine/wineasio' make: *** [Makefile:18: 64] Error

can somebody help me?

"Error while accessing ASIO driver" in FL Studio 20.6

I followed the manual to the letter. "WineASIO" shows in the list of sound drivers of FL studio. When I select it, I get "Error while accessing ASIO driver". When I select the standard driver again it crashes FL Studio. I had this issue with multiple wine versions from 5.0something a few month ago up to 5.22 now.

  • I tested both fresh 64 and 32 bit wine installation and 32 and 64 bit FL studio binary
  • Jack2 is working with LMMS
  • ALSA only no Pulseaudio
  • I use an Audigy2 sound card (emu10k), it sometimes causes weirdness but nothing like this
  • I tried to change various options like documented with regedit or different sample rates or frames/period it changes nothing (I can't change periods/buffer to anything but 2 though or Jack won't start)

From wine console:

BDB0126 mmap: Resource temporarily unavailable
cannot open DB environment: Resource temporarily unavailable
Cannot create thread res = 11
Cannot start Jack client listener
Cannot start channel
JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

From Jack2 console:

Cannot read socket fd = 24 err = Success
Unknown request 0

5.9.14-arch1-1 #1 SMP PREEMPT Sat, 12 Dec 2020 14:37:12 +0000 x86_64 GNU/Linux
local/jack2 1.9.16-1
local/lib32-jack2 1.9.16-1
local/wineasio-git

I have read in old threads that you can't run 32bit wine through Jack2 and that you should try Jack1, is that still so?

Error while accessing the asio driver

Hello.

I'm running Garuda Linux (Arch based) and I've installed wineasio through the AUR. I copied the .dll.so file to my wine prefix's (~/.wine) windows/system32 folder but I'm not sure if that was necessary. I've registered it with wine64 regsvr32 wineasio.dll and it was successful. However when I try to load it in FL Studio, the driver gives "Error while accessing driver". Is there anything I'm missing? If I need to provide logs please let me know how to do so as I'm still fairly new to linux.

Weird quality difference compared to native FLASIO in FL Studio 20

I noticed a bizarre quality difference between the the native "FL Studio ASIO" in Win10 and "WineASIO" in linux Manjaro 20.2.

Here's a short video to demonstrate that.

I can confirm the difference here isn't down to the setup of OBS studio at all.I can easily spot the difference when listening to those streams directly from my PC with headphones.But the interesting part is that the ASIO4ALL driver in Win10 has almost the same quality as WineASIO,so I thought there should be some extra filters like EQ and expander that FLASIO actually applies to the stream.But after listening to the exported .mp3 file,that sounded like what was coming out of FLASIO.So there should be no filters involved.

Tampering the JACK settings(buff-size,samplerate,etc.) doesn't change anything whatsoever.Even I don't know whether it's down to WineASIO at all or whether here's the right place to report this or not.BTW I think the mixing process is not to blame because I've tried to connect Wine directly to ALSA(i.e without JACK or PulseAudio intervention).
I'm confused so any help to figure that out is appreciated.

Regards.

wineasio.dll failed to register/load on Wine-6.0-RC5 (patched)

Hello,

I have been using wineasio under wine-stable (5.0.3) on Ubuntu 20.10 x64. I have been using it with Reaper 6.19 and have successfully had it register without much incident, and also working with Jack2 as well.

There have been several new libraries released under the new Wine 6.0 release candidates, along with a patch I need to run Presonus Studio One 5 Professional. I have compiled my own wine and wine64 and have been able to run Studio One with the latest patch.

Unfortunately I cannot get wineasio.dll to register using:

regsvr32 wineasio.dll
wine64 regsvr32 wineasio.dll

with the error that it failed to load the DLL. I was able to get it to register using:

regsvr32 /usr/lib/i386-linx-gnu/wine/wineasio.dll.so
wine64 regsvr32 /usr/lib/x86_x64-linux-gnu/wine/wineasio.dll.so

Unfortunately even with it registering, wineasio will not work under Reaper 6.19 or Studio One 5. An option for "wineasio" under audio devices appears for both programs, but when I select it, an error comes up saying it failed to load the ASIO device and the port selection (in/out) is empty. When I debug both programs, it gives the same error: "failed to load wineasio.dll." I have compiled my own versions of wineasio from the latest source, and have tried using the kxstudio repos with no improvement.

I have also tried registering it using the WINEDLLPATH=/usr/lib64/wine and placing wineasio.dll.so in that path. It will successfully register as well, but it gives the same error when I try to select the ASIO device in the programs.

When I revert back to Wine 5.0.3, the DLLs register without any additional specification (using only "regsvr32 wineasio.dll; wine64 regsvr32 wineasio.dll") and work fine with jack. Unfortunately I cannot use Studio One on 5.0.3 due to multiple libraries being missing that were added in the Wine 5.0 development cycle. What's the best way to evaluate this further and get a potential fix going for wineasio or wine? Thanks for your help.

-Moses

Driver not applying options in registry

I've been trying to change some of the configuration of wineasio but it does not seem to be following the settings in the registry.

Here is my wine regedit:
image

However, the driver still creates 16 input and 16 output ports and connects automatically to the physical I/O. Is this the correct way to configure the driver in the registry?

Glitches at low samples rates, latency

Hi,
I have been trying to use wineasio to have an acceptable latency using ableton live, which means to me at most than 256 samples per second.
I have jack 1.9.22 installed and with my computer I easily run aeolus with no glitches at 64 samples per second, which I find.
I installed the wineasio-amd64 5:0.10.0~git20200209 version from the kxstudio repository and then followed your instructions
regsvr32 wineasio.dll
wine64 regsvr32 wineasio.dll

I 've been running ableton live with the wineasio enabled in ableton live but I have glitches and xruns. Jacks messages the following :
"
Tue Mar 10 23:45:17 2020: New client 'Ableton Live 10 Trial' with PID 6132
23:45:18.238 Récupération désynchronisation (XRUN) (474).
Tue Mar 10 23:45:18 2020: ERROR: JackEngine::XRun: client = Ableton Live 10 Trial was not finished, state = Running
Tue Mar 10 23:45:18 2020: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Tue Mar 10 23:45:18 2020: ERROR: JackEngine::XRun: client = Ableton Live 10 Trial was not finished, state = Running
"
Well, this many more times!!
A bit of those :

"
Tue Mar 10 23:45:19 2020: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
23:45:20.100 Récupération de désynchronisation (XRUN) (7 sauté).
23:45:20.558 Récupération désynchronisation (XRUN) (482).
Tue Mar 10 23:45:20 2020: ERROR: JackEngine::XRun: client = Ableton Live 10 Trial was not finished, state = Running
"
Also with triggered :

"
Tue Mar 10 23:45:26 2020: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Tue Mar 10 23:45:26 2020: ERROR: JackEngine::XRun: client = Ableton Live 10 Trial was not finished, state = Triggered
"

Then I closed ableton live :
"
Tue Mar 10 23:45:58 2020: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Tue Mar 10 23:45:58 2020: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Tue Mar 10 23:45:58 2020: Client 'Ableton Live 10 Trial' with PID 6132 is out
"

I can also say I have the same issue as this : jhernberg/wineasio#6 :
"Ableton 10 thinks there is a lot of load on my CPU but this isn't the case."
When at 512 samples per seconds CPU is for me at 12% even if I don't play (then it grows at 17%) and it changes rapidly all the time. It often goes at more than 50% (only playing a sinewave on operator). With jack at 1024 samples per seconds there are much less xruns but still (and latency) and around 5% cpu load (still changing quickly), whereas when pulseaudio is the selected output in ableton, at 1024 samples per seconds there are no xruns at all and the cpu load is around 10% when not playing and 15% when playing, but stable at those values. The pulseaudio output is also going into jack.
I use the lowlatency kernel.

Do you know what's going on? Is it a problem of mine, or a bug? Hope it can help both of us!

Cheers.

Unable to open a JACK client

cannot open DB environment: Resource temporarily unavailable
Cannot create thread res = 11
Cannot start Jack client listener
Cannot start channel
JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Unable to open a JACK client as: FL64
BDB0126 mmap: Resource temporarily unavailable
cannot open DB environment: Resource temporarily unavailable
Cannot create thread res = 11
Cannot start Jack client listener
Cannot start channel
JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Unable to open a JACK client as: FL64

Every wineasio application I try, gets this. Which usually makes the whole application crash.

Of course jack is running, e.g.:

Cannot lock down 107341338 byte memory area (Cannot allocate memory)
>>> Warning. Could not set higher priority for a SCHED_OTHER process using setpriority().
Cannot use real-time scheduling (RR/5) (1: Operation not permitted)
JackClient::AcquireSelfRealTime error
>>> Recording to "jack_capture_01.wav". Press <Return> or <Ctrl-C> to stop.
>>> Please wait while writing all data to disk. (shouldn't take long) 
   |"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
00:|                                                                 |
01:|                                                                 |
Buffer: 4.01s./4.01s    Time: 0.09m.   DHP: [ ]  Overruns: 0  Xruns: 0
Finished.

Question about the jack start option in the registry

Sorry to bother, but reading the instructions for WineAsio you mention the registry setting that would allow jack to be started automatically when WineASIO tries to make a connection and that further information could be had from reading the jack documentation. Problem is that I am not able to find hints about this in the jack docs. Would you be able to give more details on how this feature can be used? Because that sounds really conventient not having to start jack first everyt time before I start a wineASIO application :)

build wineasio with ubuntu 20.04 / wine 7.0 stable

sudo apt install wine-stable-dev libjack-jackd2-dev

edit makefile.mk of wineasio and add l.39
INCLUDE_PATH += -I/opt/wine-stable/include/wine/windows/
to fix error

asio.c:44:10: fatal error: objbase.h: No such file or directory
   44 | #include "objbase.h"

Debian Bullseye install Error No ASIO output device found

First off I appreciate your arsenal of plugins and apps. "Error No ASIO output device found" was already coming up and that is how I found this project. I am using PlayOnLinux and trying to load Drumsynth 500.

After following the instructions for Debian installs post kxstudio-repos_11.1.0_all.deb install, apt install wineasio places the libraries into directories but nothing beyond that. Manually registering both 32 and 64 does not produce registry entries. Manually making for whatever reason it is not finding one of the header files that is there when I search.

One of this things I noticed is http://ppa.launchpad.net/kxstudio-debian/apps/ubuntu bionic/main amd64 wineasio amd64 comes up when using apt install and I am on Bullseye. Why not just offer an entry to sources instead of make a package?

Any help is appreciated including how to remove everything and undo your packages if this is not going to work please. Thank you.

This is a newer install and I do not appreciate seeing kxstudio every time I update now.

Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://deb.debian.org/debian bullseye-updates InRelease
Get:3 http://ppa.launchpad.net/kxstudio-debian/libs/ubuntu focal InRelease [17.5 kB]                   
Hit:4 http://security.debian.org/debian-security bullseye-security InRelease                           
Hit:5 http://ppa.launchpad.net/kxstudio-debian/plugins/ubuntu focal InRelease
Hit:6 http://ppa.launchpad.net/kxstudio-debian/apps/ubuntu focal InRelease
Hit:7 http://ppa.launchpad.net/kxstudio-debian/kxstudio/ubuntu focal InRelease
Hit:8 http://ppa.launchpad.net/kxstudio-debian/libs/ubuntu bionic InRelease
Hit:9 http://ppa.launchpad.net/kxstudio-debian/music/ubuntu bionic InRelease
Get:10 http://ppa.launchpad.net/kxstudio-debian/plugins/ubuntu bionic InRelease [15.4 kB]
Hit:11 http://ppa.launchpad.net/kxstudio-debian/apps/ubuntu bionic InRelease
Hit:12 http://ppa.launchpad.net/kxstudio-debian/kxstudio/ubuntu bionic InRelease

Consider setting Fixed buffersize to False as default

There is a new jack implementation on the field, pipewire, that allows selecting the buffer size for each application. By default it uses 1024 samples and WineASIO reads that value directly. If then you launch a jack client with a smaller buffer size, WineASIO doesn't adapt by default. Consider setting the default to unfixed buffer size.

Error building wineasio on Ubuntu 22.04

I get the following when trying to build wineasio either 32 or 64 bit and I am not sure what I am to make about this. Hope someone can cast some light on this :)

$ make 32
make build ARCH=i386 M=32
make[1]: Entering directory '/home/kodi/Downloads/wineasio'
gcc -c -I. -Irtaudio/include -I/usr/include/wine -I/usr/include/wine/windows -I/usr/include/wine-development -I/usr/include/wine-development/wine/windows -I/opt/wine-stable/include -I/opt/wine-stable/include/wine/windows -I/opt/wine-staging/include -I/opt/wine-staging/include/wine/windows -m32 -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -Werror=implicit-function-declaration -O2 -DNDEBUG -fvisibility=hidden -o build32/asio.c.o asio.c
asio.c:44:10: fatal error: objbase.h: No such file or directory
44 | #include "objbase.h"
| ^~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile.mk:102: build32/asio.c.o] Error 1
make[1]: Leaving directory '/home/kodi/Downloads/wineasio'
make: *** [Makefile:15: 32] Error 2

App freezes when WineASIO Driver is selected

I am trying to get Amplitube 4 running on an Ubtuntu 20.04LTS with Wine (wine-5.0 (Ubuntu 5.0-3ubuntu1)).
When I select the WineASIO Driver as an output device the Amplitube entry pops up in the Jack connection window but the app freezes. There is no error message shown in the terminal.

I have managed to get this work on a previous install but this time I am stuck. Please let me know if further info is needed.

Winamp - Crash after for some port connects

Hallo,
i've set up Winamp/ASIO and even though audio quality is more or less beautiful it crashes quite reliably after switching some tracks. It seems somewhat buffer dependent. The greater the buffer in the Winamp ASIO plugin the lower the chance to crash (thus set to max). I also played with WineASIO configs in regedit and Jack buffers but it didn't help.

I've put up a video for demonstration below. There are roughly 3 parts. The first one shows the ASIO plugin behavior, skipping some tracks until it crashes. The second part shows the same without ASIO (via DirectSound/Loopback/zita-a2j instead). It runs flawlessly. The 3rd part shows a very specific behavior of the ASIO plugin in Carla when moving any element/box when the ASIO plugin is present. It crashes Wine/WineASIO immediately and produces somewhat high stress on the Jack backend (massive xruns) so that even QJackQtl needs some time to recover (and also crashed audio in the video below). This could be related.

If you look closely during track changes you can see that the 'Winamp' element (in Carla) is flickering shortly. That's probably a re-initialization of the Jack device that is somewhat flakey i guess. It can repeat that only for some time then it crashes (Wine/WineASIO?).

There is also weird behavior when manually trying to connect the WineASIO ports. Ports do not connect until Winamp is 'paused'. During 'play' you cannot connect. It just flickers once as it would have crashed. But 'jack-matchmaker' can somehow connect it reliably though (QjackCtl can not, tries for some time and gives up). But that's probably not directly the cause for the crashes. If ports do not get connected at all it crashes nevertheless when skipping some tracks (as it still re-initializes). Something seems to stack up in the background because of re-initialization.

Long story short. I guess the culprit is the permanent re-initialization of the WineASIO device in Jack whenever you play/stop/skip. Maybe some resources are not freed, memory leak or something adds up in the background. I don't know.

Would it be possible to keep the WineASIO device somehow persistent/reserved so it wouldn't re-initialze every time?

Video: https://dl.dropboxusercontent.com/s/sib48o0sku10eyk/WineASIO-Winamp-Crash.mkv
17MB, h264/RGB, 1080p

Arch Linux 5.11.6
jack2 v1.9.17
Carla 2.3.0.RC1.r8.g892314005-1
jack-matchmaker v0.9.0
Winamp v5.666
Winamp ASIO plugin v0.67z4
Wine v6.4
wineasio-git r50.4b23797-2 (2021.03.12)

Wineasio in manjaro problem

Hello. There is a problem with wineasio working in manjaro. I am using manjaro with kernel 5.13.1, wine-6.12 (Staging).
I installed wineasio from the AUR because I could not build it from source (make 32 / make 64 output is "There is no rule for building the rtaudio / include / asio.h target required for build. Stop.")

It was possible to install with AUR, however, unfortunately, even after regsvr32 wine still refuses to see the wineasio driver (in winecfg, in the sound tab I see only good old pulseaudio). The DAW also, logically, does not see wineasio.
image
P.s. regsvr32 says about success installed DLLs.

What am I doing wrong? :)

AUR: https://aur.archlinux.org/packages/wineasio/

Wineasio stopped working with wine-staging 6.6

After upgrade to wine-staging 6.6 I could not longer select wineasio as the audio device. I tried to recompile and re-register but, under wine-staging version 6.6 I only get the message:

regsvr32: Failed to load DLL 'wineasio.dll'

After downgrading to the previous version (6.5) it registered successfully:

regsvr32: Successfully registered DLL 'wineasio.dll'

Using wineasio from git clone on Arch 5.11.13.

fatal error: jack/jack.h

make build ARCH=x86_64 M=64
make[1]: Entrando no diretório '/home/sam/Downloads/wineasio-1.0.0'

Package jack was not found in the pkg-config search path.
Perhaps you should add the directory containing `jack.pc'
to the PKG_CONFIG_PATH environment variable
Package 'jack', required by 'virtual:world', not found
gcc -c -I. -Irtaudio/include -I/usr/include/wine -I/usr/include/wine/windows -I/usr/include/wine-development -I/usr/include/wine-development/wine/windows -m64 -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -Werror=implicit-function-declaration -DNATIVE_INT64 -O2 -DNDEBUG -fvisibility=hidden -o build64/asio.c.o asio.c
asio.c:33:10: fatal error: jack/jack.h: Arquivo ou diretório inexistente
33 | #include <jack/jack.h>
| ^~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile.mk:98: build64/asio.c.o] Erro 1
make[1]: Saindo do diretório '/home/sam/Downloads/wineasio-1.0.0'

make: *** [Makefile:18: 64] Erro 2

JACK not available in wincfg Audio with Wine 7

I'm using Arch Linux. I installed wine 7 and wine-mono yesterday from the official repositories and I tried to install wineasio (from the AUR, but I later also build it myself). The AUR comes with the 32bit and 64bit wineasio.dll.so but no wineasio.dll (within the /usr/lib64/wine and /usr/lib32/wine folders anyway). I got these wineasio.dll.sos to register successufully, but when I then open winecfg and try to choose JACK in the audio tab, in all options it just shows me PulseAudio. The same for wine-staging, which I also tried.

When building from source, I got the wineasio.dll.so files as well as the wineasio.dll files. I copied those to their respective /usr/libXY/wine directories and registered them, but no luck with that either.

I tried to just open an ML Sound Lab free amp as well as Cockos Reaper, but while both give me the ASIO option, neither of them shows an actual device afterwards (and give me errors of not finding any). Jack is started of course (although I cannot say that I'm sure to have it set up correctly, but it works for native programs).

Has wineasio been tested for wine 7 by anyone yet?

I'm new to this, so I don't really know what to look for for debugging. If I can produce any log files that might be of help, please let me know how to do so.

wineasio + FL studio 10 , configured 4x2 outputs , but all sounds go to the default stereo pair

Hi all,
this is my first attempt at running FL studio through Wine so I may have missed something.

First of versions:

ubuntustudio 20.04 (with kxstudio repos enabled)
jackdmp version 1.9.12.
wine 5.0-3ubuntu1
wineasio 5.1.1.0-1kxstudio2
winetricks 0.0+20200412-1

run cmd

env WINEPREFIX="/home/$me/.wine" wine-stable C:\\windows\\command\\start.exe /Unix /home/$me/.wine/dosdevices/c:/users/$me/Start\ Menu/Programs/Image-Line/FL\ Studio\ 10/FL\ Studio\ 10.lnk

I have setup 4 pairs of outputs
image
image

and they appear fine in qjackctl
image

Initially the setup works fine and audio is routed to the primary pair (mixer's "master" is output to "out_1 - out_2"
image
) and from there audio appears in qjackctl at FL:out_1 and FL:out_2 as expected.

Problem

when I try to change the output in mixer's "master" to "out_3 - out_4" or any other pair, the sound is still routed to FL:out_1 and FL:out_2.

Is this expected? Am I missing some configuration ?

Thank you in advance for your help

[PipeWire] Wrong IO channel configuration passed to CreateBuffers

Hello!

I am trying to make WineASIO work with PipeWire. I am aware that there are many issues open but I did some debugging and I think it would be better to start fresh with a new issue.

With the 0.3.45 PipeWire release I was not getting the segfault that many other issues mention. I do however get other issues.

I noticed that the bufferInfo that is passed to [email protected] has only one input regardless of how many are configured.

I am using ASIO Driver Tester for testing and I installed the latest WineASIO master.

So an example:

I start my application with 2 inputs and outputs configured:

WINEASIO_NUMBER_INPUTS=2 WINEASIO_NUMBER_OUTPUTS=2 WINEPREFIX=~/.wine_asio wine64 ~/Downloads/dt/VBASIOTest64.exe

Then bufferInfo will have 4 items. The first is going to be an input and the remaining three are going to be outputs.

It seems that CreateBuffers is only called from the ASIO SDK but I am a bit lost on how to investigate this further.

The output GetChannels is what I expect.

iface: 0x161d60, inputs: 2, outputs: 2

It looks like ASIO client receives the correct number of channels but then creates only one input regardless.

I think the next step would be to just compile the included sample from the ASIO SDK and step through the code.

I haven't tried to compile Windows binaries on Linux so I will see how that will turn out.

In the meantime, do you have any ideas on why this could be happening?

Crashes when clicked on - Artix (arch-based) Linux

I am using playonwine so I think the install steps were not configurated for it, however wineasio appears in FL so i must have set it up mostly correct, however it still crashes.

The comment I left on another issue is below detailing the process. If I record a video I will post it as a comment.

I get error while accessing the asio driver then it immediately crashes. using 6.11 staging in playonlinux
like when i change to wineasio, it immediately dies.
I installed the AUR on top of my manual install and i added the user to the group. Seems to have made the crash less worse, but it still crashes FL

commands I ran:

git clone --recursive https://github.com/wineasio/wineasio.git winea
cd winea

paru -S jack
paru -S jack2
paru -S lib32-jack2

make 32
sudo cp build32/wineasio.dll.so ~.PlayOnLinux/wineprefix/FL_STUDIO/drive_c/windows/system/wineasio.dll
regsvr32 ~.PlayOnLinux/wineprefix/FL_STUDIO/drive_c/windows/system/wineasio.dll
env WINEPREFIX=~/.PlayOnLinux/wineprefix/FL_STUDIO/ regsvr32 ~/.PlayOnLinux/wineprefix/FL_STUDIO/drive_c/windows/system/wineasio.dll

paru -S wineasio
sudo usermod -a -G realtime admin #fixed glitches when crashing but app still crashes

Running artix kernel 5.12.14-artix1-1
Based on arch
Using FL Studio 12.1.2 32bit
playonlinux wine version: wine-6.11-staging
terminal wine version: wine-6.12

I have some ideas to why it is not working.
The regsvr32 is for my terminal wine not playonlinux wine?
The wineprefix is in the wrong directory?

I would be highly grateful if i could get some help running wineasio on playonlinux or at all tbh

Fatal error.

After typing make 64 I get an fatal error.
What am I doing wrong?

make build ARCH=x86_64 M=64
make[1]: Entering directory '/home/usr/wineasio'
gcc -c -I. -Irtaudio/include -I/usr/include/wine -I/usr/include/wine/windows -I/usr/include/wine-development -I/usr/include/wine-development/wine/windows -m64 -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -Werror=implicit-function-declaration -DNATIVE_INT64 -O2 -DNDEBUG -fvisibility=hidden -o build64/asio.c.o asio.c
asio.c:44:10: fatal error: objbase.h: No such file or directory
44 | #include "objbase.h"
| ^~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile.mk:98: build64/asio.c.o] Error 1
make[1]: Leaving directory '/home/usr/wineasio'
make: *** [Makefile:18: 64] Error 2
usr@pop-os:~/wineasio$ make 64
make build ARCH=x86_64 M=64
make[1]: Entering directory '/home/usr/wineasio'
gcc -c -I. -Irtaudio/include -I/usr/include/wine -I/usr/include/wine/windows -I/usr/include/wine-development -I/usr/include/wine-development/wine/windows -m64 -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -Werror=implicit-function-declaration -DNATIVE_INT64 -O2 -DNDEBUG -fvisibility=hidden -o build64/asio.c.o asio.c
asio.c:44:10: fatal error: objbase.h: No such file or directory
44 | #include "objbase.h"
| ^~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile.mk:98: build64/asio.c.o] Error 1
make[1]: Leaving directory '/home/usr/wineasio'
make: *** [Makefile:18: 64] Error 2

Timecode handling in jack_process_callback()

Does this essentially require to set timeCodeSamples to the value of jack_position.frame, or is there something more complicated associated with this?

        if (This->asio_can_time_code) /* FIXME addionally use time code if supported */
        {
            jack_transport_state = jack_transport_query(This->jack_client, &jack_position);
            This->asio_time.timeCode.flags = kTcValid;
            if (jack_transport_state == JackTransportRolling)
                This->asio_time.timeCode.flags |= kTcRunning;
        }

regsvr32: Failed to load DLL 'wineasio.dll'

Distro - ArchLinux 64bit
Wine 5.4
after compiling, I copied the file to /usr/lib/wine/

running regsvr32 wineasio.dll returns regsvr32: Failed to load DLL 'wineasio.dll
Hoever, giving the full path registers successfully but wineasio don't show up in the libraries list.

Tried with both 32 and 64 bit

Am I missing something here?

wine-staging

Hey,

I'm trying to build wineasio for the winehq-staging branch, this builds fine after some minor include modifications but the build only gives me the "wineasio.dll.so" file and if I put that into /opt/wine-staging/lib/wine/i386-unix/wineasio.dll.so it won't work.

My guess is that /opt/wine-staging/lib/wine/i386-windows/wineasio.dll needs to be build as well, but Im not sure how to do that right now.

These are the two includes needed for winehq-staging:

INCLUDE_PATH += -I/opt/wine-staging/include
INCLUDE_PATH += -I/opt/wine-staging/include/wine/windows

I'm building this on Ubuntu 21.04 with the winehq-staging ppa, my goal was to try pw-jack to see if this would work or maybe add PipeWire support to wineasio.

Guess I have some reading up to do, but if you know how to generate both the dll and the dll.so that would be a great start!

makefile errors

Can't build 32 or 64 bit verison on Arch. Here is the full make log.
make build ARCH=i386 M=32 make[1]: Entering directory '/home/user/wineasio' make[1]: *** No rule to make target 'rtaudio/include/asio.h', needed by 'build'. Stop. make[1]: Leaving directory '/home/user/wineasio' make: *** [Makefile:15: 32] Error 2

Any ideas of why this could be happening?

Fedora 35 / pipewire with wineasio

Hi, not sure if there is any experience with fedora 35 (that uses pipewire) and wineasio.
I tried to let it run with rocksmith 2014 but rocksmith crashes and says: no output device

So i created mdias/rs_asio#233 because i thought maybe its some problem with rs_asio, but seems like its more a problem with wineasio. is there some way to turn on debugging? or any other hint how to continue?

make 32 error - tried to mod Makefile.mk , reinstalled libjack2_0 - errors/warnings still persist

Dear,

I try to compile WineASIO 1.1.0 on;

  • 64-bit platform (Ubuntu-Studio 20.04.4 LTS),
  • multiarch is enabled, there is a proper
  • Wine 7.5 wine-devel installed i.e. development version

I pulled github repo with rt audio successfully via

cd /wineasio/ git submodule update --init --recursive

Wine-devel dirs seem to be necessary to add to Makeconfig.mk.
After some modifications where necessary to add missing wine-devel includes in makefile.mk

I entered the local git wineasio dir and started compilation

make 32 on initially brought some warnings, e.g. like

asio.c:438:13: warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘LONG’ {aka ‘long int’} [-Wformat=] 438 | ERR("Unable to allocate IOChannel structures for %i channels\n", This->wineasio_number_inputs); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | LONG {aka long int}

Trying to working around this, I reinstalled libjack library by issuing:

sudo apt reinstall libjack-jackd2-0
...
long story short:

last error I can not get past in make32 is this one; ld linker search for libjack i386 ver failed

That is, basically, a part of the make 32 output, near the end of the full output ->

... /usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libjack.so when searching for -ljack /usr/bin/ld: cannot find -ljack collect2: error: ld returned 1 exit status winegcc: /usr/bin/gcc failed ...

Full commandline and output was:

❯ make 32 make build ARCH=i386 M=32 make[1]: Entering directory '/home/user/repos/git/wineasio' winegcc build32/asio.c.o build32/main.c.o build32/regsvr.c.o -shared -m32 -mnocygwin wineasio.dll.spec -L/usr/lib32/wine -L/usr/lib/wine -L/usr/lib/i386-linux-gnu/wine -L/usr/lib/i386-linux-gnu/wine-development -L/opt/wine-stable/lib -L/opt/wine-stable/lib/wine -L/opt/wine-stable/lib32 -L/opt/wine-stable/lib32/wine -L/opt/wine-staging/lib -L/opt/wine-staging/lib/wine -L/opt/wine-staging/lib32 -L/opt/wine-staging/lib32/wine -ljack \ -lodbc32 -lole32 -lwinmm -luuid -o build32/wineasio.dll.so /usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libjack.so when searching for -ljack /usr/bin/ld: cannot find -ljack collect2: error: ld returned 1 exit status winegcc: /usr/bin/gcc failed make[1]: *** [Makefile.mk:116: build32/wineasio.dll.so] Error 2 make[1]: Leaving directory '/home/user/repos/git/wineasio' make: *** [Makefile:15: 32] Error 2

In contrast, make64 compiles without any issue and produces the correct output.

Upon researching at the inet there are even some hints that Ubuntu (unknown version) does not have full 32 bit libs libs support, and that chroot/container compiling would do the trick.

In any way, this was a showstopper for now.

It would be great to have a method for make 32 to be compile locally without any error.

Am willing to try things out for this system and wine-devel variant, make it work and feed back the results here

Thanks in advance

System:
Ubuntu-Studio 20.04.1 Ubuntu SMP PREEMPT x86_64

Causes guitar rig 5 to crash on startup most of the time.

I got this working in Manjaro via the aur git build. The dll, and dll.so are located in the subdirectories of /lib64/wine or /usr/lib/wine. This is why people can't register them, they aren't located in. /usr/lib/ .

My issue is that, guitar rig 5 will usually crash 5 or 6 times on startup before it's successfully opens. This only happens with wineasio. Sometimes, even after it opens, my input signal is distorted, and requires me to repeat the cycle. I might have to open the program upto 15 times to get it to work correctly.

Any suggestions?

Can't build for x86_64 architecture

I use manjaro. Build for 32 bit works flawlessly, but having trouble for 64 bit. I am getting the following error:

winegcc -shared -m64 -mnocygwin wineasio.dll.spec -L/usr/lib64/wine -L/usr/lib/wine -L/usr/lib/x86_64-linux-gnu/wine -L/usr/lib/x86_64-linux-gnu/wine-development -L/opt/wine-stable/lib -L/opt/wine-stable/lib/wine -L/opt/wine-stable/lib64 -L/opt/wine-stable/lib64/wine -L/opt/wine-staging/lib -L/opt/wine-staging/lib/wine -L/opt/wine-staging/lib64 -L/opt/wine-staging/lib64/wine -o build64/wineasio.dll.so build64/asio.c.o build64/main.c.o build64/regsvr.c.o -ljack -lodbc32 -lole32 -lwinmm -luuid
ld: relocatable linking with relocations from format elf32-i386 (/usr/local/lib/wine/libuuid.a(uuid.o)) to format elf64-x86-64 (wineasio.buBJMa.o) is not supported
winebuild: ld failed with status 1
winegcc: winebuild failed
make[1]: *** [Makefile.mk:109: build64/wineasio.dll.so] Error 2
make[1]: Leaving directory '/tmp/wineasio'
make: *** [Makefile:18: 64] Error 2

I am kind of sure that I need to link to 64 bit wine, but not sure how. I tried giving library path as followings:

make -e LIBRARY_PATH=/usr/lib/wine 64

But this gives the following error:

winegcc -shared -m64 -mnocygwin wineasio.dll.spec -L/usr/lib64/wine -L/usr/lib/wine -L/usr/lib/x86_64-linux-gnu/wine -L/usr/lib/x86_64-linux-gnu/wine-development -L/opt/wine-stable/lib -L/opt/wine-stable/lib/wine -L/opt/wine-stable/lib64 -L/opt/wine-stable/lib64/wine -L/opt/wine-staging/lib -L/opt/wine-staging/lib/wine -L/opt/wine-staging/lib64 -L/opt/wine-staging/lib64/wine -o build64/wineasio.dll.so build64/asio.c.o build64/main.c.o build64/regsvr.c.o /usr/lib/wine -ljack -lodbc32 -lole32 -lwinmm -luuid
winegcc: File does not exist: /usr/lib/wine
make[1]: *** [Makefile.mk:109: build64/wineasio.dll.so] Error 2
make[1]: Leaving directory '/tmp/wineasio'
make: *** [Makefile:18: 64] Error 2

Crash with Pipewire-Jack 0.3.33, here's a workaround!

Since upgrading from Pipewire ~0.3.31 to 0.3.33, WineASIO has started to crash immediately when trying to use it with Pipewire's Jack implementation instead of a native Jack server.

More information about the crash: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1495

Workaround for low-latency Wine applications

Use Pipewire for handling your sound cards, and run a Jack2 server with alsa backend and using pipewire as the device.

jackd -d alsa -d pipewire -p $PERIOD_SIZE -r $SAMPLE_RATE

Pipewire is not able to communicate with native Jack very well, so individual clients can't directly connect between native Jack and Pipewire. You can run an individual Wine application in the native Jack server and connect other Pipewire/PW-Jack clients to the endpoints of the Jack server.

In my case, I'm using FL Studio. I'm not satisfied with using FL Studio ASIO because Wine's own PulseAudio/ALSA drivers use hidden buffers to increase stability, with the penalty of unacceptable (~60 ms) extra latency for playing virtual instruments.

Can't load ASIO driver error using WineASIO on Fedora

I have been trying to set up wineasio on my device so I could use FL without big latency, but when I try to select WineASIO as the audio device I get an error and I can't use it.
The error I am getting: "Couldn't open the ASIO driver"

I am trying to run: FL Studio 20 with WineASIO built from GitHub source on Lutris 0.5.9.1 on my Fedora 35
I am using wine 7.2
The JACK server seems to be running (shows running on QJackCtl).

However I do not get any output on the log when I try to open WineASIO in FL, however I see output when I select FL ASIO.

I have the following audio related packages:
alsa-firmware
alsa-lib
pipewire-alsa
wine-alsa
pipewire-jack-audio-connection-kit
pipewire-libs
pipewire-pulseaudio
qjackctl
wireplumber
(few more but I don't think those are relevant)

I have not have had anything to do with those audio packages or anything before, so I do not know which logs or information exactly is needed to resolve this problem, so if anything is missing I can provide that, I just don't know what.
I have had a look at the other issues, I don't think mine is one of the other open ones, at least the resolutions I have tried did not work.

wineasio crashes programs since last release

Hi there.
wineasio is seen by programs but can't be load.
I've tried to register :

~$ regsvr32 wineasio.dll
regsvr32 : Impossible to load DLL « wineasio.dll »

Some programs crash when wineasio is selected as driver.

Kontakt :

00b8:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"wineasio.dll"
00b8:err:ole:CoGetClassObject no class object {48d0c522-bfcc-45cc-8b84-17f25f33e6e8} could be created for context 0x1
00b8:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"wineasio.dll"
00b8:err:ole:CoGetClassObject no class object {48d0c522-bfcc-45cc-8b84-17f25f33e6e8} could be created for context 0x1
0130:fixme:dwmapi:DwmEnableMMCSS (0) stub
0130:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",0000000011D0FE10): stub
0130:fixme:avrt:AvSetMmThreadPriority (0000000012345678)->(2) stub
0134:fixme:dwmapi:DwmEnableMMCSS (0) stub
0134:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",00000000013EFE10): stub
0134:fixme:avrt:AvSetMmThreadPriority (0000000012345678)->(2) stub

Ribs https://hvoyaaudio.itch.io/ribs :

00b8:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"wineasio.dll"
00b8:err:ole:CoGetClassObject no class object {48d0c522-bfcc-45cc-8b84-17f25f33e6e8} could be created for context 0x1

RtApiAsio::getDeviceInfo: unable to load driver (WineASIO Driver).

WineASIO Driver: Probe Status = Unsuccessful
00b8:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"wineasio.dll"
00b8:err:ole:CoGetClassObject no class object {48d0c522-bfcc-45cc-8b84-17f25f33e6e8} could be created for context 0x1

RtApiAsio::getDeviceInfo: unable to load driver (WineASIO Driver).

00b8:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"wineasio.dll"
00b8:err:ole:CoGetClassObject no class object {48d0c522-bfcc-45cc-8b84-17f25f33e6e8} could be created for context 0x1

RtApiAsio::probeDeviceOpen: unable to load driver (WineASIO Driver).

wine: Unhandled page fault on read access to 0000000000000000 at address 0000000140014FA3 (thread 00b8), starting debugger...

wine version : wine-5.12
ubuntu 18.04

wineasio 1.1.0 upgrade breaks certain Windows hosts that runs on wine-staging 6.4

Hi,

Wineasio was upgraded to 1.1.0 yesterday and now, hosts such as Superior Drummer SOLO and Garritan Aria Player can't be used with it. SOLO sees the ASIO driver but complains about a Windows WX problem (..wx/ctrlsubh: assert "!Items.Is.Emty()" failed in wxitemContainer::InsertItems():need something to insert) and the Aria Player does not see the ASIO at all. The plugins work fine in Carla.

I have now downgraded to 1.0.0 and pinned it (sudo apt-mark hold wineasio=5:1.0.0-1kxstudio1), everything is ok again.

My system: Kubuntu-20.04 (with KXStudio repos enabled) and wine-staging-6.4.

Jostein

"There was an error opening the audio hardware:" Reaper | artix linux

I have compiled and installed everything from the code without any problems. Wineasio is shown in Reaper as a Asio driver, but when Reaper starts i get this message:
"There was an error opening the audio hardware:

Error loading ASIO driver"

Using Wineasio cloned from github and Artix linux

Cannot make it work in a 32bit wine prefix

Hi, just tested with a 32bit only wine prefix. Trying to select asio stops doing nothing. The 64bit prefix works fine btw.

Distro - Arch Linux

The wine versions i tested with: 5.0 staging, 5.6 staging, 5.8 staging. For each i compiled using that specific wine version. In all situations, dll registers successfully.

i registered using

32bit

WINEPREFIX=/path_to_32bit_wine_prefix/ WINEDLLPATH=/path_to_specific_wine_dir/lib32 /path_to_specific_bin_dir/wine regsvr32 wineasio.dll

64bit

WINEPREFIX=/path_to_64bit_wine_prefix/ WINEDLLPATH=/path_to_specific_wine_dir/lib64 /path_to_specific_bin_dir/wine64 regsvr32 wineasio.dll

Also, there's nothing in jack logs. Is there anything i can do to debug this?

wineasio does not appear in wine regedit

Hello,

I've been trying to install wineasio on Manjaro. It compile without evident error, the dll got registred (x64 version) without issue.

But when I try to use it inside an audio app running with Wine (REAPER for exemple), there is no I/O. Further more, if I check into the regedit (using the command wine regedit), I can't find the keys related to wineasio.

Capture d’écran de 2022-03-21 21-54-24

I'm running Wine 7.4 on a 5.15.5.22.realtime1-1-rt linux kernel.

Maybe I am missing an evident point or a dependencies ?

Thanks !

Binaries.

It would be great to have pre-compiled binaries in releases.
Or is that not possible?

Unable to change sample rate from 48000hz to 44100hz

Hello,

I have an application that simply will not run unless the audio device is set to a 44100hz sample rate. Just Windows things. Long story short, no matter what I do, I cannot set wineasio up so that it reports at a 44100hz sample rate. This is despite Jack running with a 44100hz sample rate and everything. Am I missing something?

I'm on Arch Linux, running a built wineasio-git from the AUR and pipewire-jack.

wine-vanilla 6.14 regsvr32 fails to see the wineasio.dll

I built wineasio and installed it into the path, where all wine *.dll.so are located - in my Gentoo distribution they are /usr/{lib,lib64}/wine-vanilla-6.14/wine/x86_{32,64}-unix"

The command wine64 regsvr32 wineasio.dll returns regsvr32: Failed to load DLL 'wineasio.dll'.
Setting WINEPATH to /usr/lib64/wine-vanilla-6.14/wine/x86_64-unix doesn't help.

putting full path to the regsvr32 does the trick and the dll gets registered. wineasio shows up in the application (Ableton) but I can't choose it. The error comes up failed to open audio device WineASIO driver.

Build probiem using Fedora 36

I am trying to build wineasio on Fedorq 36 / wine 7.9. I use gcc-12.1.1.
I've got the following error message:

gcc -c -I. -Irtaudio/include -I/usr/include/wine -I/usr/include/wine/windows -I/usr/include/wine-development -I/usr/include/wine-development/wine/windows -I/opt/wine-stable/include -I/opt/wine-stable/include/wine/windows -I/opt/wine-staging/include -I/opt/wine-staging/include/wine/windows -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1          -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -m64 -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -Werror=implicit-function-declaration  -DNATIVE_INT64 -O2 -DNDEBUG -fvisibility=hidden -o build64/regsvr.c.o regsvr.c
winebuild -m64 --dll --fake-module -E wineasio.dll.spec build64/asio.c.o build64/main.c.o build64/regsvr.c.o -o build64/wineasio.dll
winegcc build64/asio.c.o build64/main.c.o build64/regsvr.c.o -shared -m64 -mnocygwin wineasio.dll.spec -L/usr/lib64/wine -L/usr/lib/wine -L/usr/lib/x86_64-linux-gnu/wine -L/usr/lib/x86_64-linux-gnu/wine-development -L/opt/wine-stable/lib -L/opt/wine-stable/lib/wine -L/opt/wine-stable/lib64 -L/opt/wine-stable/lib64/wine -L/opt/wine-staging/lib -L/opt/wine-staging/lib/wine -L/opt/wine-staging/lib64 -L/opt/wine-staging/lib64/wine -ljack  \
        -lodbc32 -lole32 -lwinmm -luuid -o build64/wineasio.dll.so
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libwinmm.a(winmm-cb6fe73e.o): warning: relocation against `__wine$func$winmm$149$timeGetTime' in read-only section `.text'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libole32.a(ole32-f2098568.o): in function `StringFromGUID2':
(.text+0x0): undefined reference to `__wine$func$ole32$286$StringFromGUID2'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libwinmm.a(winmm-cb6fe73e.o): in function `timeGetTime':
(.text+0x0): undefined reference to `__wine$func$winmm$149$timeGetTime'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-25d95bfd.o): in function `RegCloseKey':
(.text+0x0): undefined reference to `__wine$func$advapi32$388$RegCloseKey'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-75cc7c73.o): in function `RegCreateKeyExA':
(.text+0x0): undefined reference to `__wine$func$advapi32$394$RegCreateKeyExA'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-d87501dc.o): in function `RegCreateKeyExW':
(.text+0x0): undefined reference to `__wine$func$advapi32$395$RegCreateKeyExW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-5061b28d.o): in function `RegDeleteKeyW':
(.text+0x0): undefined reference to `__wine$func$advapi32$404$RegDeleteKeyW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-2af6e8a7.o): in function `RegEnumKeyExW':
(.text+0x0): undefined reference to `__wine$func$advapi32$414$RegEnumKeyExW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-b827c4a0.o): in function `RegOpenKeyExA':
(.text+0x0): undefined reference to `__wine$func$advapi32$431$RegOpenKeyExA'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-1ad04a09.o): in function `RegOpenKeyExW':
(.text+0x0): undefined reference to `__wine$func$advapi32$432$RegOpenKeyExW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-580e058c.o): in function `RegQueryValueExW':
(.text+0x0): undefined reference to `__wine$func$advapi32$443$RegQueryValueExW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-1fedd6b3.o): in function `RegSetValueExA':
(.text+0x0): undefined reference to `__wine$func$advapi32$459$RegSetValueExA'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libadvapi32.a(advapi32-82965c1c.o): in function `RegSetValueExW':
(.text+0x0): undefined reference to `__wine$func$advapi32$460$RegSetValueExW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libuser32.a(user32-13529683.o): in function `wsprintfW':
(.text+0x0): undefined reference to `__wine$func$user32$776$wsprintfW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-aa6462e4.o): in function `CreateEventW':
(.text+0x0): undefined reference to `__wine$func$kernel32$106$CreateEventW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-3cb01173.o): in function `CreateThread':
(.text+0x0): undefined reference to `__wine$func$kernel32$150$CreateThread'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-bfb9d309.o): in function `GetEnvironmentVariableA':
(.text+0x0): undefined reference to `__wine$func$kernel32$431$GetEnvironmentVariableA'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-dca7567b.o): in function `GetModuleFileNameW':
(.text+0x0): undefined reference to `__wine$func$kernel32$479$GetModuleFileNameW'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-7180f88b.o): in function `GetProcessHeap':
(.text+0x0): undefined reference to `__wine$func$kernel32$537$GetProcessHeap'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-c5bb8fb2.o): in function `HeapAlloc':
(.text+0x0): undefined reference to `__wine$func$kernel32$670$HeapAlloc'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-505d646e.o): in function `HeapFree':
(.text+0x0): undefined reference to `__wine$func$kernel32$676$HeapFree'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-52fd2014.o): in function `SetEvent':
(.text+0x0): undefined reference to `__wine$func$kernel32$1063$SetEvent'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-3467802b.o): in function `WaitForSingleObject':
(.text+0x0): undefined reference to `__wine$func$kernel32$1219$WaitForSingleObject'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-243fbd8b.o): in function `WideCharToMultiByte':
(.text+0x0): undefined reference to `__wine$func$kernel32$1237$WideCharToMultiByte'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-7e6a4a6b.o): in function `lstrlenA':
(.text+0x0): undefined reference to `__wine$func$kernel32$1302$lstrlenA'
/usr/bin/ld: /usr/bin/../lib64/wine/x86_64-unix/libkernel32.a(kernel32-e112bf9b.o): in function `lstrlenW':
(.text+0x0): undefined reference to `__wine$func$kernel32$1303$lstrlenW'
/usr/bin/ld: warning: creating DT_TEXTREL in a shared object
collect2: error: ld returned 1 exit status
winegcc: /usr/lib64/ccache/gcc failed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.