BASS_FX 2.4.12.1

Started by (: JOBnik! :), 3 Dec '03 - 22:43

rv

I think that the fFeedback parameter of BASS_FX_BFX_ECHO4 will determine if the delay will stop rapidly or will repeat tons of times before stopping.

But what the matter with the BASS_FX_BFX_REVERB and this parameter?

The ECHO and the REVERB is 2 different things. no?

radio42

With the new version I almost every time get an AccessViolationException when calling "BASS_FX_BPM_DecodeGet"!

I call it with the following params on a decoding stream created with the FLOAT, PRESCAN, ASYCFILE and UNICODE flags:
BASS_FX_BPM_DecodeGet(chan, 31.0, 61.0, MAKEDWORD(70, 160), BASS_FX_BPM_DEFAULT, null, null);

(: JOBnik! :)

#602
Hi ;D

Quote from: rv on  4 Jun '13 - 16:50I think that the fFeedback parameter of BASS_FX_BFX_ECHO4 will determine if the delay will stop rapidly or will repeat tons of times before stopping.

But what the matter with the BASS_FX_BFX_REVERB and this parameter?

The ECHO and the REVERB is 2 different things. no?

Checking it...

Quote from: radio42 on  5 Jun '13 - 16:53With the new version I almost every time get an AccessViolationException when calling "BASS_FX_BPM_DecodeGet"!

I call it with the following params on a decoding stream created with the FLOAT, PRESCAN, ASYCFILE and UNICODE flags:
BASS_FX_BPM_DecodeGet(chan, 31.0, 61.0, MAKEDWORD(70, 160), BASS_FX_BPM_DEFAULT, null, null);

You're right!
Here's an update to try:
http://www.jobnik.org/files/bass_fx.dll

This update checks if:
BPMPROGRESSPROC is available, if not, then ignore it.
BPMPROC/BPMBEATPROC callback locations are available, if not then will return BASS_ERROR_ILLPARAM error.

(: JOBnik! :)

Hi ;D

there's now version 2.4.10.1 is released

2.4.10.1 - 05/06/2013
---------------------
* BPM/Beat:
  * Fixed a crash when not using BPMPROGRESSPROC callback
  * Added a check for BPMPROC/BPMBEATPROC callbacks, if not available, returns BASS_ERROR_ILLPARAM error code

(: JOBnik! :)

Hi ;D

Quote from: rv on  4 Jun '13 - 16:50I think that the fFeedback parameter of BASS_FX_BFX_ECHO4 will determine if the delay will stop rapidly or will repeat tons of times before stopping.

But what the matter with the BASS_FX_BFX_REVERB and this parameter?

The ECHO and the REVERB is 2 different things. no?

The reverb effect in BASS_FX is based on Echo/Reverb effect from dspTest example that can be found in BASS package.
Indeed it adds feedback to the delay to stimulate simple reverb effect.

I'm now looking into implementing a "Freeverb" in BASS_FX, for advanced reverberation.

iancast

Quote from: (: JOBnik! :) on  3 Jun '13 - 15:59Hi ;D

there's now version 2.4.10 is released

2.4.10 - 02/06/2013
-------------------
* BASS_FX:
   * Please see DSP and BPM sections for decprecated effects/functions.
     To not break compatibility with BASS 2.4 version, these effects and functions will still remain in BASS_FX,
     but are removed from documentations and will be totally removed from BASS_FX in the future.
   * BASS_ERROR_FX_NODECODE error code *removed*, will return BASS_ERROR_DECODE instead (Tempo/Reverse/BPM/Beat)
   * BASS_ERROR_FX_BPMINUSE error code *removed*, will return BASS_ERROR_ALREADY instead (BPM/Beat)
   * Tempo and BPM functions updated to latest SoundTouch library version 1.7.1

* Tempo:
  * Multi-channel support is added, but:
     * No SSE optimizations
     * BASS_ATTRIB_TEMPO_OPTION_USE_AA_FILTER is by default set to FALSE on iOS, Android, WinCE and Linux ARM platforms for lower CPU usage
     * Not part of SoundTouch library, sources will be sent to Olli Parviainen after BASS_FX release
  * Sound quality improvements
  * Improved output sound stream duration to match better with ideal duration
  * Fixed BASS_ERROR_UNKNOWN issue with Windows 8 x64, posted in this thread:
    http://www.un4seen.com/forum/?topic=14499.0

* BPM:
  * BASS_FX_BPM_Translate and all of its options, BASS_FX_BPM_TRAN_xxx, are *deprecated*
  * BPMPROCESSPROC *renamed* to BPMPROGRESSPROC
  * BPM example is updated to fit above changes
  * Tuned detection algorithm
  * Fixed detection bug in Android, WinCE & Linux ARM platforms, for returning odd values
  * Fixed percents bug in BPMPROGRESSPROC
  * Changed default min/max BPM window to SoundTouch's 29/200

* Beat:
  * Fixed regression since version 2.4.8 in BASS_FX_BPM_BeatDecodeGet function,
    that would free a "chan" when detection is completed, as described in this thread:
    http://www.un4seen.com/forum/?topic=2181.msg102805#msg102805

* DSP:
  * Ported all effects to Android, WinCE & Linux ARM platforms

  * BASS_FX_BFX_ROTATE:
        added new structure "BASS_BFX_ROTATE" with params:
        "fRate"    - set the rotation rate/speed in Hz between channels
        "lChannel" - multi-channel support, only for even number of channels

  * BASS_FX_BFX_ECHO4:
        added new effect and structure "BASS_BFX_ECHO4" with params:
        "fDryMix"   - unaffected signal mix
        "fWetMix"   - affected signal mix
        "fFeedback" - output signal to feed back into input
        "fDelay"    - delay seconds
        "bStereo"   - even channels are echoed to each other if enabled
        "lChannel"  - multi-channel support

  * BASS_FX_BFX_ECHO        - *deprecated*, use BASS_FX_BFX_ECHO4
  * BASS_FX_BFX_ECHO2       - *deprecated*, use BASS_FX_BFX_ECHO4
  * BASS_FX_BFX_ECHO3       - *deprecated*, use BASS_FX_BFX_ECHO4
  * BASS_FX_BFX_REVERB      - *deprecated*, use BASS_FX_BFX_ECHO4 with fFeedback enabled
  * BASS_FX_BFX_FLANGER     - *deprecated*, use BASS_FX_BFX_CHORUS
  * BASS_FX_BFX_COMPRESSOR  - *deprecated*, use BASS_FX_BFX_COMPRESSOR2
  * BASS_FX_BFX_APF         - *deprecated*, use BASS_FX_BFX_BQF with BASS_BFX_BQF_ALLPASS filter
  * BASS_FX_BFX_LPF         - *deprecated*, use 2x BASS_FX_BFX_BQF with BASS_BFX_BQF_LOWPASS filter and appropriate fQ values

Quote from: rv on  3 Jun '13 - 09:29Hello,
I have a little problem with the echo2 fx.
In the documentation, you are saying thatthe fdrymix parameter is [-2..+2]
I don't know if it is a .net float convertion problem with negative values, but what I get is :
0 to +2 is exactly the same as 0 to -2.

SO +2  or  -2 are exactly the same = max amount.

Do your compiler is IEEE 754 for floating point numbers?

Tested and it should be fine changing from -2 to +2... I'll recheck it.

Awesome! Thanks for your great work, I really really appreciate it.

nadia

Hello  ;D

I've found a regression inside the latest build of bass_fx: try loading a WAV PCM file having a frequency of 4000 Hz using the BASS_StreamCreateFile function and you have a big chance to get an exception when calling the BASS_FX_BPM_DecodeGet on the related decode stream. I've replicated the issue using the "bpm" sample and version 2.4.10.1 and 2.4.10.0 while the issue is not reproduced with the previous version 2.4.9

If you should need a test file, please, let me know where I can upload it.

Kind regards  ;D

Nadia

Quote from: (: JOBnik! :) on  5 Jun '13 - 19:52Hi ;D

there's now version 2.4.10.1 is released

2.4.10.1 - 05/06/2013
---------------------
* BPM/Beat:
  * Fixed a crash when not using BPMPROGRESSPROC callback
  * Added a check for BPMPROC/BPMBEATPROC callbacks, if not available, returns BASS_ERROR_ILLPARAM error code


(: JOBnik! :)


(: JOBnik! :)


victor

#609
i'm using BASS_FX for transposing a track. Along with this first tracks there are some more tracks (not transposed) that are all mixed together. When the first track is not transposed all tracks are in sync.
As soon as i use the transposer there is a latency and the rest of tracks are not in sync with the first one anymore.
I am trying to find a way to compensate for the latency.
How big is this latency? Is it constant? Or depending on how many half tones? Is it dependent on the CPU power?

Ionut Cristea

  It seems that using BASS_FX(tempo,pitch) on a decoded stream on android without any any aother processing and also without any tempo,pitch changing increase CPU usage with 4-5 procent.

Have somebody got this too?

Ionut

Chris

I think that is a normal Value.
On win here (dualcore amd AM2 2* 3 GHZ)
Tempo 0 ~ 1,2 % CPU
Tempo <> 0 ~ 1,6 %
 on which Handy CPU Quadcore ?

Ionut Cristea

  Yes but as far as i know when tempo and pitch values are default(0), the processing is canceled, so no high cpu usage than normal should appear right?

Chris

what cpu usage do you have with the normal bass stream?

Ionut Cristea

8-9 % - normal stream
13-14% with tempo stream.

Also, maybe this is a bass related problem. I've noticed other players take only 1-2 % while bass without any processing takes 8-9%?? Can somebody confirm that?

BenMaas

Hi.

I am using bass in my point&click adventure engine which i am currently rewriting. Until now i used EAX for rooms like caverns or halls so all sounds get some reverb and /or echo effect. But since EAX doesn't work on most systems nowdays (due to hardware and or windows version) i want to get rid of it and hoped that Bass_FX would be a good alternative.

I tried to set up a simple DSP effect for some echos, which worked. But i noticed one major problem. When the playback stops all DSP effects immmediatly stop too.
Is it possible to make it fade out even if the stream/sample ends? A reverb or echo effect that does not fade out it quite useless.

I know i could add some seconds silence to all soundfiles but besides the inconvenience of this it would also not help when playing and stopping loop-sounds.

I apologize if this question has been asked before... i didn't know what keywords i could search for.

BenMaas

is it maybe possible to add silence to a stream AFTER I created it with "streamcreatefile"?

so that i do not have to add manually to the soundfiles?

Chris

#617
If I right understand you want to fadeout only the Echo/Reverb Effect?
If so then just set a simple Pos Sync (maybe 5 sec before the stream end)with
 BASS_ChannelSetSync and inside the sync callback you can fadeout the gain of the effect with a while loop

BenMaas

I am sorry that is not what i mean. Lets take a simple soundfile maybe a bassdrum. If the files looks like this :

"O                 "      <-Basedrum followed by silence.

then the echo effect will work like :

"O o o .  .  .    "

But if the file does not have silence like :

"O"   there will be no echoes because the effect stops immediatly with the samplestream. So, by fading out i don't mean to change the effect settings. I mean giving the echo effect time to finish.

BenMaas

Me again :)

I recorded a test sound just to show what i mean :

http://www.adventure-creator.com/stuffpublic/testsound.ogg

First you'll hear a sound without any effect. Second, the same soundfile with a reverb effect and as Third i added silence to the file itself. What i hope to find is a way to play it like the third way but without having to manually add silence to all soundfiles in a wave editor.
Sorry for my nagging. :-[

Ian @ un4seen

Quote from: BenMaas on 27 Feb '14 - 17:40I tried to set up a simple DSP effect for some echos, which worked. But i noticed one major problem. When the playback stops all DSP effects immmediatly stop too.
Is it possible to make it fade out even if the stream/sample ends? A reverb or echo effect that does not fade out it quite useless.

I know i could add some seconds silence to all soundfiles but besides the inconvenience of this it would also not help when playing and stopping loop-sounds.

BASS doesn't currently have the option of waiting for effect tails. I'll see if such an option could be added, but for now, the only way to achieve that is to add silent padding to the end of the stream yourself. It doesn't necessarily require modifying the file though; you can instead use a custom stream to do it, ie. the STREAMPROC function would decode data from the source file and then add some silence at the end of it. It could look something like this...

decoder=BASS_StreamCreateFile(FALSE, filename, 0, 0, BASS_STREAM_DECODE); // create decoder for audio file
BASS_CHANNELINFO ci;
BASS_ChannelGetInfo(decoder, &ci); // get sample format
output=BASS_StreamCreate(ci.freq, ci.chans, ci.flags&~BASS_STREAM_DECODE, StreamProc, 0); // create stream to play decoded data + silent padding
padding=BASS_ChannelSeconds2Bytes(output, paddingseconds); // length of silent padding
BASS_ChannelPlay(output, 0); // start the output

...

DWORD CALLBACK StreamProc(HSTREAM handle, void *buffer, DWORD length, void *user)
{
int r=BASS_ChannelGetData(decoder, buffer, length); // get data from the decoder
if (r<0 || !BASS_ChannelIsActive(decoder)) { // end of file, add padding...
if (r<0) r=0;
int c=min(length-r, padding); // amount of padding to add
memset(((BYTE*)buffer)+r, 0, c); // add the padding
r+=c;
padding-=c; // decrease padding counter
if (!padding) r|=BASS_STREAMPROC_END; // no more padding, end of stream
}
return r;
}

If you want to apply that to multiple streams, you could put the "decoder" and "padding" variables in a structure and pass that to the STMEAMPROC via the "user" parameter.

BenMaas

That would help for now :)
Thank you for your help.

smmsamm

I check tempo with bass32 and fx 32 it has problems on win7 64 bit after that I check tempo with 64 bit dll and every things are OK,
Please give a fx x86 version with correct functions

Chris


smmsamm