Poll

Would you like to contribute to this add-on?

Yes
11 (44%)
I might look at it
10 (40%)
It is no useful
3 (12%)
No
1 (4%)

Total Members Voted: 24

Author Topic: BASS_VFX - OpenSource Visual Effects add-on  (Read 23375 times)

(: JOBnik! :)

  • Posts: 1065
BASS_VFX - OpenSource Visual Effects add-on
« on: 10 Aug '08 - 08:45 »
Hi ;D

BASS_VFX, is an add-on providing custom made Visual effects.
For now it has only 4 visuals, that you can find in Spectrum example by Ian.

It's a multi-threaded, customizable and it is an OpenSource.

* If you would like to contribute, please send me an e-mail :)
* Please post your feedback :)

Download beta (sources are in C\sourcecode):
http://www.jobnik.org/bass_vfx/bass_vfx10-beta.zip

License:
http://www.jobnik.org/bass_vfx/license.txt
« Last Edit: 1 Nov '09 - 14:37 by (: JOBnik! :) »

3delite

  • Posts: 895
Re: BASS_VFX - Visual Effects add-on
« Reply #1 on: 10 Aug '08 - 11:20 »
Nice! But my TSampleDisplay3D or TSpectrum3D component is much better! ;D

I like the license but I think for a programmer a normal reward (sell it as shareware or commercial) is nicer for his/her work.

3delite

georgebou

  • Posts: 189
Re: BASS_VFX - Visual Effects add-on
« Reply #2 on: 10 Aug '08 - 13:36 »
Nice! But my TSampleDisplay3D or TSpectrum3D component is much better! ;D

I like the license but I think for a programmer a normal reward (sell it as shareware or commercial) is nicer for his/her work.

3delite

I disagree with the normal reward thought :).
For example the reward for my application is the thousands downloads and some emails i have got :)
It depends on what you seek, money or glory.
I choose glory :)

Oh i forgot to mention that i can't help because my time is limited and i don't know and C++:(
After all none amount of money is enough for me :)

Chris

  • Posts: 1808
Re: BASS_VFX - Visual Effects add-on
« Reply #3 on: 10 Aug '08 - 15:46 »
Hi
 great Stuff
I will add tomorrow a Delphi Port / Delphi Example
Chris

(: JOBnik! :)

  • Posts: 1065
Re: BASS_VFX - Visual Effects add-on
« Reply #4 on: 12 Aug '08 - 09:02 »
Hi ;D

The package is updated.
Added VB & Delphi (not sure if all is correct) APIs ;)

(: JOBnik! :)

  • Posts: 1065
Re: BASS_VFX - Visual Effects add-on
« Reply #5 on: 29 Aug '08 - 15:22 »
Hi ;D

I see 6 users want to contribute, but I didn't get any e-mails from you ;)
Please send me an e-mail or PM me, so I'll send the source code of this project.

MB_SOFT

  • Posts: 260
Re: BASS_VFX - Visual Effects add-on
« Reply #6 on: 23 Oct '08 - 03:42 »
Hi JOBnik!

I attach an effect to a bass handle using BASS_VFX_Set; the bass handle is AUTOFREE; do i have to manually remove the effect (BASS_VFX_Remove) before bass autofree the handle?


(: JOBnik! :)

  • Posts: 1065
Re: BASS_VFX - Visual Effects add-on
« Reply #7 on: 23 Oct '08 - 11:07 »
Hi ;D

_AUTOFREE flag will free all visual effects set on handle, the same as BASS_Stream/MusicFree :)

(: JOBnik! :)

  • Posts: 1065
Re: BASS_VFX - Visual Effects add-on
« Reply #8 on: 30 Oct '09 - 13:14 »
Hi ;D

I've added full source code to the package in C\sourcecode.
It's Visual C++ Win32 DLL.

Play with it, make it better :)

devid1988

  • Posts: 47
Re: BASS_VFX - OpenSource Visual Effects add-on
« Reply #9 on: 7 Aug '14 - 21:34 »
Hi ;D

BASS_VFX, is an add-on providing custom made Visual effects.
For now it has only 4 visuals, that you can find in Spectrum example by Ian.

It's a multi-threaded, customizable and it is an OpenSource.

* If you would like to contribute, please send me an e-mail :)
* Please post your feedback :)

Download beta (sources are in C\sourcecode):
http://www.jobnik.org/bass_vfx/bass_vfx10-beta.zip

License:
http://www.jobnik.org/bass_vfx/license.txt

Nice idea
  I do not have experience in C and C ++

There is a project in which its currency earlier

« Last Edit: 7 Aug '14 - 22:21 by devid1988 »

Wishmaster

  • Posts: 149
Re: BASS_VFX - OpenSource Visual Effects add-on
« Reply #10 on: 9 Aug '14 - 07:01 »
Hi

@devid1988 is the source code available? it's in Delphi right?

I'm more interested in a multichannel Vis, I mean so each channel is displayed separately at the same time
and each channel has it's own color.
it is useful when recording in multichannel like (5.1, 7.1, ...), so you can adjust the volume level for each channel
and get so a visual feedback.   

something like

Code: [Select]

 type
   TWaveData = array [0..2048] of Single;
   TFFTData  = array [0..2048] of Single;
   TChannels  = array [0..7] of Single;


constructor ....
 begin
 VisBuff := TBitmap32.Create;
 VisBuff.Width:= Width;
 VisBuff.Height:= Height;
end;



procedure Draw_SpectrumToCanvas(Btm : TBitmap32; OffsetX, OffsetY : Integer);
const
  COLORS: array[0..7] of TColor32 = (clRed32,  clYellow32,  clFuchsia32, clBlue32,
                                       clViolet32, clLime32, clDarkBlue32, clDarkOrchid32);
var
 i, YPos, ChanPos : LongInt;
 YVal : Single;
 ChannelInfo   : BASS_CHANNELINFO;
 ChannelIndex: integer;
 Chan : TChannels;
 Samples : TSingleArray;
 SamplesFFT : TFFTData;
begin

....

  case DrawMode of
   0 : (* Multi-channel wave *)
    begin
      SetLength(Samples, ChannelInfo.chans * VisBuff.Width);

      ChanPos := Trunc(2 * ScopeOff);

     if ((ChannelInfo.flags and BASS_SAMPLE_FLOAT) = BASS_SAMPLE_FLOAT) then
      begin
       (* 32 Bit floating-point sample data *)
       if MixData then //bassmix.dll
        BASS_Mixer_ChannelGetData(Channel, Samples, (ChannelInfo.chans * VisBuff.Width * SizeOf(Single)) or BASS_DATA_FLOAT)
       else
        BASS_ChannelGetData(Channel, Samples, (ChannelInfo.chans * VisBuff.Width * SizeOf(Single)) or BASS_DATA_FLOAT);
      end;


      Btm.Clear(clBlack32);
     for ChannelIndex := 0 to ChannelInfo.chans - 1 do
      begin
        Btm.PenColor:= COLORS[ChannelIndex];
        Btm.MoveTo(OffsetX, OffsetY + ChanPos);
       for i := 0 to VisBuff.Width - 1 do
        begin
         YPos := Trunc(Samples[(i * ChannelInfo.chans) - ChannelIndex * DrawRes] * ScopeOff);
         Btm.LineToS(OffsetX + i - 2 , OffsetY + YPos);
        end;
      end;


    end;




procedure Draw_Spectrum(HWND : HDC; OffsetX, OffsetY : Integer);
begin
 Draw_SpectrumToCanvas(VisBuff, OffsetX, OffsetY);
 BitBlt(HWND, 0, 0, VisBuff.Width, VisBuff.Height, VisBuff.Handle, 0, 0, srcCopy)
end;