Author Topic: BASS.NET API 2.4.12.5  (Read 748286 times)

radio42

  • Posts: 4522
BASS.NET API 2.4.12.5
« on: 5 Dec '05 - 18:08 »
16.12.2016: Version 2.4.12.5 is out!

Note:
   - Support for BASSmidi v2.4.10.0 added
   - Support for DSD and APE addon in Bass.Net.WinStore

Full Install:
 www.un4seen.com/filez/4/Bass24.Net.zip

Lib only:
 www.un4seen.com/filez/4/Bass24.Net_update.zip


IMPORTANT NOTE:
With this release I do NOT provide any setup.exe tool anymore!
This means, the full install is a plain zip file (just like for the native bass lib).
Just extract it to any new folder of your choice.

----------
09.09.2016: Version 2.4.12.3 is out!

Note:
   - Support for BASSenc_OGG added
   - Support for BASSenc_OPUS added

IMPORTANT NOTE:
With this release I do NOT provide any setup.exe tool anymore!
This means, the full install is a plain zip file (just like for the native bass lib).
Just extract it to any new folder of your choice.

-----
28.04.2016: Version 2.4.12.1 is out!

Note:
   - Bass.Net: .Net Framework v4.5 rebuild
   - Bass.Net.iOS: latest Xamarin.iOS target framework support
   - Bass.Net.Android: latest Mono/Xamarin.Android target framework support
   - Bass.Net.Linux: .Net Framework v4.5 rebuild
   - Bass.Net.OSX: .Net Framework v4.5 rebuild

IMPORTANT NOTE:
With this release I do NOT provide any setup.exe tool anymore!
This means, the full install is a plain zip file (just like for the native bass lib).
Just extract it to any new folder of your choice.


------------------
07.07.2015: Version 2.4.11.1 is out!

General update to all latest versions!
The BASS_FX PITCHSHIFT effect is now visible in the iOS and Android version.

----------
19.01.2015: Version 2.4.11.0 is out!

BASS: added support for v2.4.11.0
BASSDSD: added support for v2.4.0.0
BASS_FX: added support for v2.4.11.1
BASSASIO: added support for v1.3.1.0
BASSMIDI: added support for v2.4.9.1
General update to all latest versions!

-----
10.10.2014: Version 2.4.10.4 is out!

Support for all latest versions added!

-----
13.09.2013: Version 2.4.10.3 is out!

BASSWASAPI: added support for v2.4.0.0
BASSopus: added support for v2.4.1.1
BASS_FX: added support for v2.4.10.2

-----
13.06.2013: Version 2.4.10.2 is out!

BASS_FX: added support for v2.4.10.1
BASSmidi: added support for v2.4.8.0

-----
15.04.2013: Version 2.4.10.1 is out!

BASS: added support for v2.4.10.5
BASS_ASIO: added support for v1.3.0.0
General:
    - separate build versions added (see below)

Important Note:
There are now the following build versions included:
.\v2.0 : Bass.Net for .Net 2.0 (Bass.Net.dll)
Targeting x86 and x64, Windows, Linux or Apple OSX development.
 
.\v4.0 : Bass.Net for .Net 4.0 (Bass.Net.dll)
Targeting x86 and x64, Windows, Linux or Apple OSX development.
 
.\compact : Bass.Net CE for .Net CompactFramework 3.5 (Bass.Net.compact.dll)
Targeting Windows CE/PocketPC development.
 
.\iOS : Bass.Net for Xamarin.iOS (Bass.Net.iOS.dll)
Targeting mobile iOS development (static, __Internal linking).
 
.\Android : Bass.Net for Xamarin.Android (Bass.Net.android.dll)
Targeting mobile Android development.
 
.\Linux : Bass.Net for Mono (Bass.Net.Linux.dll)
Targeting desktop Linux development.
 
.\OSX : Bass.Net for Mono (Bass.Net.OSX.dll)
Targeting desktop MAC OSX development.
 

Full Install:
 www.un4seen.com/filez/4/Bass24.Net.zip

Lib only:
 www.un4seen.com/filez/4/Bass24.Net_update.zip


-----
19.02.2013: Version 2.4.10.0 is out!

BASS: added support for v2.4.10.0
BASS_FX: added support for v2.4.9.0
BASSenc: added support for v2.4.10.1
BASSMIDI: added support for v2.4.7.0
BASS_ASIO: added support for v1.2.1.0
BASSWASAPI: added support for v0.0.0.19
General:
   - Broadcast: additional Admin Username/Password added
Note:
   - the v4.0 version also supports the v4.5 .Net Framework
   - BASS_FX added to the WinCE version
             - VS2012 help integration added

Full Install:
 www.un4seen.com/filez/4/Bass24.Net.zip

Lib only:
 www.un4seen.com/filez/4/Bass24.Net_update.zip


-----
20.09.2012: Version 2.4.9.1 is out!

BASS: added support for v2.4.9.6
BASS_FX: added support for v2.4.8.0
BASSMIDI: added support for v2.4.7.0
BASSOPUS: added support for v2.4.0.0
BASS_SPX: added support for v2.4.1.1
General:
  - Utils: Opus support added
  - Broadcast: new EncoderOPUS added
  - Broadcast: server ICEcast Opus support added
  - WaveForm: (De)Serialization bug-fix
Note:
  - the v4.0 version also supports the v4.5 .Net Framework

-----
10.05.2012: Version 2.4.9.0 is out!

BASS: added support for v2.4.9.0
BASSmix: added support for v2.4.7.0
BASSWV: added support for v2.4.3.1

-----
03.04.2012: Version 2.4.8.6 is out!

BASSenc: added support for v2.4.9.1
BASS_ASIO: added support for v1.2.0.0
BASSCD: added support for v2.4.5.2
BASSMIDI: added support for v2.4.6.11
BASS_DSHOW: added support for v1.2.2.0
General:
   - Broadcast: new BroadCastEventType.Reconnected added
   - WaveForm: Marker drawing bug-fix

-----
09.03.2012: Version 2.4.8.5 is out!

BASS: added support for v2.4.8.13
BASSenc: added support for v2.4.9.0

-----
04.01.2012: Version 2.4.8.4 is out!

BASSASIO: support for 1.1.0.2 added
BASS_DSHOW: support for 2.4.0.1 added

IMPORTANT NOTICE:
As the folder structure for the Bass.Net assemblies has been changed with this release,
make sure to correct this within your project settings to ensure that you are
referencing the correct target platform!
There are four Bass.Net versions deployed (each in a seperate sub-folder):
.\v2.0    : Bass.Net for .Net 2.0
.\v4.0    : Bass.Net for .Net 4.0
.\compact : Bass.Net CE for .Net CompactFramework 3.5
.\iphone  : Bass.Net iPhone for .Net CompactFramework 3.5

-----
05.12.2011: Version 2.4.8.3 is out!


General:
        - .Net v4.0 TAG reading bug-fix
        - Installer optimized

-----
02.12.2011: Version 2.4.8.2 is out!

(containing a 'LoadMe' and 'Installer' bug-fix)

BASS: added support for v2.4.8.5
BASS_DSHOW: added support for v1.2.0.0
BASS_AIX: added support for v2.4.1.1
General:
        - UTF-8 DeviceInfo member support for BASS and BASSWASAPI
        - Misc: new EncoderFHGAACplus added
        - Utils: BASSAddOnGetPluginFileFilter and BASSAddOnGetSupportedFileFilter enhanced
        - New Setup including v2.0 and v4.0 .Net assembly versions
        - New HelpViewer help files added for VS2010

IMPORTANT NOTICE:
As the folder structure for the Bass.Net assemblies has been changed with this release,
make sure to correct this within your project settings to ensure that you are
referencing the correct target platform!
There are four Bass.Net versions deployed (each in a seperate sub-folder):
.\v2.0    : Bass.Net for .Net 2.0
.\v4.0    : Bass.Net for .Net 4.0
.\compact : Bass.Net CE for .Net CompactFramework 3.5
.\iphone  : Bass.Net iPhone for .Net CompactFramework 3.5


-----
19.05.2011: Version 2.4.7.4 is out!

BASS: added support for v2.4.7.7
BASSCD: added support for v2.4.5.0
BASSMIDI: added support for v2.4.6.3
BASSenc: added support for v2.4.8.2
BASS_FX: added support for v2.4.7.0
Update to support all latest addon/plugin versions


-----
12.03.2011: Version 2.4.7.3 is out!

BASSenc: added support for v2.4.8.0
Update to support all latest addon/plugin versions


-----
21.02.2011: Version 2.4.7.2 is out!

BASS: added support for v2.4.7.3
BASSenc: added support for v2.4.7.4
Update to support all latest addon/plugin versions

-----
20.12.2010: Version 2.4.7.1 is out!

BASSmix: added support for v2.4.5.0
General: ID3v2 picture tag reading bug-fix

-----
30.11.2010: Version 2.4.7.0 is out!

BASS: added support for v2.4.7.0
Upgrade all addon/plugins to support the latest versions!

-----
17.09.2010: Version 2.4.6.8 is out!

BASSWMA: added support for v2.4.4.0
General:
  - WaveForm: ColorMiddleLeft, ColorMiddleRight properties added
  - WaveForm: PixelFormat property added

-----
10.09.2010: Version 2.4.6.7 is out!

Support for all latest BASS versions added
General:
  - WaveForm: gradient drawing bug-fic
  - WaveForm: DrawCenterLine property added

-----
11.08.2010: Version 2.4.6.6 is out!

Support for all latest BASS versions added
General:
  - BassTag: ID3v2.2 compatibility bug-fix
  - WaveForm: marker alignments added
  - WaveForm: New DrawVolume (VOLUMEDRAWTYPE.NoPoints) flag added to supress volume point markers


-----
18.06.2010: Version 2.4.6.5 is out!

BASS: added support for v2.4.6.0
BASS_DSHOW: added support for v2.4.1.0


-----
07.04.2010: Version 2.4.6.4 is out!

General:
  - Misc.WaveForm: zooming bug-fix

-----
22.03.2010: Version 2.4.6.3 is out!

BASS: added support for v2.4.5.17
BASSmix: added support for v2.4.4.0
BASS_SFX: added support for v2.4.2.1
BASS_DSHOW: added support for v2.4.0.5
General:
  - Misc.WaveForm: rendering speed increased

-----
09.02.2010: Version 2.4.6.2 is out!

BASS: added support for v2.4.5.11
BASSmidi: added support for v2.4.5.0
BASSenc: added support for v2.4.6.2
BASSmix: added support for v2.4.3.2
General:
  - AddOn.Tags: bug-fix when reading ID3v2 unsychronization flags
  - Misc.BaseEncoder: new 'NoLimit' flag added

Also note, that a new version of enc_aacPlus.exe is available:
- using the latest Winamp 5.57 "enc_aacPlus.dll" and "nscrt.dll"
- using libmp4v2.dll [from Winamp folder] for mp4/m4a writing instead of mp4box

Get it here:
  www.un4seen.com/filez/4/enc_aacPlus.zip


-----
21.12.2009: Version 2.4.6.0 is out!

BASS: added support for v2.4.5.0
BASS_FX: added support for v2.4.5.0
BASSenc: added support for v2.4.6.2
BASSCD: added support for v2.4.3.1
BASSFLAC: added support for v2.4.1.0
BASSWV: added support for v2.4.1.5
General:
  - AddOn.Tags: picture reading added for OGG, APEv2 and FLAC
Breaking Changes:
  - BASS_FX: BiQuad filter types changed from BASS_FX_BQF_xxx to BASS_BFX_BQF_xxx


-----

OTHER STUFF:

BASS_WADSP: Winamp DSP plugin support
  www.un4seen.com/filez/4/bass_wadsp24.zip

ENC_AACPLUS: Winamp AacPlus command line encoder
  www.un4seen.com/filez/4/enc_aacPlus.zip

« Last Edit: 1 Jan '17 - 10:44 by radio42 »

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.7 !
« Reply #1 on: 5 Dec '05 - 19:57 »
Here is a little history about all changes to the BASS .NET API so far...

02.12.2005: Version 2.2.0.6
  • Support for BASS_DSP 2.2.0.0 added
  • C# WinampDSP example added

-----

23.11.2005: Version 2.2.0.5
  • New directory structure and full setup installer process
  • The Bass.Net.dll release version is now installed in the given install directory and will already be registered to the .NET Framework environment - so DO NOT move the file location! When writing your own applications you can simple add a project reference and select the BASS .NET API from the standard .NET components tab.
  • Now Bass.Net Help 2.x is fully integrated into the VS2003 or VS2005 environment
  • Support for BASS 2.2.0.1
  • Support for BASSWMA 2.2.0.4 and BASSENC 2.2.0.2
  • Support for all stream add-ons 2.2.0.1
  • AddOn.BassTag bug fixed, when reading OGG and WMA in UTF-8
  • BASS_WMA_EncodeSetTag bug fixed to support real UTF-8
  • Misc.WaveForm.CreateBitmap bug fixed when interpolating lines
  • Misc.Visuals.MaxFrequencySpectrum new property added
  • new samples added (VB and C#), demoing BassMix and WMA Encoding
  • Bass.Net.dll now uses strong names (so might be even used in the global assembly cache)

-----

12.11.2005: Version 2.2.0.4
  • Migrated to BASSWMA 2.2.0.3
  • Full support for BASSVIS added.
  • CLSCompliant flag added and set to TRUE
  • LoadMe/FreeMe plugin methods introduced, allowing to load all BASS libraries from independed directories
-----

09.11.2005: Version 2.2.0.3
  • New Misc namespace with internal visualization classes, e.g. WaveForm rendering and Spectrum graphs.
  • Migrated to BASSWMA 2.2.0.2
  • Support for BASS_STREAM_AUTOFREE flag in BASS_Mixer_StreamAddChannel
  • Samples enhanced (Simple.cs got pretty complex ;-)

-----

04.11.2005: Version 2.2.0.2
  • Full support for BASSWINAMP added.
  • Migrated to BASSWMA 2.2.0.1
  • Samples enhanced
  • Utils got a few more helper methods
  • Some enhancements to the documentation.

-----

02.11.2005: Version 2.2.0.1
  • BASSCD fully integrated.
  • The samples have been enhanced.
-----

31.10.2005:
  • BASSASIO fully integrated.
  • New AddOn.Tags.BassTags (internal add-on, NOT using tags.dll)
    - Using a single function to fill a unified TAG_INFO object containing all useful tags
    - Works with all supported add-on formats and evaluates ID3v1, ID3v2, WMA, APE, OGG, MP4 tag headers
    - Also supports Shoutcast and Icecast meta data.
    - The PlugIn and NetRadio samples have been enhanced to show BASS_TAG_GetFromFile/URL.
  • Bass.BASS_StreamGetTagsID3V2 and Bass.BASS_StreamGetTagsMP4 are now supported
    [li]Bug fix in: BassWma.BASS_WMA_StreamCreateFile (Unicode overload).
-----
27.10.2005:
  • Samples has been enhanced and the documentation has been enhanced.
  • A chapter about memory management and how to deal with data between unmananed and mananed code was added.
  • This includes several examples in the documentation.
-----
25.10.2005:
  • The Simple sample demo has been enhanced to:
    - the use of various techniques to handle data between managed and unmanged code (see 'RMS' method)
    - how to use pointers and directly access the memory just like in C/C++ (see 'MyDSPGainUnsafe' callback)
    (using 'unsafe' code is the fasted way to handle data and work like in all C samples!)
-----
24.10.2005:
  • Some minor changes to the interface:
  • BASS_ChannelGetData overloads changed
  • Samples added, improved
  • VS2005 (.Net 2.0) successfully tested (compliant!)
  • VB.Net example added
-----
2.2.0.0
  • Initial Build, supporting Bass v2.2

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.8 !
« Reply #2 on: 13 Dec '05 - 22:58 »
13.12.2005: Version 2.2.0.8 is out!

What has changed:

1) BASS .NET API is now available for .Net v1.1 (VS2003) and .Net v2.0 (VS2005) as seperate installers!!
This means you now have clean .Net 1.1 AND .Net 2.0 builds of the API available.
Please locate you download here:
NOTE:
Form now on there are two versions of the BASS .NET API maintained:
- BASS .NET API for .Net 2.0, VS2005   (Bass22.Net20.zip)
- BASS .NET API for .Net 1.1, VS2003   (Bass22.Net11.zip)

So pick your version accordingly to your VS environment!

2) The "WaveForm" class has been enhanced:
a) A new property "FrameResolution" was added to allow you to specify a rendering 'quality' between 1ms and 5000ms (which defines how many milliseconds should be kept in each rendered frame).
b) Now the class supports "Live Recording Rendering" (see the new RenderStartRecording, RenderStopRecording, RenderRecording methods) . The C# 'Encoder.cs' sample was enhanced to demo this feature.

3) The "BassTags" class was modified:
A bug was fixed when reading ID3v2.3.0 genre (TCON) tags.
Now the correct ID3v2.3.0 and ID3v2.4.0 genre strings are parsed - before this fix sometimes the genre-id only (e.g. "(21)" was returned.

4) The "Visuals" class was modified:
Now it needs to be instanciated (members are no longer static) !!!
This serves much more flexibility when using it on multiple controls or components (the C# 'Simple.cs' sample was adjusted accordingly).

5) The full source code of the BASS .NET API is from now on NOT included anymore in the downloads. BUT they can still be requested (upon valid reason from licensed users only!) - simply send a mail to "bn@ten53.de" or "bn@radio42.com".
This was simply done because of missuse and causing more trouble then help. And since from now on both .Net versions are fully maintained, I even guess the source is no longer needed by anyone - as all other stuff/add-ons also doesn't come with the source ;-)
« Last Edit: 14 Dec '05 - 07:26 by radio42 »

ken

  • Posts: 733
Re: BASS .NET API 2.2.0.8 !
« Reply #3 on: 14 Dec '05 - 07:46 »
Thanks! good work. But your download links point both to 1.1 version...

How can I create a waveform "offline" (fast without playing audio in to speakers) and serialize the waveform to xml, so I can use it later with that audio file that the waveform belong to. Possible?

#EDIT#
Sorry... just fond "WaveFormLoadFromFile" and "WaveFormSaveToFile" great!

Thanks again!
« Last Edit: 14 Dec '05 - 08:16 by ken »

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.8 !
« Reply #4 on: 14 Dec '05 - 08:45 »
Thanks! good work. But your download links point both to 1.1 version...
-> Fixed above ;-) THX!

How can I create a waveform "offline" (fast without playing audio in to speakers) and serialize the waveform to xml, so I can use it later with that audio file that the waveform belong to. Possible?
Offline rendering:
Code: [Select]
WF = new Un4seen.Bass.Misc.WaveForm(_fileName, null, this);
WF.FrameResolution = 0.01f; // 10ms are nice
if ( WF.RenderStart( false, BASSStream.BASS_SAMPLE_FLOAT | BASSStream.BASS_STREAM_PRESCAN ) )
    WF.WaveFormSaveToFile( "C:\\test.wf" ); // or use your filename and replace the ext.
« Last Edit: 15 Dec '05 - 15:40 by radio42 »

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.8 !
« Reply #5 on: 15 Dec '05 - 15:44 »
Next features planned in BASS .NET API (beside being inline with the latest bass releases):

- Live BPMDetection (still testing and cracking my brain, so don't know if that will work out)
- VST support (which I guess take some more time)
- some ready-made DSP callbacks (like Gain, WahWah, Flanger, Echo...)
- ...

Any wishes (we have Xmas soon :-) - just let me know here in this thread...

pern

  • Posts: 27
Re: BASS .NET API 2.2.0.8 !
« Reply #6 on: 16 Dec '05 - 07:46 »
All i want for xmas is:

- Beat Detection .
- Beat Sync. 2 streams, Master-Slave. With auto Pitch option on slave

;-)
« Last Edit: 16 Dec '05 - 07:57 by pern »

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.8 !
« Reply #7 on: 16 Dec '05 - 09:29 »
Beat Detection . - Beat Sync. 2 streams, Master-Slave. With auto Pitch option on slave
-> This is exactly what I am trying.
I already have a quite good beat detection  - I guess I will just do this (the detection part only), since detecting the beat is almost sufficient for mixing two streams...this issue is calculating the BPM in parallel is much more complicated (so I might leave that part ;-)

pern

  • Posts: 27
Re: BASS .NET API 2.2.0.8 !
« Reply #8 on: 16 Dec '05 - 10:16 »
Great ;-)

Live BPM Detection is rally hard to implement and i think it's more important to have a good beat sync between streams.  Also auto "pitch" on slaves so that they follow the BPM on the master stream and stay in sync would be great.

But don't limit the design to just one slave.  Any number of streams should be able to be a "slave"- stream.


radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.8 !
« Reply #9 on: 16 Dec '05 - 10:48 »
Don't be too optimistic...I guess what I am doing is just the very very basics for you try to achieve...
- auto-pitch on slaves, is not included
- keeping them in sync automatically is not included

-> I guess what you are looking for a real complete 'auto-mixer' (like 'simply' assign any new slaves to a master)...and let the rest do the engine...I am affraid, that this is not really what I can offer....since it would involve hundreds of man days in development - thus very very expensive... ;-)

pern

  • Posts: 27
Re: BASS .NET API 2.2.0.8 !
« Reply #10 on: 16 Dec '05 - 11:13 »
Thoose features is is nice to have if you want to do live remixes etc.  The best software that have implemented this is  Ableton Live, then followed by Traktor 3.
I'm not looking to do a 100% automatic mixer, that would be really boring to use. 

But if you can make the beat detection version available then i will try to implement them myself .

I was going to start with the beat detection, but since you have one almost finished i think i will wait for yours.

ken

  • Posts: 733
Re: BASS .NET API 2.2.0.8 !
« Reply #11 on: 19 Dec '05 - 07:44 »
Beat detection is nice! How about plotting the beats on the waveform.


radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.9 !
« Reply #12 on: 21 Dec '05 - 00:32 »
The new BPMCounter class and how it works:

Just before we start:
a) Automated Mixing of multiple source and Pitch calculation is up to you!
b) Plotting of detected beats in a Waveform is also up to you!
-> However both should be possible ... and you also need to do some work ;-)

The new BPMCounter class provides general methods to detect beats live in an audio signal and to calculate the resulting Beats Per Minute (BPM).

The BPMCounter class is an internal implementation of the BASS .NET API and does not require any additional extension or add-on to the BASS audio library, meaning only bass.dll is required.

Internally the algo is based on human ear simulation - meaning an average energy history of 1 second is used, since this is what the human ear can keep - so the BPM results might change and vary more often as with systems scanning the whole file or bigger parts of it. The advantage is therefore that this system might be used with live data and has a fast reaction time of about 1 second only - like our human ear.

So there is a valid reason, that this BPMCounter lives next to the great work JOBnik has done in it's BASS_FX add-on.
So this is not intended to replace it!!!


The typical use of this class is as followed:

a) create an instance of this class (e.g. at the beginning of your application)

b) use a timer callback (e.g. every 20ms or every 25ms) to process the audio signal (the timer frequency must be specified when creating the class instance).

c) in the timer callback call ProcessAudio to detect a beat.

d) retrieve the BPM propertiy to get the calculated Beats Per Minute value.

You should call the Reset method whenever you play another stream or if the returned BPM looks completely wrong.

There are also methods to calculate the BPM manually using a TAP click button. E.g. call TapBeat on a mouse click event to tap (set) a beat manually and call TappedBPM to retrieve the manually tapped BPM value.

Beat detection is a very very complex task and it is almost impossible to implement it matching for any kind of audio signal. So please note, that it might NOT work with all tracks in the same way - with some tracks it might return really bad results. This implementation is a 'simple' one (not needing too much CPU power). It is based on instant energy calculation on 128 frequency bands and comparing them with it's average engery for that band. The variation of the energy of each frequency band is used as a dynamic sensitivity factor. The peak detector uses an attack time of 0ms and there is a dynamic release envelop for the release time - plus we have a Schmitt triggers and a rising edge detectors implemented for each frequency band. The low pass frequency has a fixed value of 350Hz (for detecting bass drums) and the mid range frequency is set to be between 1500Hz and 4000Hz (to detect e.g. snare drums). This to calculate an overall trigger value for all frequency bands. Finally there is a Schmitt trigger again to detect the final beat for each call to the audio signal processing.

You might notice, that often more beats are detected as you would recognize them with your ear (when doing manual tapping). These are intermediate beats or simply lound noise in the signal (which the algo did not filter good enough). So the BPM calculation uses a time spotting approximation to determine when a beat is a good beat to count. 'No-good' beats are simply not counted. So it sometimes might take some time until the live BPM value reaches a good value!

The default BPM value range is between 60 and 180 BPM. But this might be changed using the MinBPM or MaxBPM properties.

Note: 1 BPM is worth about 5ms (at 120BMP) - or in other words: if your timer intervall differs in 5ms the resulting BPM might have a difference of about 1 BPM. Therefor we use a BPM history buffer which we interleave and calculate the average to equalize this effect.

The BPM results are not equally good for all music tracks and genres. However, beat detection and BPM calculation is mostly needed for DJ applications with music having mostly clear and distinct beats and for this kind of music the class produces very good results. Also keep in mind, that when working with highly compressed or equalized tracks (e.g. badly encoded MP3 tracks) the quality might also suffer - so for best results use good audio material.

Have FUN - and let me know if it is useful...

« Last Edit: 21 Dec '05 - 00:35 by radio42 »

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.10 !
« Reply #13 on: 9 Jan '06 - 22:39 »
09.01.2006: Version 2.2.0.10 is out!

- Updated to support BASSWMA 2.2.0.6.
- Bass.BASSRecordFormat enumeration enhanced.
- New converter methods Utils.SampleTo... added
- New Misc.WaveWriter class for saving streams as wave files.
- Upgrade to support BASS_WADSP 2.2.0.3.


big_gun

  • Posts: 352
Re: BASS .NET API 2.2.0.10 !
« Reply #14 on: 13 Jan '06 - 16:27 »
There's a bug in version 2.2.0.10 (.net 1.1 and maybe 2.0).

Here's my code:

Code: [Select]
                If Un4seen.Bass.AddOn.Tags.BassTags.BASS_TAG_GetFromFile(StreamChan, TI) Then
                    Artist = TI.artist.ToString
                    Title = TI.title.ToString
                    Genre = TI.genre.ToString
                    Comment = TI.comment.ToString
                    TrkYear = TI.year.ToString
                    Album = TI.album.ToString

The genre is supposed to be "Big Band" but it ends up as "BigBand". Same for "Top 40" ends up being "Top40". The code you are using must be removing the spaces in the genres.

Thanks,

Rick

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.10 !
« Reply #15 on: 13 Jan '06 - 23:45 »
Hi,

no, I'm not stripping any spaces.
I guess the MP3 you are looking at has only ID3v1-Tags.
And ID3v1 has only a Genre-ID (numeric value) instead of a full Genre-Name (like in ID3v2 where it is a real string tag).
So what I do is, I do map the ID3v1-Genre-ID to an internal name (string) here.
And all ID3v1-Genre-IDs are enumerated strings in BASS .NET and they are not having any spaces in their names - guess that's what happening.
Other examples whould be:
NativeAmerican = 64
InstrumentalPop = 46
ClassicRock = 1
...
The problem goes with the fact, that there is no real official Genre-ID-List available, except from ID3.org (but Winamp has added around 70 - which I also included). But in some lists the names are seperated, some are not seperated...etc.

So I decided for a list without spaces ;-)



radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.10 !
« Reply #16 on: 13 Jan '06 - 23:49 »
To ALL,

BASS .NET API v2.2.0.10 works fine with BASS 2.2.0.3 !!!

The BASS .NET doc still states 2.2.0.2, but there was no API change in 2.2.0.3, so I did want to build a new version just for updating the doc ;-)

KayCee

  • Posts: 37
Re: BASS .NET API 2.2.0.10 !
« Reply #17 on: 16 Jan '06 - 01:45 »
Where are all the samples you told me about, specifically the encoder examples for dot net.  I have checked both archives and neither of the solutions contain an encoder example, showing how to record from the soundcard and encode to an mp3 buffer.

Your assistance on this matter would be greatly appreciated.

Ken

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.10 !
« Reply #18 on: 16 Jan '06 - 10:37 »
When you have installed BASS .NET...go to your installation folder...and take a look at the "Samples" sub-directory.

Encoder examples are included in the following samples:
CS:
- Encoder
VB:
- AudioJoiner

Nick K.

  • Guest
Re: BASS .NET API 2.2.0.10 !
« Reply #19 on: 19 Jan '06 - 20:52 »
Hi radio42,

I was using your API successfully under VS2003/.NET 1.1.  However, I migrated my code to VS2005, downloaded the API for .NET 2.0, and get a BadImageFormatException whenever I make a call.

This occurs when I run your samples as well.

Any clues as to what might be causing this? ???

Thanks, Nick

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.10 !
« Reply #20 on: 20 Jan '06 - 15:05 »
Hi Nick,

normally a "System.BadImageFormatException" is indicating that the file image of an executable program is invalid or the application is not a managed assembly.

So, there could be various reasons:
a) some files got corrupted (eg. during download or install)
a) the file image gets corrupted during runtime due to a memory failure
c) you are running a .Net 1.1 lib against a .Net 2.0 environment (the VS2005 beta had some bugs here!)
d) You've tried to load an assembly built against a newer version of the CLR than was running.

So I assume either c) or d) is your problem!

So make sure (when using the samples):
1. that the referenced BASS .NET API version is matching your CLR (eg. .Net 2.0)
    -> maybe due to your conversion you need to replace the BASS .NET API library reference
2. when starting an application (runtime) that really the .Net 2.0 CLR is loaded and not the old .Net 1.1

Here is nice article about it:
http://blogs.msdn.com/suzcook/

So I bet you have some mixed projects, e.g. referencing a BASS .NET API 1.0 lib in a VS2005 project...
« Last Edit: 20 Jan '06 - 15:48 by radio42 »

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.11 !
« Reply #21 on: 18 Feb '06 - 20:57 »
BASS .NET API version 2.2.0.11:

What has changed added?
- we support all the latest Bass and Add-On versions!

And we added full native Tag support to the internal Un4seen.Bass.AddOn.Tags namespace.
This includes reading any pictures from the tags - which currently works for all ID3v2 and WMA tagged files.

So the TAG_INFO class now has the following new properties/methods:

/// <summary>
/// Returns the number of pictures which are available.
/// </summary>
/// <remarks>Pictures are only available for ID3v2 and WMA tags.</remarks>
int PictureCount

/// <summary>
/// Returns a picture image.
/// </summary>
/// <param name="i">The zero-based index (number) of the picture to get.</param>
/// <returns>The image of the picture on success or NULL if no picture is available (at that index).</returns>
Image PictureGetImage(int i)

/// <summary>
/// Returns the description of a picture.
/// </summary>
/// <param name="i">The zero-based index (number) of the picture to access.</param>
/// <returns>The description of the picture on success or NULL if no picture is available.</returns>
string PictureGetDescription(int i)

/// <summary>
/// Returns the type of the picture.
/// </summary>
/// <param name="i">The zero-based index (number) of the picture to access.</param>
/// <returns>The type of the picture on success or NULL if no picture is available (at that index).</returns>
string PictureGetType(int i)

/// <summary>
/// Returns all native text tags.
/// </summary>
/// <returns>A string array containing all native tags as being gathered.</returns>
string[] NativeTags

/// <summary>
/// Returns a certain native tag.
/// </summary>
/// <param name="tagname">The name of the native tag to retrieve (case-sensitive!) - e.g. use "TPE1" to query for the artist of ID3v2 tags.</param>
/// <returns>The value of the tag or NULL if tag with that name could be found.</returns>
/// <remarks>If multiple tags with the same name do exist, only the first tag value will be returned.</remarks>
string NativeTag(string tagname)

cablehead

  • Posts: 305
Re: BASS .NET API 2.2.0.11 !
« Reply #22 on: 18 Feb '06 - 23:33 »
Do you recommend uninstalling .10 first? Or just installing .11 over it?

veetid

  • Posts: 71
Re: BASS .NET API 2.2.0.11 !
« Reply #23 on: 19 Feb '06 - 01:04 »
Is it available for download anywhere yet?

thanks,
veetid

radio42

  • Posts: 4522
Re: BASS .NET API 2.2.0.11 !
« Reply #24 on: 19 Feb '06 - 08:43 »
yes, it is already there - Ian just needs to change the web.

and Yes, you can installing over any other version without problems.