BASS_FX 2.4.12.1

Started by (: JOBnik! :),

radio42

Yes, I would also like to get an official x32/x64 build with the version number included ;-)

Ian @ un4seen

Good to hear that the update fixed the problem. I have passed the code modification on to Arthur, so there will hopefully be an official BASS_FX update including that shortly.

RootyElf

Quote from: Ian @ un4seen
Quote from: RootyElfRecently, I have also tried to run osu! on aarch64 and I am pretty sure, that BASS_FX causes issues. The game uses BASS for sound effects and BASS_FX for the music. Every time the program tries to output music it either crashes or gets stuck. When osu! is started, it first outputs some sounds which works fine, but as soon as the music is supposed to start playing, the program does not continue anymore. I also tried running the program with BASS_FX removed from the system. In this case the program starts and also plays sound effects, though obviously no music. I also tried the same setup with the same library versions on a x64 machine which works fine.

To help confirm whether BASS_FX is causing the problem, can you try still playing the music but without the tempo processing? You can do that by removing the BASS_STREAM_DECODE flag from the source stream (eg. BASS_StreamCreateFile call) and removing the BASS_FX_TempoCreate call on it. If you're using BASS_FX's reverse processing, also remove the BASS_FX_ReverseCreate call.
OK, so the file which uses Bass_FX is this one: https://github.com/ppy/osu-framework/blob/master/osu.Framework/Audio/Track/TrackBass.cs. I removed the BASS_FX code and the Decode flag to have the music played without BASS_FX. Now the music plays on aarch64 as well.

(: JOBnik! :)

Hi ;D

there's now version 2.4.12.1 is released [07/06/2018]

2.4.12.1 - 07/06/2018
* BASS_FX:
  * Fixed file version info on Windows platforms.

* Tempo:
  * Fixed an issue with flushing the final samples from the tempo processing buffers as described in this post:
    http://www.un4seen.com/forum/?topic=2181.msg126906#msg126906

Vperus

Hello ,
fx currently missing bass as dependency.

% ldd libbass_fx.so (on linux):
    linux-vdso.so.1 (0x00007ffc59350000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fd79a690000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007fd79a2fb000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007fd799f3f000)
    /usr/lib64/ld-linux-x86-64.so.2 (0x00007fd79ac30000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fd799d27000)

% dumpbin /dependents bass_fx.dll
    msvcrt.dll
    bass.dll
    KERNEL32.dll
    USER32.dll

Regards,
Vperus

Ian @ un4seen

Yes, on Linux, BASS_FX (and the other add-ons) isn't linked with the libbass.so library and instead depend on it being loaded by the application first.

Vperus

Any reasons to do it? For example if you want to use https://github.com/ManagedBass/ManagedBass with native libraries + NETCore you need to write platform dependent code to load it on linux, not just include-use.

Regards,
Vperus.

Ian @ un4seen

The reason for it is that the application's directory isn't in Linux's library search path, ie. Linux won't find the libraries if they're placed alongside your executable (like Windows will). So the add-ons would fail to load if they were linked with the libbass.so library and it isn't installed in the library search path.

When using .Net, calling a BASS function before any add-on functions are called should ensure that the BASS library is loaded before the add-ons are. For example, you could call BASS_GetVersion first thing in your initialization code.

Sander van den Brakel

We use ManagedBass in C# to build Apps in Visual Studio.

We create streams like this:

var loopFlag = (loopState) ? BassFlags.Loop : BassFlags.Default;
_stream = Bass.CreateStream(AppEnvironment.AudioPath + filePath, 0, 0, loopFlag);

Works perfectly. However we now want to apply a pitch-shift fx on this stream (while it's already playing).
Is this possible with BassFX?

Thanks in advance....

Sander

Ian @ un4seen

Yes, you can use the BASS_FX add-on's tempo processing for that. You will need to add the BASS_STREAM_DECODE flag to the BASS_StreamCreateFile call, and then call BASS_FX_TempoCreate on that stream to get a new stream with tempo processing enabled. You may also want to use the BASS_FX_FREESOURCE flag in the BASS_FX_TempoCreate call, to have the 1st stream automatically freed when the 2nd one is.

Note ManagedBass presents/names the functions and flags a bit differently but the process is the same.

vandenbrakel

Okay, thanks. That now works in the standard way. Create|Decode->Tempo|Decode->Pitch->Addtomixer->Output.
But when we put pitch on a stream that is already playing through a mixer, it doesnt't get pitched.

C# example code that works pitched
var beatles = Bass.CreateStream(path + "beatles.mp3", 0, 0, BassFlags.Decode);
beatles = BassFx.TempoCreate(beatles, BassFlags.Decode);
Bass.ChannelSetAttribute(beatles, ChannelAttribute.Pitch, 10);
var mixer = BassMix.CreateMixerStream(44100, 2, BassFlags.Default); // create stereo mixer with same sample rate
var state = BassMix.MixerAddChannel(mixer, beatles, BassFlags.MixerDownMix);
Bass.ChannelPlay(mixer);

C# example that doesn't work. Probably we need to chnage the origional stream?
var beatles = Bass.CreateStream(path + "beatles.mp3", 0, 0, BassFlags.Decode);
var mixer = BassMix.CreateMixerStream(44100, 2, BassFlags.Default); // create stereo mixer with same sample rate
var state = BassMix.MixerAddChannel(mixer, beatles, BassFlags.MixerDownMix);
Bass.ChannelPlay(mixer);

//change pitch while we play through mixer
beatles = BassFx.TempoCreate(beatles, BassFlags.Decode);
Bass.ChannelSetAttribute(beatles, ChannelAttribute.Pitch, 10);


Hope this makes any sense. Thanks

Ian @ un4seen

In the 2nd case, the problem is that it is the original stream (not the tempo stream) that is added to the mixer. If you want to delay the pitch change, you should still make the BASS_FX_TempoCreate call before adding to the mixer and just delay the BASS_ChannelSetAttribute call.

vandenbrakel

Thanks!

That works. And with the BassFlags.FxFreeSource flag set it doesn't seem to affect CPU that much.

(: JOBnik! :)

#733
Hi ;D

Please test the latest updates:

* Tempo:
  * Updated to the latest SoundTouch version 2.1.3

* Reverse:
  * Fixed BASS_ERROR_UNKNOWN error when restarting playback of a reverse stream, as described in this thread:
    www.un4seen.com/forum/?topic=18176

* BPM:
  * Updated to the latest SoundTouch version 2.1.3
  * Rewrote Beats-per-Minute analysis algorithm for more reliable BPM detection.

* DSP:
  * Fixed fFeedback parameter in BASS_FX_BFX_CHORUS effect.
  * Enabled fS parameter to be greater than 1 in BASS_FX_BFX_BQF effect.
  * Fixed bStereo parameter in BASS_FX_BFX_ECHO4 effect for Android.


SoundTouch's Beat Position detection will be added later.

Windows x86/x64: http://www.jobnik.net/BASS_FX/beta/bass_fx24122-beta.zip
Linux x86/x64: http://www.jobnik.net/BASS_FX/beta/bass_fx24122-linux-beta.zip
Android: http://www.jobnik.net/BASS_FX/beta/bass_fx24123-android-beta.zip

rv

otherside

Hello. I often get a lot of crashes (I am using bassfx of current release version)

SIGABRT 0x00000000000069bb
#0. Crashed: Thread
0  libc.so                        0xf6ea1758 (Missing)
1  libc.so                        0xf6e7b80d (Missing)
2  libc.so                        0xf6e789bf (Missing)
3  libc.so                        0xf6e76572 (Missing)
4  libstdc++.so                   0xf5a774df (Missing)
5  libstdc++.so                   0xf5a78fda (Missing)
6  libstdc++.so                   0xf5a76cd9 (Missing)
7  libstdc++.so                   0xf5a78fda (Missing)
8  libstdc++.so                   0xf5a76ccf (Missing)
9  libstdc++.so                   0xf5a76ccf (Missing)
10 libbass_fx.so                  0xee6185d3 (Missing)
11 (Missing)                      0x37fffffe (Missing)

lqbe

Quote from: (: JOBnik! :)SoundTouch's Beat Position detection will be added later.
Exciting! Can't wait

rv

Hi,

For the BASS_FX_BFX_ECHO4, is it possible to add a LPF (only one knob, frequency, from 1hz? to max freq=DISABLE) before injecting it to the feedback
This is very common in a DELAY to have the echo darker than original delay
it is often called HIGH DAMP feature

Cristian1980

Hello,

Do you think we could have BASS FX for Mac built with SDK 10.9? This is a requirement in order to notarize applications for the latest MAC OS.
The latest BASS FX version seems to be using SDK 10.8.
https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution?language=objc

Thank you for any help,
Cristian