Getting rid of jackd for higher quality

OSS specific Linux discussion (x86/amd64)

Moderators: hannu, dev, cesium

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Getting rid of jackd for higher quality

Postby ossuserr » Sun Jul 26, 2015 9:53 am

I must admit that audigy2 zs platinum is crap because that creative corporation spoiled emu10k1 by making resample 44100 to 48000. And with this card you can't utilize oss benefits, also because 192000 and 32-bit are only possible on hw:4 p16v subdevice not supported by OSS driver at all. So you must substitute audigy by some decent card. The possible choices are emu 1212 with free oss, for the well-to-do people of course lynx2 with oss proprietary driver. If you have intel hda integrated souncard you are lucky and no upgrade is needed.
Now i am going to disclose to you the conspiracy secret of the linux development community: they produce software in such a way to MAKE YOU USE JACKD even if you do not want to use it. Of course, if you point them to this drawback they will answer they don't have time to develop their software to make it all-in-one which would allow to get rid of jackd because not using jackd presupposes that no connections are made to other software from a given software. While that jackd is a good tool to avoid paying for lynx2 and pyramid, there is one tricky drawback: OSS4 is not compatible with jackd-audio-connetion-kit2 but all up-to-date audio linux software requires that kit2. That was the reason to get rid of jackd. Let's continue criticism of linux. The only acceptable score-writing program is musescore 2.0.1 and higher. Thanks to highest forces now you can compile it on gen2 operating system (of course easily installable in deb-based OSes) but that musescore has a major drawback: its internal sampler (they call it synth) supports only sf2 and partially sfz and people AGAIN HAVE TO UTILIZE JACKD to route midi streams out of musescore to the external sampler like linuxsampler to overcome these limitations. Moreover vst support on linux is kind of castrated: if you luckily manage to install dssi-vst you will be able to run windows vsts by the command: jack-dssi-host -a dssi-vst.so:your-vst-name.dll (prior to issuing you must set vst folder and dssi folder paths in .bashrc like export DSSI_PATH="/usr/lib64/dssi:/usr/local/lib64/dssi/"
export VST_PATH="/home/user/.wine/drive_d/" and issue source ~/.bashrc Of course you must put your vst dlls into /home/user/.wine/drive_d/ By some good reasons you may want to to make a symlink ln -s ~./wine ~/wine and use /home/user/wine/drive_d/ path without the dot since windows software does not like dots in paths) But you have one crucial limitation with dssi-vst hack: it does not support midi channeling. What does it mean for you? Explanation: vst usually has several instruments or colors of one instrument and those are routed via different midi channels, but with dssi-vst solution only channel 1 is supported so you lose all instruments except the first one, you lose everything which is not linked to midichannel 1...) All this softly hints of the idea of switching to windows but since windows8 windows has become a tracking software, into a big spying package which can spoil your mood completely and you will want to stick to linux whatever castrated it is. So attempts to overcome linux said limitations so far come to the following: we will use wine + windows all-in-one packages to get rid of jackd and to utilize OSS4. Guide:
1. Installation of wine
Requirements: your OS must be multilib, otherwise wine cannot start any .exe , you must install samba package prior to wine installation - otherwise the same crap.
So install wine, install winetricks, mono.
2. Installation of the best windows all-in-one package Avid Sibelius.
First install dotnet20 gdiplus gecko120 vcrun2008 (though you already may have them but do it just in case...) via winetricks like:
winetricks gdiplus
Then install sibelius 7.0:
wine /path/to/sibelius_installation_file.exe
3. Install wineasio. I still don't know how to make use of it and what benefits will i get so your help is welcomed. The idea about wineasio is get connections between asio-capable programs running in wine on linux, in our case Sibelius to other windows or linux software. Also it probably can allow to route the streams out of sibelius into jackd1 for further processing with linux software. If you exactly know what wineasio can do, please enlighten us as to this matter.
To install wineasio do the following:
Get source from sourceforge.net/projects/wineasio/ , unpack, cd into unpacked folder and issue the following commands:
make clean
make
cp wineasio.dll.so /usr/lib32/wine/wineasio.dll.so (or to other 32-bit lib folder if you have another name)
regsvr32 wineasio.dll
If you get something like 'registration of dll successful' all went well and you may praise the Gods for help.
Now the most tricky and unknown part: how to run that wineasio? Manuals are just deeply hidden somewhere in the net. In Cadence program there is a tab wineasio, i activated all tick-boxes and still don't notice anything after starting jackd server and then Sibelius. However currently i am testing Sibelius on alsa and jackd2, that's why i can make use of Cadence but with OSS4 way there is not way for jackd2. So wineasio part must be clarified.
4. Running Sibelius
During installation of it be default it will be installed into ~/.wine/drive_c/Program\ Files/Avid/Sibelius/ but actually wine installs it also to ~/.wine/drive_c/Program\ Files\ (x86)/Avid/Sibelius/ and BEWARE: you must run Sibelius.exe namely from ~/.wine/drive_c/Program\ Files\ (x86)/Avid/Sibelius/ folder. But prior to running you must remove portaudio_x86.dll file from that folder otherwise on start Sibelius will freeze on splash window. Without that file your won't be able to input any midi from midi keyboard but still if you had that file in, it's doubtful that you can make midi input but this must be checked. Avid proposed some hacked portaudio_x86.dll file to fix that splash issue but it did not help with avid 7.0 probably because it was made for 5.0.
So if all went well Sibelius starts and some victorious classical music plays on its start. Press i and add a couple of instruments-staves. Same keys as in musescore mostly will work. Input some notes pressing on a, b ,c ,d ,e ,f ,g but you don't hear any sound on input thought 'sound on edit' feature is activated by default. It may be because no soundfonts and/or no vstis are loaded into Sibelius. Our next task will be to load soundfonts and vsts into sibelius.
And one more very important task is how to activate midi keyboard input? The probable solutions are: A) try Sibelius 5.0 with hacked portaudio.dll B) try Finale instead of Sibelius. Proposals and help are welcomed.

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Re: Getting rid of jackd for higher quality

Postby ossuserr » Sun Jul 26, 2015 12:57 pm

Sibelius 7.0 solution won't do. sfz.dll of sfz player from vst4free.com was installed in sibelius's vst folder but in sibelius's Play tab Configuration/Setup is greyed out probably due to lack of portaudio_x86.dll. So you can't load any vsts or use any soundfonts because they are loaded into those vsts. So sibelius 7.0 is a complete failure for linux users.

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Re: Getting rid of jackd for higher quality

Postby ossuserr » Tue Jul 28, 2015 12:09 pm

Bad news #2: Finale did not start under wine. Some dll error.

Good news: you can use expensive kontakt soundfonts on linux. The hack employs the following:
0. Install wine
1. Install dssi-vst
2. Install native instruments' kontakt player which has vst or another kontakt player your know
3. Run that kontakt player via dssi-vst
4. Load Kontakt soundfont into kontakt player
5. Enjoy!

Limitations: dssi-vst supports only one midi-channel. If your kontakt soundfont uses many channels it won't be usable.

PS The above should work but not tested yet.

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Re: Getting rid of jackd for higher quality

Postby ossuserr » Thu Sep 10, 2015 9:50 pm

Openbsd uses some sndio sound server which is based on jackd. They add sndio support into openbsd sound programs which allows to connect programs to each other. It would be interesting to try that openbsd. The only drawback is lack of wine and thus vsts support. Interestingly, sndio was developd by a Russian. Also Russians contribute much for freebsd and openbsd while alsa team + linuxes seem to be purely amercian-western europe based.
some people write about kind of antialiasing used by alsa. That seems to be true though this is not connected to sampling rate. I feel kind of a haze filter with alsa while oss sounds more crisp as i mentioned earlier better separation of highs from middles and thus easier noticing details. Also oss allowed to better hear drawbacks of sounds. for example i had a soundfont which has artifacts on highest two octavs. By interesting coincidence i did not notice those artifacts on alsa, but i noticed them on oss and i though that oss was spoiling sound. But when i returned to alsa i found out those artifacts really exist and are not connected to the driver. Thus oss helped to reveal artifacts which is important for musicians. This is definitely due to lack of some secret hidden antialiasing. Unfortunately bsd oses do not have support for many audio cards, for example esijuli, otherwise it would be interesting to test both freebsd and especially openbsd because according to internet bsd oses support jackd2 and thus should support many software depending on it. As referred earlier on linux oss is supported only by jackd1. Someone writes "As for my above comment regarding ALSA design not providing clear pathway between application<->driver<->hardware, all you have to do to realize what I speak is the truth is use the following:
A)An 'old/cheap' emu10k1 SBLive
B)The same program and same file to playback
C)Using both Linux + FreeBSD
Then play that file on the same program in both of those O.S. (ALSA+Linux vs FreeBSD+OSS[kernel].

If you do that you will immediately notice artifacts reminiscent of dithering on ALSA, whereas using OSS on FreeBSD it sounds cleaner and purer. Regardless of ensuring 'Tone' controls are equal etc. You will second guess you are using the same audio card, no joke..."

I agree with this. And perhaps i will move to bsd if i find the way to run vsts there.

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Re: Getting rid of jackd for higher quality

Postby ossuserr » Thu Sep 10, 2015 10:18 pm

Description of pcm4 core sound moudle of freebsd:
SOUND(4) FreeBSD Kernel Interfaces Manual SOUND(4)
NAME
sound, pcm, snd -- FreeBSD PCM audio device infrastructure
The sound driver is the main component of the FreeBSD sound system. It
works in conjunction with a bridge device driver on supported devices and
provides PCM audio record and playback once it attaches. Each bridge
device driver supports a specific set of audio chipsets and needs to be
enabled together with the sound driver. PCI and ISA PnP audio devices
identify themselves so users are usually not required to add anything to
/boot/device.hints.
Some of the main features of the sound driver are: multichannel audio,
per-application volume control, dynamic mixing through virtual sound
channels, true full duplex operation, bit perfect audio!!!, rate conversion!!!!
and low latency modes.

Recently I have asked alsa developers to create a system-wide resampling layer and high quality resampler. In return they proposed to me to code that thing but i am not a programer... But here we see it seems like freebsd people have already imlemented this idea (see my !!! signs) if i understand it correctly. One more proof of this:

Let's see more detailed: "The FreeBSD sound subsystem cleanly separates generic sound handling issues from device-specific ones. This makes it easier to add support for new hardware.

The pcm(4) framework is the central piece of the sound subsystem. It mainly implements the following elements:

A system call interface (read, write, ioctls) to digitized sound and mixer functions. The ioctl command set is compatible with the legacy OSS or Voxware interface, allowing common multimedia applications to be ported without modification.

Common code for processing sound data (format conversions, virtual channels).
"

Pay attention to COMMON CODE FOR PROCESSING SOUND DATA. It means no other secret resamplers can be employed on freebsd while on linux it is not claimed that applications cannot emloy own resamplers. Moreover a system-wide resampling layer is just absent. Instead medium-quality libsamplerate lib is proposed as a kind of a layer and some applications can be compiled with its support. Use of higher quality sox resampler is limited to only 3 programs...

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Re: Getting rid of jackd for higher quality

Postby ossuserr » Thu Sep 10, 2015 10:24 pm

The person who developed sndio for openbsd is a musician himself. It would be interesting to see watch it is capable of. On his site he proposes to compile sndio for linux and try it but it still will work via alsa on linux, so ... It seems that sndio is kind of pulseaudio with jackd capabilities and no information if there is something like patchage to connect programs. Anyone who uses openbsd, please provide information.

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Re: Getting rid of jackd for higher quality

Postby ossuserr » Fri Jan 01, 2016 7:21 pm

New news:
1. BSD has only jackd1, no jackd2. It means that most of linux audio features won't be available.
2. dssi-vst no longer works. To get vst support under linux, u now must install airwave program.
Run ariwave and add paths to vsts dlls. It will generate kind of bridge names. Those names will be recognized by carla and u can add vsts into carla if carla is compiled wtih vst support. To compile carla with vst support issue "make features" to see if libs needed for vst are installed.
After successful compilation by make and installing by su -c 'make install' u can run carla and load vsts. To use kontakt soundfonts get kontakt 5.0.3 and load it as vst into carla after adding kontakt vst into airware. This adding is to be done only once.
I have not tested finale and sibelius more. I think it's better to use musescore or qtractor for music making. Also i still don't know how to do midi input from midi keyboard via wineasio. If someone knows let me know.

ossuserr
Known Member
Posts: 272
Joined: Thu Jan 08, 2015 12:01 am
Sound Card: audigy 2 zs platinum, esi juli
OS: gentu riced to bo0st
Location: Earth

Re: Getting rid of jackd for higher quality

Postby ossuserr » Fri Jan 01, 2016 7:26 pm

Also it may be possible that wineasio works only with alsa.


Return to “Linux”

Who is online

Users browsing this forum: No registered users and 1 guest