Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sound does not work #10

Closed
Golddouble opened this issue Apr 20, 2020 · 35 comments
Closed

Sound does not work #10

Golddouble opened this issue Apr 20, 2020 · 35 comments
Labels

Comments

@Golddouble
Copy link

After the successful install of SM in wine with your verb I moved my old collection from windows into the SM "systems" folder.
Most of my Items use sound. When I now open such an item there is a message:
SM17 Player fehler

I have tried "Pulseaudio" and "Internes Audio Analog Stereo" in audio-tab in winecfg. Both does not solve the issue. But when I perform the test "test sound"-button in winecfg I can here the sound. This test is successful.
(?)

@alessivs
Copy link
Owner

alessivs commented Apr 21, 2020

Since you successfully tested the output in winecfg, kindly tell me what kind of file they are. I am interested in details such as codec, enclosing format, bitrate, etc.

Suggestion:

  1. Pick a problematic file. Let's assume it's called myfile.mp3
  2. Paste the output of: mediainfo myfile.mp3. You might need to install the mediainfo package from your distro's repositories.

Even better, if you send me the file if it doesn't affect your privacy; my email is on my profile (or just upload it somewhere). I have a Debian Buster + SM 17 install on my old laptop, which is similar to your config.

@Golddouble
Copy link
Author

Thank you.
I have sent it to you by mail.

I also tried to open such a mp3 file in the wine-explorer in the SM17 prefix. It is said, that this file is not connected with any program.

@Golddouble
Copy link
Author

I forgot to mention: I now use Wine 5.6 and Winetricks 20200412.

@alessivs
Copy link
Owner

alessivs commented Apr 21, 2020

I now use Wine 5.6

Try to anchor your wine version to a stable one...for the same reasons mentioned here.

Quote: Wine development relies too much on active user reports to remedy its breakages, which is why I stuck with (and recommend) stable, right now only a couple point releases behind, unless you're interested in latest Wine developments for games and such.

Debian provides wine-stable which is at 5.0 right now. (wrong). I meant to anchor it to 5.0, which is Wine stable according to WineHQ, while Wine 5.6 is the dev version.

I also tried to open such a mp3 file in the wine-explorer in the SM17 prefix. It is said, that this file is not connected with any program.

No matter. It's likely not a device or Wine problem this time. I'll likely need to verify which library you'll need to install. I'll get back to you.

@alessivs
Copy link
Owner

alessivs commented Apr 21, 2020

The sample file is not special at all. Should work even with ancient Wine and SM 15.

Please make sure you have installed packages in the following list. Note that some release revision numbers or versions may change slightly. If needed install them through your distribution's package manager, not external repositories.

libmpg123-0
libmpg123-0:i386
gstreamer1.0-alsa
gstreamer1.0-gl
gstreamer1.0-plugins-base
gstreamer1.0-plugins-base:i386
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-good
gstreamer1.0-plugins-ugly
gstreamer1.0-pulseaudio
libgstreamer1.0-0
libgstreamer1.0-0:i386
libgstreamer-plugins-base1.0-0:i386
libgstreamer-plugins-bad1.0-0

Afterwards, close all Wine applications, and give it 5 secs approx for the wineserver process to finish. Then restart SM 17 and play a sound component.

@Golddouble
Copy link
Author

Thank you.

This was not installed according Synaptic package manager:
gstreamer1.0-gl

Unfortunately I could not find this in the package manager:
gstreamer1.0-plugins-base:i386

All others were installed.

So I now have installed "gstreamer1.0-gl".
-> Result: It gives me now no error message. But when I click to play the sound it simply does not play it. So "gstreamer1.0-plugins-base:i386" is missing now.

@alessivs
Copy link
Owner

alessivs commented Apr 21, 2020

Does this work?

dpkg --add-architecture i386
apt-get update
apt-get install gstreamer1.0-plugins-base:i386 libgstreamer-plugins-base1.0-0:i386

I no longer have Synaptic with me, though I might be able to run it in a VM later, so please bear with my incomplete advice for now.

@Golddouble
Copy link
Author

I was successful to install "gstreamer1.0-plugins-base:i386" with your commands.
-> Result:But it's the same. When I click to play the sound it simply does not play it. When I try to play the mp3 in the sound registry I get this message: "No MCI device open."

@alessivs
Copy link
Owner

alessivs commented Apr 22, 2020

I see you might have upgraded Wine through the MX Linux testing repository. Because of breakages I don't recommend using the bleeding edge Wine for SuperMemo.

On a vanilla MX Linux I managed to make it work with the present stable Wine (Wine-4.0) and recent winetricks; no additional packages required. What I did, was install the recommended packages, which pulled many i386 libraries, one of which may be the missing one in your system.

Perhaps something like this will do:

sudo apt-get --reinstall --install-recommends wine

@Golddouble
Copy link
Author

Golddouble commented Apr 22, 2020

On a vanilla MX Linux ...

What does "vanilla" mean?

I see you might have upgraded Wine through the MX Linux testing repository.

Yes, that's what I did. In MX Linux Package Manager I can choose between Wine 5.2 and Wine 5.6. In Wine 5.2 I can not install MS Office because of a license key problem. With Wine 5.6 the license key problem is solved.

Nevertheless. I did now the following:

  1. went back to wine 5.2
    ---> sound does still not work
  2. tried to apply "sudo apt-get --reinstall --install-recommends wine" in a terminal.
    Message: "Command line option "--reinstall" cannot be interpreted in combination with the other options."

Edit:
Thank you for the video.
What should "sudo apt-get --reinstall --install-recommends wine" do? Installing Wine 4.0?
I could uninstall wine 5.2/5.6 the following way:

  1. uninstall via MX Package Installer
  2. sudo apt-get autoremove

@alessivs
Copy link
Owner

alessivs commented Apr 22, 2020

What does "vanilla" mean?

Unmodified. Freshly installed.

What should "sudo apt-get --reinstall --install-recommends wine" do? Installing Wine 4.0?

By all means keep using the Wine version that causes the less friction for your applications, which turns to be wine-staging. If 5.6 is fine for SM (I tested 5.5 to be alright) then stay with that. I had assumed SM would be the only application running under Wine on your system. Only be observant and be ready to revert an upgrade if it causes problems.

Excuse that I don't speak much Debian. That was not it. I wanted apt-get to pick the recommended packages for your already installed Wine version (without changing the Wine version). Turns out you can simply (?) do, if you happen to have installed a package without its recommended packages:

sudo aptitude install '?reverse-recommends(?exact-name(wine-staging)) !?installed'

(after installing wine-staging)

I specified to install recommended packages when installing wine-staging (MX Linux configures apt to NOT install recommended packages by default, as you can see in the note Recommends are as of now still abused in many packages explaining the decision in /etc/apt/apt.conf). It pulled all dependencies/recommends from the dependent package wine-staging-i386, which according to intuition, pulls in required i386 libraries for multimedia.

@Golddouble
Copy link
Author

Golddouble commented Apr 22, 2020

Thank you @alessivs.

I tried now to install wine 5.2 in my vanilla MX Linux USB Live system.

  1. I install wine 5.2 via MX Packet Installer (popular tab)
  2. I run your command
    sudo aptitude install '?reverse-recommends(?exact-name(wine-staging)) !?installed'
    Result: Output:
0 packages updated, 0 additionally installed, 0 removed and 224 not updated.
0 B of archives must be downloaded. 
  1. I start MX Packet Installer again. Go to the stable repository Tab. Choose the "installed"-filter. Search for wine. Uncheck "hide libraries". Check the already installed packages. Check the option "install recomended packages".
    MX PI Installer Auswahl
    Press "install button".
    Output:
0 updated, 0 newly installed, 6 reinstalled, 0 to be removed and 224 not updated.
You still need to download 0 B of 225 MB of archives.
After this operation, 0 B of disk space is used additionally.
Do you want to continue? [Y/n] 
  1. And I also have installed "Codecs from Codex Installer (MX Tools)"
  2. Then I checked if the packages "gstreamer1.0-gl" and "gstreamer1.0-plugins-base:i386" are installed. They are not.

The behaviour of the wine installation is the same as in my working system and in my VM.
It seems none recommendet packages were installed. Not with your command from above and also not with the method with checked "recommended" option.

So how did you exactly manage to install wine with recommended packages on your vanilla MX Linux?

@alessivs
Copy link
Owner

alessivs commented Apr 23, 2020

I'll write down my step by step process to get SuperMemo alive and sound on MX Linux with a recent-ish Wine. Something came up now, though. I'll tackle it over the weekend.

PS: I wish MX Linux didn't introduce those apt overrides and repos; it just deviates from the "Debian" reference I would have in mind when giving out advice.

@alessivs
Copy link
Owner

alessivs commented Apr 27, 2020

On Debian-derivatives I'm going to recommend to have (old, stable) wine and wine-staging coexist. SuperMemo would be run by whatever wine is stable from Debian repos (usually a 4.x something), while the user can choose to use wine-staging for other applications.

The reason is that after 5.0 WineHQ has designed wine to be linked against an audio library (libfaudio) that Debian doesn't yet package, and I'm not sure about the situation with MX Linux (even after using it!). OpenSUSE OBS releases a libfaudio Debian package designed to go with wine-staging (at the moment, 5.7) but when playing sound from within SuperMemo, it just froze the application instead of play audio (something to discern is that the mechanism for Wine to communicate to Alsa is one thing, and another thing altogether is the audio drivers shipped with Wine receiving instructions sent by the audio player in SM). Personally I'm ignorant on how Debian or MX Linux include this library now, or will, in the future.

So in practice the scenario I'm describing consists of two wine binaries: /opt/wine-staging/bin/wine and /usr/bin/wine. You should not install any winehq or wine-compat packages because they are metapackages or symlinking packages that block the ability for different Wines to coexist. The consequence is that for using Wine-staging, you'll have to have its path override the system path, e.g.: export PATH=/opt/wine-staging/bin/:$PATH before any wine command, or fall back to specifying the full path directly. For Winetricks-related operations with Wine-staging (not for SM), you'd have to point it to the specific wine-staging executable with WINE=/opt/wine-staging/bin/wine winetricks..... You can choose to install two editions of Wine, or just stick to wine-staging (for now).

Before this opportunity I had not tested any installation procedures on recent Debian derivatives–just Buster with the shipped stable Wine, so I was unaware of this little mess. The winetricks verbs from supermemo-wine don't account for using a different wine executable than the system-wide default (or otherwise the one found in $PATH), and that feature will be added soon (later today or tomorrow). After I do, I'll publish an updated .verb file, and a list of commands for you to run ; they'll use Wine stable because that's well-packaged and finds all the required audio libraries.

PS: After I ship the graphical installer, I'll also build a containerized SuperMemo (perhaps with Guix or Docker). That could also be an option for messy circumstances.

@SirensOfTitan
Copy link

To add some anecdata to this: I'm running wine-5.0 on arch and haven't quite found an acceptable experience with supermemo18 yet:

  • using gstreamer with wine's pulseaudio driver so far works pretty well, but with some glitches[1]
  • using a windows only codec pack like K-lite's last XP target also works, but doesn't seem to fully play audio clips.

[1]: gstreamer plays some clips differently depending on bitrate. Some are crackly and play in like 2x chipmunk speed. I've tried changing pulseaudio parameters but haven't had much success. The clips do play normally using gplay-1.0 outside of wine.

This clip plays at chipmunk speeds:

General
Complete name                            : pronunciation_ru_свинья.mp3
Format                                   : MPEG Audio
File size                                : 22.8 KiB
Duration                                 : 697 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 128 kb/s
Album                                    : Pronunciation in Russian
Track name                               : свинья
Performer                                : Forvo
Writing library                          : LAME3.99.h
Comment                                  : https://forvo.com/word/свинья/#ru / https://forvo.com/license/
Copyright/Legal information              : https://forvo.com/license/

Audio
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Format settings                          : Joint stereo / MS Stereo
Duration                                 : 705 ms
Bit rate mode                            : Constant
Bit rate                                 : 128 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 44.1 kHz
Frame rate                               : 38.281 FPS (1152 SPF)
Compression mode                         : Lossy
Stream size                              : 10.9 KiB (48%)
Writing library                          : LAME3.99.h

This clip plays correctly:

General
Complete name                            : pronunciation_ru_июль.mp3
Format                                   : MPEG Audio
File size                                : 17.3 KiB
Duration                                 : 689 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 64.0 kb/s
Album                                    : Pronunciation in Russian
Track name                               : июль
Performer                                : Forvo
Writing library                          : LAME3.99.5
Comment                                  : https://forvo.com/word/июль/#ru / https://forvo.com/license/
Copyright/Legal information              : https://forvo.com/license/

Audio
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Duration                                 : 679 ms
Bit rate mode                            : Constant
Bit rate                                 : 64.0 kb/s
Channel(s)                               : 1 channel
Sampling rate                            : 44.1 kHz
Frame rate                               : 38.281 FPS (1152 SPF)
Compression mode                         : Lossy
Stream size                              : 5.38 KiB (31%)
Writing library                          : LAME3.99.5

I realize this isn't necessarily a bug with this wonderful project, but I'm just trying to share my journey of audio so that there might be an easier audio story later on here.

@alessivs
Copy link
Owner

@SirensOfTitan Regarding audio "clipped" at the end, please try with default Wine drivers and the lib32-gst-plugins-good package installed, preferably on a new prefix, and tell me your experience.

I'll get back asap to Debian-related stuff described before.

@alessivs
Copy link
Owner

alessivs commented Apr 30, 2020

@SirensOfTitan If audio is still clipped consider this.

@alessivs
Copy link
Owner

alessivs commented May 2, 2020

@Golddouble Sorry for the delay.

I explored a number of configurations. I can conclude that you can use either wine-staging or wine-stable, with working MP3 audio. You can lean towards having a dual Wine-edition setup, with wine-stable and wine-staging coexisting, or choose to only use wine-staging.

To get audio to work with wine-staging you can install a DLL (conveniently, using Winetricks) that handles playback natively, bypassing any problem regarding audio drivers shipped with Wine. These problems seem to affect playback of some audio files (or all audio files, depending on Wine version) in the 5.x series, according to my observation.

Wine-staging from MX 19.1 Test repo (most recent choice; possibly, the simplest)

If something breaks that was previously in working condition, remember this is bleeding edge Wine; far from stable.

The Wine binary will be /opt/wine-staging/bin/wine.

  • Run:
sudo dpkg --add-architecture i386
sudo apt-get update
  • Start MX Package Installer
  • Choose the MX Test Repo tab, and select
    • wine-mono5.0.0
    • wine-staging (currently, 5.7)
    • wine-staging-compat (OPTIONAL, only if you want to run only one edition of Wine in your system)
  • Ignore "Recommended packages" preference (keep it unchecked)
  • Hit install

On to the SuperMemo installation:

  • Download your order of SuperMemo 17 (sm17inst.exe) or have the file handy.
  • Assuming it's in ~/Downloads/sm17inst.exe:
mkdir -p ~/.cache/winetricks/supermemo17
cp ~/Downloads/sm17inst.exe ~/.cache/winetricks/supermemo17

This will let you skip the part where you have to copy the file to a winetricks-managed location using the file manager.

Then:

# The MX package winetricks brings Wine 4.x together with it.
# We download it manually.
wget https://raw.githubusercontent.com/Winetricks/winetricks/20200412/src/winetricks
chmod +x winetricks

# Install custom verb
wget https://is.gd/Q4VNBi -O supermemo17.verb
env WINE=/opt/wine-staging/bin/wine WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/sm17 sh ./winetricks supermemo17.verb
# If you chose to install wine-staging-compat, you can omit the WINE environment variable.
# env WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/sm17 sh ./winetricks supermemo17.verb

Note: The support for the WINE environment variable was only possible since the May 1st release of the new supermemo-wine verbs (docs). The verb file above is not officially released; it's just a convenience for your differing .exe checksum, and to install the new DLL automatically. The future installer wizard (#3) will make all this more convenient.

Note: The process takes longer than before, because of larger downloads.

@Golddouble
Copy link
Author

Golddouble commented May 2, 2020

Thank you @alessivs for this very good and detailed description. :-)

I have tried this out in my VM. I was able to go through the description and installing process without problem.

I have used wine 5.6, because this was already installed.

But "sound" makes still problems. Here are my experiences:

Point 1. When I play the sound several times in a row (pressing "the play again-button", as soon as the sound is complete), there are sometimes small dropouts or stuttering. I can send you an example sound if you would like to have it.

Point 2. When I play around with the play, pause and stop buttons (about 20 times) suddenly SM crashes and is freezed. I have to close it.

Here is the protocol of point 2:

$ env WINEPREFIX="/home/VM-Konto/.local/share/wineprefixes/sm17" wine "/home/VM-Konto/.local/share/wineprefixes/sm17/drive_c/SuperMemo/sm17.exe"
000b:fixme:winediag:start_process Wine Staging 5.6 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
000b:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1cf8, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0x32e818, (null), (null), 0x630b1d00): stub
000b:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1d18, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0x32e818, (null), (null), 0x630b1d20): stub
000b:fixme:ntdll:EtwEventRegister ({43d1a55c-76d6-4f7e-995c-64c711e5cafe}, 0x6309ce28, (nil), 0x630b1500) stub.
000b:fixme:ntdll:EtwRegisterTraceGuidsA (0x63073bcf, 0x630b3258, {9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 1, 0x32ed5c, (null), (null), 0x630b3258): stub
000b:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302b3c0): stub
000b:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
000b:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
0009:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1cf8, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0x32e6f8, (null), (null), 0x630b1d00): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1d18, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0x32e6f8, (null), (null), 0x630b1d20): stub
0009:fixme:ntdll:EtwEventRegister ({43d1a55c-76d6-4f7e-995c-64c711e5cafe}, 0x6309ce28, (nil), 0x630b1500) stub.
0009:fixme:wtsapi:WTSRegisterSessionNotification Stub 0001007E 0x00000000
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x17213b8, 0x18e2830, {b2a40f1f-a05a-4dfd-886a-4c4f18c4334c}, 1, 0x32f0c4, (null), (null), 0x18e2830): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {b2a40f1f-a05a-4dfd-886a-4c4f18c4334c}
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x17213b8, 0x18e2860, {ffdb9886-80f3-4540-aa8b-b85192217ddf}, 1, 0x32f0c4, (null), (null), 0x18e2860): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {ffdb9886-80f3-4540-aa8b-b85192217ddf}
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x17213b8, 0x18e2890, {5c8bb950-959e-4309-8908-67961a1205d5}, 1, 0x32f0c4, (null), (null), 0x18e2890): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {5c8bb950-959e-4309-8908-67961a1205d5}
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x1721481, 0x18e12c8, {3e1fd72a-c323-4574-9917-5ce9c936f78c}, 1, 0x32f0a4, (null), (null), 0x18e12d0): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {3e1fd72a-c323-4574-9917-5ce9c936f78c}
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x1721481, 0x18e12e8, {afff9c82-5be3-4205-9b3e-49e014c09a63}, 1, 0x32f0a4, (null), (null), 0x18e12f0): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {afff9c82-5be3-4205-9b3e-49e014c09a63}
0009:fixme:nls:CompareStringEx semi-stub behavior for flag(s) 0x10000000
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:heap:RtlSetHeapInformation 0x110000 0 0x32a4d4 4 stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x638962c3, 0x63ab1058, {ffdb9886-80f3-4540-aa8b-b85192217ddf}, 1, 0x32a11c, (null), (null), 0x63ab1058): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {ffdb9886-80f3-4540-aa8b-b85192217ddf}
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x638964fa, 0x63aae200, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0x32a100, (null), (null), 0x63aae208): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {0cfe0455-93ba-440d-a3fe-553973d0b723}
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x638964fa, 0x63aae220, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0x32a100, (null), (null), 0x63aae228): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {797fabac-7b58-4796-b924-d51178a59ce4}
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x638962c3, 0x63ab1088, {9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 1, 0x32a11c, (null), (null), 0x63ab1088): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {9e3b3947-ca5d-4614-91a2-7b624e0e7244}
0009:fixme:ntdll:EtwRegisterTraceGuidsA (0x63073bcf, 0x630b3258, {9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 1, 0x32f9d0, (null), (null), 0x630b3258): stub
0009:fixme:win:LockWindowUpdate (0x1013a), partial stub!
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:file:SetFileInformationByHandle 00000154, 5, 0032A0BC, 8
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:file:SetFileInformationByHandle 000001C4, 5, 0032A0BC, 8
0009:fixme:shell:DllGetClassObject failed for CLSID={871c5380-42a0-1069-a2ea-08002b30309d} (Internet)
0009:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0009:fixme:ntdll:NtQuerySystemInformation (0x00000007,0x24ee088,0x00000018,0x32e118) stub
0009:fixme:ntdll:NtQuerySystemInformation (0x00000050,0x24ee088,0x00000054,0x32e118) stub
0009:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_CACHE_INFORMATION
0009:fixme:ntdll:NtQuerySystemInformation (0x00000021,0x24ee1f0,0x00000010,0x32e118) stub
0009:fixme:ntdll:NtQuerySystemInformation (0x0000002d,0x24ee1f0,0x00000020,0x32e118) stub
0009:fixme:ntdll:NtQuerySystemInformation (0x0000003d,0x24ee208,0x00000a90,0x32e118) stub
0009:fixme:ntdll:NtQuerySystemInformation (0x00000012,0x24ee208,0x00000a90,0x32e118) stub
0009:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_INTERRUPT_INFORMATION
0009:fixme:ntdll:NtQuerySystemInformation (0x0000002a,0x24ee220,0x00000a78,0x32e118) stub
0009:fixme:ntdll:EtwEventRegister ({968f313b-097f-4e09-9cdd-bc62692d138b}, 0x76014479, 0x76136520, 0x76136278) stub.
0009:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound output probably won't work.
0009:err:gstreamer:gstdecoder_init_gst Failed to create decodebin; are 32-bit GStreamer "base" plugins installed?

(wine:16483): GStreamer-CRITICAL **: 14:53:59.986: gst_pad_unlink: assertion 'GST_IS_PAD (sinkpad)' failed

(wine:16483): GStreamer-CRITICAL **: 14:53:59.986: gst_object_unref: assertion 'object != NULL' failed
0009:fixme:ntdll:EtwEventEnabled (deadbeef, 0x76021b48): stub
0009:fixme:ntdll:EtwEventEnabled (deadbeef, 0x76021b48): stub
0009:fixme:ntdll:EtwEventEnabled (deadbeef, 0x76021b48): stub
0009:fixme:ntdll:EtwEventEnabled (deadbeef, 0x76021b48): stub
0009:fixme:msacm:acmFormatEnumW Unsupported fdwEnum values 00100000
0009:fixme:ntdll:EtwEventEnabled (deadbeef, 0x76021b48): stub
0009:fixme:msimtf:DllGetClassObject ({50d5107a-d278-4871-8989-f4ceaaf59cfc} {00000001-0000-0000-c000-000000000046} 0032F238)
0009:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111 for dll L"C:\\windows\\system32\\msimtf.dll"
0009:err:ole:CoGetClassObject no class object {50d5107a-d278-4871-8989-f4ceaaf59cfc} could be created for context 0x401
0009:fixme:win:LockWindowUpdate ((nil)), partial stub!
0009:fixme:win:WINNLSEnableIME hwnd 0x201ae enable -1: stub!
Note: Illegal Audio-MPEG-Header 0x92e3f120 at offset 48900.
Note: Trying to resync...
Note: Skipped 54 bytes in input.

Warning: Big change from first (MPEG version, layer, rate). Frankenstein stream?
Note: Illegal Audio-MPEG-Header 0x7fffd882 at offset 49314.
Note: Trying to resync...
Note: Skipped 260 bytes in input.

Warning: Big change from first (MPEG version, layer, rate). Frankenstein stream?
Note: Illegal Audio-MPEG-Header 0xa520039a at offset 50247.
Note: Trying to resync...
Note: Skipped 193 bytes in input.
Note: Illegal Audio-MPEG-Header 0xf744a063 at offset 48900.
Note: Trying to resync...
Note: Skipped 286 bytes in input.

Warning: Big change (MPEG version, layer, rate). Frankenstein stream?
[src/libmpg123/layer3.c:465] error: big_values too large!
[src/libmpg123/layer3.c:465] error: big_values too large!
Note: Illegal Audio-MPEG-Header 0x33204815 at offset 110054.
Note: Trying to resync...
Note: Skipped 14 bytes in input.

Warning: Big change from first (MPEG version, layer, rate). Frankenstein stream?
Note: Illegal Audio-MPEG-Header 0x8d290683 at offset 110381.
Note: Trying to resync...
Note: Skipped 143 bytes in input.
killed

Edit: Just a remark:
To show if it would be the same with wine 5.7, I made the update to 5.7. Just made the wine update and nothing else.
After the update I had again the "player device" issue as described in the first post here.
So I made this again:

sudo dpkg --add-architecture i386
sudo apt-get update

But this did not solve the issue.

@alessivs
Copy link
Owner

alessivs commented May 2, 2020

@Golddouble

Point 1. I could reproduce the problem you're describing, but only without quartz (which is added by the custom winetricks verb I suggested to use). It's like there was an audio buffer that only emptied once you started playback again; it would play the end of the previous audio before starting the new playback. This is likely caused by the interaction between some editions of Wine 5.x and builtin drivers (shipped by Wine). quartz solves this.

You can verify if the native quartz DLL is in effect in this Wine prefix (let's say it's called sm17):

env WINEPREFIX=~/.local/share/wineprefixes/sm17 /opt/wine-staging/bin/winecfg

Go to the Libraries tab, and check that the entry for quartz says: native, builtin or native (native must come first).

Point 2. Likely a misconfigured / misupdated Wine prefix. The update to Wine 5.7 may have overriden the order of the quartz DLLs (just a guess). Try a fresh Wine prefix for cleanliness (below).

Both points Please try on a fresh Wine prefix. The new verbs support this use case. e.g. create a new prefix sm17a for testing alongside your previous one:

wget https://is.gd/Q4VNBi -O supermemo17.verb
env WINE=/opt/wine-staging/bin/wine WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/sm17a sh ./winetricks supermemo17.verb

Then start the shortcut called SuperMemo 17 (sm17a) under the Education menu category.

If any of the problems persist, please send me the audio file and I'll take a look.

@Golddouble
Copy link
Author

Golddouble commented May 2, 2020

-Concerning "small dropouts or stuttering":
It's still there also in prefix sm17a.
And yes: quartz is set to "native, builtin".
(When I change it to builtin, then I have no sound and the error from the first post of this thread occurs.)

I also tried wine 5.2 with "wine-mono4.9.4".
It's the same.

-Concerning "When I play around with the play, pause and stop buttons (about 20 times) suddenly SM crashes and is freezed."
It's the same in prefix sm17a and also in wine 5.2.

I have sent you an example, where you can hear, what I mean with slight stuttering.

When I make a sound component in SM and make a link to an external sound-source (because my mp3 is there), when I choose the folder with my mp3, it plays the sound the first time, and this is always without stuttering.

@alessivs
Copy link
Owner

alessivs commented May 4, 2020

Keep in mind some instances of stuttering and cracking can be due to a buffer underrun that could be facilitated by virtualization.

Anyhow, in closing in on a diagnosis one has to consider the VM factor, PulseAudio default bitrate factor, Debian derivatives and lack of libfaudio, Wine 5.x, Wine stable vs staging, use of quartz, etc. Rather than tackle the whole combinatorial explosion that ensues, I'd rather not try pick a unique recommended configuration, but make the project more flexible so the user has more straightforward paths to push levers in order to cater to his system.

In addition to the standalone Winetricks verbs, by leveraging the tools from the free (GNU GPL3) software Lutris I have produced a couple installers that you can sideload into the application quite easily (look for the yaml files in master), e.g. lutris -i supermemo-17-stable.yaml. (A tentative plan is to produce a number of installer flavors, which the user can always tweak with graphical tools; the "stable" label is not derived from what Wine considers stable, but from continued user experience, so -stable actually demands Wine 4.x). Lutris will install any dependencies on demand with isolation (including Wine). You are free to try what works best; you can even switch the Wine edition, add new DLLs/apps via Winetricks to the prefix, etc. It's a bit like the experience from PlayOnLinux, if you ever happened to use the tool, except the software is current, the recipes are really simple to write and work well (unlike the unbearable quality of PoL). I may write some brief guidelines for the tinkerer, but the interface seems pretty discoverable to me. I intend to package all the verbs in their different flavors eventually, including patches (#12).

If you go this route (that is, to try the installers for Lutris), since it's not in my capacity to fix the issue, I'd appreciate to know your experience so at least the documentation can be improved. Like @SirensOfTitan remarked, it might not be a bug from this project, but it's totally in its scope to document it, and find ways to be more flexible so the user is in better control, while avoiding more complexity. If you have suggestions concerning this let me know.

@Golddouble
Copy link
Author

Thank you for making a Lutris-version so fast. I have tested it now. Here is my feedback.

What I did:

  1. Wine 5.2 installed

  2. Checked in Synaptics if all the following packets are installed:

libmpg123-0
libmpg123-0:i386
gstreamer1.0-alsa
gstreamer1.0-gl
gstreamer1.0-plugins-base
gstreamer1.0-plugins-base:i386
gstreamer1.0-plugins-bad
gstreamer1.0-plugins-good
gstreamer1.0-plugins-ugly
gstreamer1.0-pulseaudio
libgstreamer1.0-0
libgstreamer1.0-0:i386
libgstreamer-plugins-base1.0-0:i386
libgstreamer-plugins-bad1.0-0
  1. after in a terminal installed the missing packages (Question: Do I really still ned them in Lutrics Version?):
    installed "gstreamer1.0-gl" via Synaptics
    In terminal:
sudo dpkg --add-architecture i386
sudo apt-get update
suco apt-get install gstreamer1.0-plugins-base:i386 libgstreamer-plugins-base1.0-0:i386
  1. Lutrics installed.
  2. supermemo-17-stable.yaml from here https://github.com/alessivs/supermemo-wine/tree/master/lutris
  3. In terminal: lutris -i supermemo-17-stable.yaml

Result:
-When I link my sound component with an mp3, there is a message: MCI-problem
-No start icon on the desktop, although I have checked this option
-In Lutris Tab "runner options"-> "DDL overrides": The list is empty. Is this right?

Here is the installation protocol:

$ lutris -i supermemo-17-stable.yaml
2020-05-04 17:25:14,625: Running Lutris 0.5.6
2020-05-04 17:25:14,625: Using VMware, Inc.
2020-05-04 17:25:14,625: Running Mesa driver 18.3.6 on llvmpipe (LLVM 7.0, 256 bits) (0xffffffff)
2020-05-04 17:25:14,625: GPU: 15AD:0405 15AD:0405 using vmwgfx drivers
2020-05-04 17:25:14,626: i386 libGL.so.1 missing (needed by opengl)
2020-05-04 17:25:14,627: Vulkan is not available or your system isn't Vulkan capable
2020-05-04 17:25:14,628: Updating DXVK versions
2020-05-04 17:25:33,700: Downloading file 1 of 1
2020-05-04 17:25:50,077: Creating a win32 prefix in /home/VM-Konto/Games/supermemo-17/prefix
2020-05-04 17:26:20,122: win32 Prefix created in /home/VM-Konto/Games/supermemo-17/prefix
2020-05-04 17:26:20,155: The game doesn't have an executable
Running /home/VM-Konto/.local/share/lutris/runtime/winetricks/winetricks --unattended ie8 gdiplus_winxp fontsmooth=rgb tahoma winxp
Initial process has started with pid 23230
Game is considered started.
Executing mkdir -p /home/VM-Konto/Games/supermemo-17
Using winetricks 20200412-next - sha256sum: ff7c503db776c75caea6f3119e77bef37ed0e30b63f00cd04043805dba1e8d14 with wine-4.21.r0.g9be789b2 ( TkG Staging Esync Fsync ) and WINEARCH=win32
Executing w_do_call ie8
Executing mkdir -p /home/VM-Konto/Games/supermemo-17
Executing load_ie8 
Setting Windows version to winxp
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\set-winver.reg
------------------------------------------------------
Running /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wineserver -w. This will hang until all wine processes in prefix=/home/VM-Konto/Games/supermemo-17/prefix terminate
------------------------------------------------------
Using builtin override for following DLLs: iexplore.exe
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\override-dll.reg
000b:fixme:winediag:start_process Wine TkG 4.21 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please don't report bugs about it on winehq.org and use https://github.com/Tk-Glitch/PKGBUILDS/issues instead.
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine iexplore -unregserver
Executing w_do_call msls31
Executing mkdir -p /home/VM-Konto/Games/supermemo-17
Executing load_msls31 
Executing cabextract -q --directory=/home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp /home/VM-Konto/.cache/winetricks/msls31/InstMsiW.exe
Executing cp -f /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp/msls31.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32
Using native,builtin override for following DLLs: ieframe ieproxy itircl itss jscript msctf mshtml shdoclc shdocvw shlwapi urlmon wininet xmllite
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\override-dll.reg
Using native override for following DLLs: iexplore.exe
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\override-dll.reg
Using builtin override for following DLLs: updspapi
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\override-dll.reg
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/Program Files/Internet Explorer/iexplore.exe /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/Program Files/Internet Explorer/iexplore.exe.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/browseui.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/browseui.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/inseng.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/inseng.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/itircl.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/itircl.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/itss.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/itss.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/jscript.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/jscript.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/msctf.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/msctf.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/mshtml.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/mshtml.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/shdoclc.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/shdoclc.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/shdocvw.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/shdocvw.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/shlwapi.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/shlwapi.dll.bak
Executing mv /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/urlmon.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/urlmon.dll.bak
Executing cp -f /home/VM-Konto/.cache/winetricks/ie8/winetest.cat /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/catroot/{f750e6c3-38ee-11d1-85e5-00c04fc295ee}/oem0.cat
Executing cd /home/VM-Konto/.cache/winetricks/ie8
003f:fixme:clusapi:GetNodeClusterState ((null),0032EC34) stub!
003f:fixme:advapi:DecryptFileA ("y:\\4d5e7abbe1ec54c06cc2e5a54c0a\\", 00000000): stub
0042:fixme:ntdll:EtwRegisterTraceGuidsW (0x6cd15f38, 0x6cd20180, {e2821408-c59d-418f-ad3f-aa4e792aeb79}, 1, 0x32f5c0, (null), (null), 0x6cd20188): stub
0042:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {e2821408-c59d-418f-ad3f-aa4e792aeb79}
0042:fixme:wintrust:SOFTPUB_VerifyImageHash Cannot verify hash for pszObjId=(null)
0042:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0042:fixme:richedit:ME_HandleMessage EM_SETMARGINS: stub
0042:fixme:wuapi:update_session_put_ClientApplicationID 0021CCC0, L"Windows Internet Explorer 8 Setup Utility"
0046:fixme:wuapi:automatic_updates_Pause 
0042:fixme:wuapi:update_searcher_BeginSearch 
0049:fixme:setupapi:pSetupGetGlobalFlags stub
0049:fixme:wintrust:WinVerifyTrust unimplemented for 4
0049:fixme:wintrust:SOFTPUB_VerifyImageHash Cannot verify hash for pszObjId=(null)
0049:err:ole:CoGetClassObject class {acadf079-cbcd-4032-83f2-fa47c4db096f} not registered
0049:err:ole:CoGetClassObject no class object {acadf079-cbcd-4032-83f2-fa47c4db096f} could be created for context 0x1
0049:fixme:ntdll:server_ioctl_file Unsupported ioctl 9c040 (device=9 access=3 func=10 method=0)
0049:fixme:sfc:SRSetRestorePointA 0032B914 0032B7B8
0049:fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
0049:fixme:sfc:SfcConnectToServer 0
0049:fixme:wintrust:CryptCATGetCatAttrInfo FFFFFFFF, L"SPAttr"
0049:fixme:wintrust:CryptCATGetCatAttrInfo 017CAAF0, L"SPAttr"
0049:fixme:wintrust:CryptCATGetCatAttrInfo FFFFFFFF, L"SPLevel"
0049:fixme:wintrust:CryptCATGetCatAttrInfo 017CAAF0, L"SPLevel"
0049:fixme:wintrust:SOFTPUB_VerifyImageHash Cannot verify hash for pszObjId=(null)
CreateService SUCCESS.
0049:fixme:setupapi:pSetupGetGlobalFlags stub
0049:fixme:setupapi:pSetupGetGlobalFlags stub
0049:fixme:wintrust:CryptCATGetCatAttrInfo 00C97AD8, L"SPAttr"
0049:fixme:wintrust:CryptCATGetCatAttrInfo 00C97AD8, L"SPAttr"
0049:fixme:wintrust:CryptCATGetCatAttrInfo 00C97AD8, L"SPLevel"
0049:fixme:wintrust:CryptCATGetCatAttrInfo 00C97AD8, L"SPLevel"
0049:fixme:wintrust:SOFTPUB_VerifyImageHash Cannot verify hash for pszObjId=(null)
0049:fixme:propsys:PSRegisterPropertySchema L"C:\\Program Files\\Internet Explorer\\ie8props.propdesc" stub
0049:fixme:advapi:TreeResetNamedSecurityInfoW (L"C:\\windows\\ie8", 1, 4, (nil), (nil), 0xc97ab8, (nil), 1, (nil), 1, (nil)) stub
0049:fixme:advapi:RegisterEventSourceA ((null),"Internet Explorer 8"): stub
0049:fixme:advapi:RegisterEventSourceW (L"",L"Internet Explorer 8"): stub
0049:fixme:advapi:ReportEventA (0xcafe4242,0x0004,0x0000,0x400e1119,0x346e00,0x0002,0x00000000,0x32bc34,(nil)): stub
0049:fixme:advapi:ReportEventW (0xcafe4242,0x0004,0x0000,0x400e1119,0x346e00,0x0002,0x00000000,0x18d8c8,(nil)): stub
0049:fixme:advapi:DeregisterEventSource (0xcafe4242) stub
0042:fixme:ntdll:EtwUnregisterTraceGuids deadbeef: stub
Executing cd /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32
0062:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1cf8, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0x32e848, (null), (null), 0x630b1d00): stub
0062:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1d18, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0x32e848, (null), (null), 0x630b1d20): stub
0062:fixme:ntdll:EtwEventRegister ({43d1a55c-76d6-4f7e-995c-64c711e5cafe}, 0x6309ce28, (nil), 0x630b1500) stub.
0062:fixme:ntdll:EtwRegisterTraceGuidsA (0x63073bcf, 0x630b3258, {9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 1, 0x32ed8c, (null), (null), 0x630b3258): stub
0062:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302b3c0): stub
0062:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0062:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
------------------------------------------------------
Wine-Fehler 25648 wird umgegangen -- Setting TabProcGrowth=0 to avoid hang
------------------------------------------------------
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\set-tabprocgrowth.reg
Executing cp -f /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/Program Files/Internet Explorer/ieproxy.dll /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32
------------------------------------------------------
To start ie8, use the command "/home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine" 'C:\Program Files\Internet Explorer\iexplore'
------------------------------------------------------
Der Vorgang wurde erfolgreich abgeschlossen
Setting Windows version to default
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\set-winver.reg
------------------------------------------------------
Running /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wineserver -w. This will hang until all wine processes in prefix=/home/VM-Konto/Games/supermemo-17/prefix terminate
------------------------------------------------------
Executing w_do_call gdiplus_winxp
Executing mkdir -p /home/VM-Konto/Games/supermemo-17
Executing load_gdiplus_winxp 
Executing cd /home/VM-Konto/.cache/winetricks/gdiplus_winxp
Executing cabextract -q -d /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp -F _sfx_0005._p /home/VM-Konto/.cache/winetricks/gdiplus_winxp/WindowsXP-KB975337-x86-ENU.exe
Executing cp /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp/_sfx_0005._p /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/system32/gdiplus.dll
Using native override for following DLLs: gdiplus
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\override-dll.reg
Executing w_do_call fontsmooth=rgb
Executing mkdir -p /home/VM-Konto/Games/supermemo-17
Executing load_fontsmooth rgb
Setting font smoothing to rgb
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\fontsmooth.reg
Executing w_do_call tahoma
Executing mkdir -p /home/VM-Konto/Games/supermemo-17
Executing load_tahoma 
Executing cabextract -q -d /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp /home/VM-Konto/.cache/winetricks/tahoma/IELPKTH.CAB
/home/VM-Konto/.cache/winetricks/tahoma/IELPKTH.CAB: WARNING; possible 5592 extra bytes at end of file.
------------------------------------------------------
Running /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wineserver -w. This will hang until all wine processes in prefix=/home/VM-Konto/Games/supermemo-17/prefix terminate
------------------------------------------------------
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\_register-font.reg
000b:fixme:winediag:start_process Wine TkG 4.21 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please don't report bugs about it on winehq.org and use https://github.com/Tk-Glitch/PKGBUILDS/issues instead.
000b:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1cf8, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0x32e848, (null), (null), 0x630b1d00): stub
000b:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1d18, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0x32e848, (null), (null), 0x630b1d20): stub
000b:fixme:ntdll:EtwEventRegister ({43d1a55c-76d6-4f7e-995c-64c711e5cafe}, 0x6309ce28, (nil), 0x630b1500) stub.
000b:fixme:ntdll:EtwEventRegister ({9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 0x63073c41, 0x630b3258, 0x630b3180) stub.
000b:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302b3c0): stub
000b:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
000b:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
Executing cp /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp/_register-font.reg /tmp/winetricks.c7leepSM/_reg_a6378261_23230.reg
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\_register-font.reg
Executing cp /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp/_register-font.reg /tmp/winetricks.c7leepSM/_reg_2381d506_23230.reg
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\_register-font.reg
Executing cp /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp/_register-font.reg /tmp/winetricks.c7leepSM/_reg_21e53125_23230.reg
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\_register-font.reg
Executing cp /home/VM-Konto/Games/supermemo-17/prefix/dosdevices/c:/windows/temp/_register-font.reg /tmp/winetricks.c7leepSM/_reg_4779f8a8_23230.reg
Executing w_do_call winxp
Executing mkdir -p /home/VM-Konto/Games/supermemo-17
Executing load_winxp 
Setting Windows version to winxp
Executing /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine regedit /S C:\windows\Temp\set-winver.reg
------------------------------------------------------
Running /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wineserver -w. This will hang until all wine processes in prefix=/home/VM-Konto/Games/supermemo-17/prefix terminate
------------------------------------------------------
Game is considered exited.
Initial process has exited.
All children have exited.
Exit with returncode 0
Running /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine /home/VM-Konto/Videos/sm17inst.exe /S
Initial process has started with pid 24983
Game is considered started.
000b:fixme:winediag:start_process Wine TkG 4.21 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please don't report bugs about it on winehq.org and use https://github.com/Tk-Glitch/PKGBUILDS/issues instead.
000b:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1cf8, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0x32e848, (null), (null), 0x630b1d00): stub
000b:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1d18, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0x32e848, (null), (null), 0x630b1d20): stub
000b:fixme:ntdll:EtwEventRegister ({43d1a55c-76d6-4f7e-995c-64c711e5cafe}, 0x6309ce28, (nil), 0x630b1500) stub.
000b:fixme:ntdll:EtwRegisterTraceGuidsA (0x63073bcf, 0x630b3258, {9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 1, 0x32ed8c, (null), (null), 0x630b3258): stub
000b:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302b3c0): stub
000b:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
000b:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
0009:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1cf8, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0x32f2d8, (null), (null), 0x630b1d00): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1d18, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0x32f2d8, (null), (null), 0x630b1d20): stub
0009:fixme:ntdll:EtwEventRegister ({43d1a55c-76d6-4f7e-995c-64c711e5cafe}, 0x6309ce28, (nil), 0x630b1500) stub.
0009:fixme:ntdll:EtwRegisterTraceGuidsA (0x63073bcf, 0x630b3258, {9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 1, 0x32f7e0, (null), (null), 0x630b3258): stub
0009:fixme:ras:RasEnumEntriesW (00000000,(null),001D0898,0032F6B4,001D077C),stub!
002b:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000108,0x00000003),stub!
0009:fixme:ras:RasEnumEntriesW (00000000,(null),001D0A78,0032F36C,001D077C),stub!
0009:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
0009:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1cf8, {0cfe0455-93ba-440d-a3fe-553973d0b723}, 1, 0x32f4b8, (null), (null), 0x630b1d00): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsA (0x6307379f, 0x630b1d18, {797fabac-7b58-4796-b924-d51178a59ce4}, 1, 0x32f4b8, (null), (null), 0x630b1d20): stub
0009:fixme:ntdll:EtwEventRegister ({43d1a55c-76d6-4f7e-995c-64c711e5cafe}, 0x6309ce28, (nil), 0x630b1500) stub.
002e:fixme:ntdll:EtwRegisterTraceGuidsA (0x63073bcf, 0x630b3258, {9e3b3947-ca5d-4614-91a2-7b624e0e7244}, 1, 0x108f4e0, (null), (null), 0x630b3258): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302b3c0): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63019808): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63018be8): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63018378): stub
002e:fixme:ras:RasEnumEntriesW (00000000,(null),001D7D50,0108F40C,001D7C34),stub!
002b:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
002e:fixme:winsock:WSALookupServiceBeginW (0x108f444 0x00000210 0x1d61e8) Stub!
0030:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63045430): stub
0030:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6309ce98): stub
0030:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6309cf20): stub
0030:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63086da8): stub
002c:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
0030:fixme:ras:RasEnumEntriesW (00000000,(null),001D8520,0119F9B4,001D8404),stub!
002e:fixme:nls:CompareStringEx semi-stub behavior for flag(s) 0x10000000
002e:err:ole:CoCreateInstanceEx apartment not initialised
002e:err:ole:CoCreateInstanceEx apartment not initialised
002e:fixme:ras:RasEnumEntriesW (00000000,(null),001E2628,0108F0D4,001E224C),stub!
002b:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
002e:fixme:ras:RasEnumEntriesW (00000000,(null),001E2928,0108EF18,001E280C),stub!
002c:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63029f50): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302afd0): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63028c90): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6301e9f8): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6301c070): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63017b98): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63022f58): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
002e:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0009:fixme:ras:RasEnumEntriesW (00000000,(null),001E28A8,0032F4E8,001C91FC),stub!
002b:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302b3c0): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63019808): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63018be8): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63018378): stub
002c:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
0031:fixme:ras:RasEnumEntriesW (00000000,(null),001EB800,012AF40C,001D21CC),stub!
0031:err:ole:CoCreateInstanceEx apartment not initialised
0031:err:ole:CoCreateInstanceEx apartment not initialised
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020610): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6301e9f8): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6301c070): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63017b98): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63022f58): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0009:fixme:ras:RasEnumEntriesW (00000000,(null),001EB800,0032F4E8,001C91FC),stub!
002b:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302b3c0): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63019808): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63018be8): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63018378): stub
002c:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
0032:fixme:ras:RasEnumEntriesW (00000000,(null),001EB800,0108F40C,001CC674),stub!
0032:err:ole:CoCreateInstanceEx apartment not initialised
0032:err:ole:CoCreateInstanceEx apartment not initialised
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020610): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6301e9f8): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6301c070): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63017b98): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63022f58): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0032:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0009:fixme:ras:RasEnumEntriesW (00000000,(null),001EB800,0032F4E8,001D2984),stub!
002b:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6302b3c0): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63019808): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63018be8): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63018378): stub
0033:fixme:ras:RasEnumEntriesW (00000000,(null),001EB800,012AF40C,001E3194),stub!
002c:fixme:ras:RasConnectionNotificationW (FFFFFFFF,00000118,0x00000003),stub!
0033:err:ole:CoCreateInstanceEx apartment not initialised
0033:err:ole:CoCreateInstanceEx apartment not initialised
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020610): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6301e9f8): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x6301c070): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63017b98): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63022f58): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
0033:fixme:ntdll:EtwEventEnabled (deadbeef, 0x63020688): stub
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
0009:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
Game is considered exited.
Initial process has exited.
All monitored processes have exited.
Exit with returncode 0
Running /home/VM-Konto/.local/share/lutris/runners/wine/lutris-4.21-x86_64/bin/wine /home/VM-Konto/Games/supermemo-17/prefix/drive_c/SuperMemo/sm17.exe
Initial process has started with pid 25131
Game is considered started.
Game is considered exited.
Initial process has exited.
All monitored processes have exited.
Exit with returncode 0
2020-05-04 17:28:10,747: Game still running (state: running)
2020-05-04 17:28:10,747: Stopping SuperMemo 17 (wine)
2020-05-04 17:28:17,693: Shutting down Lutris

@alessivs
Copy link
Owner

alessivs commented May 4, 2020

Question: Do I really still need them [the lib32 packages] in Lutris Version?

You'll need Wine-related packages; if you're missing them Lutris will warn you upon starting. On the other hand, it may be possible to do without some of the lib32 mp3 decoder libraries, but then you'd better install quartz into the Wine prefix:

  1. Select the game in Lutris
  2. Start Winetricks from the sidebar on the right
  3. Select the default Wine prefix (it should be the prefix Lutris created)
  4. Install a Windows DLL or component
  5. Choose [x] quartz and let it install
  6. Get out of the Winetricks GUI and restart SuperMemo

Regarding Wine what you'd probably miss also is the libfaudio package for Debian derivatives. Add the OpenSUSE OBS repo as you saw on the guide. I didn't have a good outcome with this approach (didn't have the MCI access error anymore, but froze Wine). I suggest to try combinations of quartz and libfaudio.

Note that if you simply ran lutris -i supermemo-17-stable.yaml Lutris will be using Wine 4.21, instead of your installed Wine edition.

You can keep experimenting. For example, you can switch Wine version any time from within Lutris without affecting your system:

  1. Select the game in Lutris
  2. Click configure on the sidebar on the right
  3. In the Runner options tab, you can change the Wine version to system, or to another Lutris managed one.

You can add more Wine editions to Lutris from the sidebar on the left:

  1. Runners (cog icon button)
  2. Wine: Configure versions

No start icon on the desktop, although I have checked this option

The desktop icon is created successfully on my system (~/Desktop folder).

The application menu icon is supposed to be under the Games category. Should it be not picked up, the .desktop file should be in ~/.local/share/applications/net.lutris.[something].desktop.

The shortcuts won't have icons, because those come from the Lutris website (but you can add them yourself). It seems that Lutris folks won't moderate my submitted SM 17 and SM 18 packages, or add icons to them, even in unpublished state, because they're not actual games. You can always sideload the yaml installers with the -i option; it's a supported use case.

In Lutris Tab "runner options"-> "DLL overrides": The list is empty. Is this right?

Yes, that's for custom DLL overrides on top of the overrides from the application. If you want to
inspect the currently active overrides, start the Wine configuration tool from the sidebar on the right.

Here is the installation protocol:

I see a correct installation. It's the device access that's problematic. Note that an unsupported codecs situation, and unsupported ID3 tags encoding (by MCI), are also masked by this error message.

@Golddouble
Copy link
Author

Thank you.

With

$ wget -nc https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/amd64/libfaudio0_20.01-0~buster_amd64.deb
$ wget -nc https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/i386/libfaudio0_20.01-0~buster_i386.deb
$ sudo apt install ./libfaudio0_20.01-0~buster_amd64.deb
$ sudo apt install ./libfaudio0_20.01-0~buster_i386.deb

->MCI problem,when I try to link the sound component with mp3

With

$ wget -nc https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/amd64/libfaudio0_20.01-0~buster_amd64.deb
$ wget -nc https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/i386/libfaudio0_20.01-0~buster_i386.deb
$ sudo apt install ./libfaudio0_20.01-0~buster_amd64.deb
$ sudo apt install ./libfaudio0_20.01-0~buster_i386.deb

and
quarz

->breakdown when I try to link the sound component with mp3

Do I understand right:
You did not have an MCI problem with wine4.21 and just this "supermemo-17-stable.yaml" on MX Linux 19. But I have an MCI problem with wine4.21 and just this "supermemo-17-stable.yaml" on MX Linux 19. (?)

@alessivs
Copy link
Owner

alessivs commented May 7, 2020

I thought I had no problem on MX Linux, but then it reappeared.

Anyways, after researching and testing, now I have a much better understanding of the problem, and came with a configuration that experienced no stuttering, and complete playback of files. The downside is that there's no super complete codec support, because it doesn't depend on the more complete Linux gstreamer libraries.

I'd like you to test this installer:

wget https://is.gd/ii5l6W -O supermemo-17-winaudio.yaml
lutris -i supermemo-17-winaudio.yaml

It's tied to current stable Wine (5.0); don't change this setting before testing. How you install Wine on your system is not important, but it better be there because of the supporting libraries.

PS: Also, please test whether the font applying problem is still present (Shift+Ctrl+F). I couldn't trigger the problem with this edition.

@alessivs alessivs added the MCI label May 8, 2020
@Golddouble
Copy link
Author

Thank you for the new version to try out.

But it's the same.

When I choose the mp3 from the external source to link it with the sound component, then the sound is without stuttering. Also after having chosen the mp3 from the external source and press the OK button, then immediately the mp3 is played without stuttering. But when I want to press now the "play button" again, the button does not work.
Then I add a new Item. After, I go back to the Item with sound: Now the sound plays again. And I am now possible to press the "play Button" and the sound repeats. But now it is again stuttering. And when I play around with the 3 sound buttons (especially with the red one), then Supermemo freezes and breaks.

Concerning stuttering and VM: So far I have used Supermemo in a Windows 7 virtual machine. There I have no stuttering.

@alessivs
Copy link
Owner

alessivs commented May 8, 2020

Well, that's a bit disappointing. Not only on my Arch system, but even on MX it managed to achieve smooth playback (no stuttering, no freezing, etc.); meanwhile, by routing audio through LAVfilters and removing some dependency on gstreamer libs, it reduced variance in outcomes, at least in theory. So much so that I am composing a SM collection solely to stress-test it. The only problem were certain MP3s with non-expected formats of ID3 tags (documented problem at SuperMemopedia), for which you may just have to remove them. Unfortunately I don't have a larger testing pool.

@Golddouble
Copy link
Author

It's very persistent. Sorry I couldn't give you a better report.

@SirensOfTitan
Copy link

Adding my data point here for incoming googlers tinkering to get things working: I got perfect audio working on my arch installation a bit after posting here. 😄

I was originally using a proton build of wine using a PKGBUILD from the AUR. I never actually got audio working correctly on this installation: quartz caused issues, and without it I experienced either random speed-ups of audio or clipping/stuttering.

I uninstalled proton and installed wine-5.7, the current version of wine in arch's package repository. With lib32-gst-plugins-good installed, and a fresh prefix with quartz installed, I get zero-stutter audio. I have lib32-libpulse installed, use wine's pulseaudio driver, and have the following in my /etc/pulse/daemon.conf or ~/.config/pulse/daemon.conf:

default-fragments = 5
default-fragment-size-msec = 2
default-sample-rate = 48000
avoid-resampling = yes

I'm not sure if those pulse values influenced the outcome at all, I haven't experimented without them, but if you're changing your pulse daemon, remember to restart the daemon:

systemctl --user restart pulseaudio.service

@alessivs
Copy link
Owner

alessivs commented May 8, 2020

@SirensOfTitan Was default-sample-rate = 48000 an increase or decrease in sample rate, with respect to the previous configuration?

PS. This could complement previous advice regarding Arch (also observed in SuperMemopedia)

PS2: I'm keenly interested in getting a couple repeatable configurations right so I can feed them back to installers (which are being overhauled). Playback of short sounds is a vital use case for the proper use of commercial collections (e.g. Adv English) and language learning in general. Thankful for your writeup.

@Golddouble
Copy link
Author

Keep in mind some instances of stuttering and cracking can be due to a buffer underrun that could be facilitated by virtualization.

I have given it a try outside of my VM in my working system.
Result: Sound is much better out of the VM as in. When playing around with the sound-buttons SM only crashes when you provoke it.

PS: Also, please test whether the font applying problem is still present (Shift+Ctrl+F). I couldn't trigger the problem with this edition.

I only had one time a problem with this in the "out of VM-version". Most of the time font applying works.

So I have decided to use it now

Thank you!

@alessivs
Copy link
Owner

@Golddouble Great. Which installer edition are you using? I have an approximate idea of which installers to publish in the next iteration, but I'd like to prioritize those reported to work unanimously.

@Golddouble
Copy link
Author

wget https://is.gd/ii5l6W -O supermemo-17-winaudio.yaml
lutris -i supermemo-17-winaudio.yaml

@Golddouble
Copy link
Author

I have been using this Lutris solution for quite a while now. Here is an experience:

I have created a direct start icon for SM ( Lutris version).
Since I have a bad mouse, it sometimes happens, that I accidentally double-click on the icon instead of just clicking.
This unfortunately destroys my Lutris prefix. Strange. The only solution is to restore the prefix from my backup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants