BASS.NET API 2.4.18.2

Started by radio42,

Renegade

Quote from: radio42...
- Misc.Visuals enhanced: new methods GetFrequencyFromPosX and GetAmplitudeFromPosY added.
...

Hey! That's not fair! You're not allowed to read my mind!  ;)

Thanks Bernd! That's exactly what I wanted.  :)

pern

Just a question if i can do this with your C# API:

I'm building a Sound to light / Light Chaser controller and i want to controll it from a C# program.

So what i need is

1: Bass beat extractor to trigg the chaser.
2: Sound to light - Volume extraction for four bands : Bass, Middle 1, middle 2, and treble.

Is this possible ?

radio42

Yes, I think all you described is possible.
But all that is possible via BASS - BASS.NET is only the C# wrapper ;-)

The only thing which you might find useful in addition is the beat detection via the BASS.NET "Misc.BPMCounter"class, which only exists in BASS.NET...

Regarding the Volume extraction for four bands this could easily be done via BASS_ChannelGetData and receiving FFT sample...some manual analysation is hence still required on your side ;-)

pern

Thanks ,

Is the Volume extraction something you are planning ??

Like :  FromFreq - ToFreq  ,  returns: avg value (And Max value? )

radio42

It is all there already in BASS...take a look to the FFT data in BASS_ChannelGetData(...)

And you'll have in BASS.NET a "Utils" class with methods which helps you to convert an FFT index to frequency etc.

James

Does anyone have a simple example of taking a byte[] of wav audio and downsampling from one sample rate to another, changing from stereo to mono ,and outputting to a new byte[] ?

many thanks in advance

radio42

For downsampling you might also use BASSMix which supports changing the samplerate as well as converting from stereo to mono (e.g. via the new Matrix Mixing function).

pern

I have now tested the BPMCounter class a little bit, it would be great to be able to:

- Set a fixed release time as an option.
- Select Low Pass detection only.

Any chance for adding these ?

radio42

pern

Thanks ;-)

If you need beta-testing of it, just let me know.

pern

Any news on these ;-)

BPMCounter class:

- Set a fixed release time as an option.
- Select Low Pass detection only.
 

radio42

Nop not really.
Was currently buisy with porting all to the new BASS 2.3 version, which will be released soon....

So this could be the next thing to do...but will probably be in a minor version after 2.3 had been released.

radio42

21.05.2006: Version 2.3.0.0 is out !

Upgrade to BASS 2.3.0.0.
-Docs updated, Samples updated.
- BASS_GetVersion : The format of the return value has been changed, to include the minor revision.
- BASS_StreamGetTags: This function is replaced by BASS_ChannelGetTags.
- No parameter changes are required.
- BASS_MusicGetName replaced by BASS_ChannelGetTags.
- New methods: BASS_ChannelGetMusicName, BASS_ChannelGetMusicMessage, BASS_ChannelGetMusicInstrument, BASS_ChannelGetMusicSample.
- BASS_CHANNELINFO structure: 'plugin' member added.
- BASS_INFO structure: 'freq' member added.
- BASS_RECORDINFO structure: 'freq' member added.
- BASS_SAMPLE structure: 'mingap' member added.
- Optional use of the Windows MP3 codec: BASS_CONFIG_MP3_CODEC (BASS_SetConfig option)
- BassTag class now also evaluating RIFF and MOD stream channels.
- New BASS_Set/GetConfig options: BASS_CONFIG_NET_PROXY, BASS_CONFIG_NET_PASSIVE.
- The BASS_CONFIG_NET_NOPROXY flag is removed.
- New BASSChannelType: BASS_CTYPE_STREAM_WAV_PCM, BASS_CTYPE_STREAM_WAV_FLOAT.
- The BASS_CTYPE_STREAM_WAV flag is now defined as a bitmask (the LoWord contains the codec number).
- New Utils.BASSAddOnGetPluginFileFilter method.

BASSWma updated to 2.3.0.0:
- Plugin system support for URLs: BASS_StreamCreateURL
- BASS_WMA_EncodeSetTag changed ('type' added to support ANSI, UTF-8 and Unicode)
- BASS_CONFIG_WMA_PRECHECK config option is depreciated
- BASS_WMA_GetIWMReader replaced by BASS_WMA_GetWMObject
- Header tag setting automatically ends when encoding begins (BASS_WMA_EncodeSetTag)
- BASS_WMA_ENCODE_TAGS (BASS_WMA_EncodeOpen/etc flag) removed
- Multi-bitrate encoding/broadcasting: 
   BASS_WMA_EncodeOpenNetworkMulti and BASS_WMA_EncodeOpenPublishMulti
- Dynamic loading of WMVCORE (v9 or above required)

BASSEnc updated to 2.3.0.0:
- ACM (Audio Compression Manager) encoding (BASS_Encode_StartACM/File)
- Multiple encoders per channel
- new ENCODEPROC signature (handle parameter added)
- Auto-freeing of the encoder when the channel is freed (BASS_ENCODE_AUTOFREE)
- Configurable encoder DSP priority (BASS_CONFIG_ENCODE_PRIORITY).

Support for BASS_VST 2.3.0.0 added
- see doc (help file) for code examples.

BASSCd updated to 2.3.0.0:
- Adjustable read speed:
  . via BASS_CD_SetSpeed method
  . via BASS_CD_GetSpeed method
- Automatic speed reduction upon read errors:
  . via BASS_CONFIG_CD_AUTOSPEED (BASS_SetConfig option)
  . via BASS_SYNC_CD_SPEED (BASS_ChannelSetSync type)
- Configurable read error retries:
  . via BASS_CONFIG_CD_RETRY (BASS_SetConfig option)
  . via BASS_CONFIG_CD_SKIPERROR (BASS_SetConfig option)
- Error sync now triggered by every read error (not just ending playback)
  . via BASS_SYNC_CD_ERROR (BASS_ChannelSetSync type)

BASS_Fx updated to 2.3.0.0:
- new BASS_FX_DSP_SetParameters overloads
- new BASS_FX_DSP_GetParameters overloads
- new BASS_FX_DSPSWAP, BASS_FX_DSPS2M, BASS_FX_DSPROTATE classes
- flags removed: BASS_FX_TEMPO_QUICKALGO and BASS_FX_TEMPO_NO_AAFILTER
- Added multi-channel support for almost all DSPs (DSP classes changed!)
  . Channel flags added (BASSFXChan)
- new BASS_FX_TempoSettingGet and BASS_FX_TempoSettingGet methods
  . TempoSetting flags added (BASSFXTempo)
- Added Real-Time Beat Position Trigger:
  . new callback BPMBEATPROC added
  . to be used with the new BASS_FX_BPM_BeatCallbackSet method

All add-on's updated to 2.3.0.0
- make sure you get the latest versions

radio42

22.05.2006: Version 2.3.0.1 is out!

BASSEnc upgrade to 2.3.0.1.
. new BASS_Encode_GetACMFormat overloads added to support BASS_ACM_SUGGEST.

radio42

16.06.2006: Version 2.3.0.2 is out!

Upgrade to BASS Version 2.3.0.1.
. new BASS_ChannelSetDevice function
BASSWma upgrade to 2.3.0.1.
. ASX file processing via BASS_CONFIG_WMA_ASX (BASS_SetConfig option).
Misc.WaveForm: new features added to enable Marker handling
. see AddMarker, RemoveMarker, ClearAllMarker and GetBytePositionFromX
BASS_FX upgrade to 2.3.0.1.
. no real API changes, just some doc issues for parameter values
BASS_VST upgrade to 2.3.0.4.
. no real API changes, just documentaion adjustments.

-----
Next release will get:
- upgrade to latest Bass changes - as always ;-)
- a new BroadCast class allowing streaming to SHOUTcast and ICEcast

Thömmi

Though you're stating in the readme the reasons why you release Bass.NET as a MSI package, I'd really like to just download a ZIP file. Generally, I'm only interested in bass.net.dll, bass.net.chm, and bass.net.xml. I've no need for putting bass.net into the GAC or integration into VS.NET. Being forced to execute a setup and going to the installation folder to get the desired files is really annoying.  ::)

Regards,
Thomas

radio42

It is always a hassle to decide between Pro-Users and New-Users.
And as you might be a Pro-User I can understand your issue.

A non-install would lead to other downsides:
- no integration of the help system into VisualStudio
- no Assembly registration for VisualStudio
- etc.

From a clean development point of view I sill believe it is a clean way to install BASS.NET like it is today - since otherwise I would receive loads of requests on 'how to install' and 'integrate' BASS.NET into projects from the New-Users.

But I'll think about a "slim package" for Pro-Users, which will then only contain:
- Bass.Net.dll
- Bass.Net.xml
- Bass.Net.chm
- No Samples, no Integration, no other Help system

Thömmi

Quote from: radio42But I'll think about a "slim package" for Pro-Users, which will then only contain:
- Bass.Net.dll
- Bass.Net.xml
- Bass.Net.chm
- No Samples, no Integration, no other Help system
That's exactly what I need. Thanks in advance :D

Regards,
Thomas

pern

Feature request ;-)

BPMCounter class:

- GetFirstBeatPosition
Very useful if you use calculated beats instead of "live" detection.  Then you know where to start and can calculate every beat position in the song.

- Select Low Pass detection only / more variables inc release time.
Option to set how beat detection works would be great. 
 

Dim111

How can I record sound from all playing (active) streams into one file?
For examle, I palaying 5 files at the same time and want to write all BASS output (but not any other windows sounds) to one .OGG file. Is it possible, and what classes I have to use?