Author Topic: BASS.NET API 2.4.17.5  (Read 1134333 times)

pern

  • Posts: 27
Re: BASS .NET API 2.2.0.14 !
« Reply #50 on: 15 May '06 - 20:27 »
Any news on these ;-)

BPMCounter class:

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

radio42

  • Posts: 4840
Re: BASS .NET API 2.2.0.14 !
« Reply #51 on: 16 May '06 - 08:14 »
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

  • Posts: 4840
Re: BASS .NET API 2.3.0.0 !
« Reply #52 on: 22 May '06 - 17:19 »
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

  • Posts: 4840
Re: BASS .NET API 2.3.0.1 !
« Reply #53 on: 22 May '06 - 22:01 »
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

  • Posts: 4840
Re: BASS .NET API 2.3.0.2 !
« Reply #54 on: 12 Jun '06 - 23:34 »
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

  • Posts: 6
Re: BASS .NET API 2.3.0.2 !
« Reply #55 on: 13 Jun '06 - 23:26 »
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

  • Posts: 4840
Re: BASS .NET API 2.3.0.2 !
« Reply #56 on: 14 Jun '06 - 08:31 »
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

  • Posts: 6
Re: BASS .NET API 2.3.0.2 !
« Reply #57 on: 14 Jun '06 - 08:44 »
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
That's exactly what I need. Thanks in advance :D

Regards,
Thomas

pern

  • Posts: 27
Re: BASS .NET API 2.3.0.2 !
« Reply #58 on: 26 Jun '06 - 14:03 »
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

  • Guest
Re: BASS .NET API 2.2.0.14 !
« Reply #59 on: 30 Jun '06 - 11:15 »
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?

radio42

  • Posts: 4840
Re: BASS .NET API 2.3.0.2 !
« Reply #60 on: 30 Jun '06 - 11:31 »
You might use the BASSmix add-on and attach all 5 streams to the same mixer (created with BASSmix).
Then it is possible to have a DSP and/or an encoder on that mixer channel (which is the sum of all 5 inputs of the mixer) to encode to OGG.

radio42

  • Posts: 4840
Re: BASS .NET API 2.3.0.2 !
« Reply #61 on: 13 Jul '06 - 15:48 »
13.07.2006: Version 2.3.0.3 is out!

BASS_CD upgrade to 2.3.0.1.
. Pregap length retrieval via BASS_CD_GetTrackPregap
. MusicBrainz ID generation via BASS_CDID_MUSICBRAINZ (BASS_CD_GetID type)

New BASS.NET internal features (in the Un4seen.Bass.Misc namespace):
1) DSP framework introduced:
    . see BaseDSP
    . with ready-made DSP implementations, e.g.:  DSP_PeakLevelMeter, DSP_Gain
2) Encoder framework introduced:
    . see IBaseEncoder and BaseEncoder
    . with ready-made encoder implementations, e.g.: EncoderLAME, EncoderWMA, EncoderOGG,
      EncoderACM, EncoderCMDLN, EncoderWinampAACplus, EncoderNeroAAC, EncoderTooLAME
    . the encoder framework can also be used to implement your own encoders
    . Encoder implementations can be used for Recording, Streaming or File encoding.
3) Streaming Server framework introduced:
    . see IStreamingServer and StreamingServer (which uses any IBaseEncoder implementation)
    . with ready-made streaming server implementations, e.g.: SHOUTcast, ICEcast, WMAcast
    . the streaming framework can also be used to implement your own servers
4) Generic BroadCast class introduced (used to handle central broadcasting):
    . supporting any IStreamingServer implementation
5) New C# sample "Streaming " added to demo the above.

All method overloads which previously implemented ANSI filenames have been changed to now also automatically implement Unicode filenames - since .Net will never be using any ANSI file name strings internally. So you don't have to care about ANSI/Unicode overloads anymore!

Plus:
Here are two compact versions (if you don't want the full installer version - only recommended for pro-users!)
- Bass23.Net11_compact.zip
- Bass23.Net20_compact.zip
These files simply contain:
- Bass.Net.dll
- Bass.Net.xml
- Bass.Net.chm

ken

  • Posts: 752
Re: BASS .NET API 2.3.0.3 !
« Reply #62 on: 15 Jul '06 - 15:52 »
Hi!

Is is possible with the latest .NET API to do like this:

LINE IN -> WinAmp DSP -> (1) -> Shoutcast (mp3)
                                     (2) - > Shoutcast (Acc)
                                     (3) -> WMA stream

Just like the Streaming example, but with a WinAmp DSP before encoder and several streaming encoders at the same time running to different servers.



radio42

  • Posts: 4840
Re: BASS .NET API 2.3.0.3 !
« Reply #63 on: 17 Jul '06 - 09:45 »
Yes, you still can use any WinampDSP if you want.
The new BASS.NET encoder classes use the standard BASS encoder priority, with is -1000.
So if you want to add any Winamp DSP upfront, simply use a higher priority (e.g. 0).

In order to stream to multiple servers you simply need to create:
3 x encoder instance (e.g. EcoderLAME, EncoderWinampAACplus, EncoderWMA)
3 x streaming server instance (e.g. 2x SHOUTcast, 1xWMAcast)
3 x instance of the BroadCast class

The 3 BroadCast instances will then use the specified StreamingServer instances, which then will use the specified encoder instances.


radio42

  • Posts: 4840
Re: BASS .NET API 2.3.0.4 !
« Reply #64 on: 26 Jul '06 - 16:38 »
26.07.2006: Version 2.3.0.4 is out!

Just optimizations and internal enhancements.
Utils:
1) new BASSTimer class added (behaves like a Windows.Forms.Timer but uses a Threading.Timer)
    It is recommended to use this timer within your app when needed, since it is more precise.
2) new Utils.GetLevel methods added (equivalent to BASS_ChannelGetLevel, but with individual offset and length.
3) new Utils.SampleDither method added.
WaveForm:
1) RenderRecording revisited and new overloads added.
2) new SyncPlayback method added.
DSP framework:
1) DSP_Gain revisited and a UseDithering property added

-----
Here are two compact versions (if you don't want the full installer version - only recommended for pro-users!)
- Bass23.Net11_compact.zip
- Bass23.Net20_compact.zip

radio42

  • Posts: 4840
Re: BASS .NET API 2.3.0.5 !
« Reply #65 on: 28 Aug '06 - 20:41 »
28.08.2006: Version 2.3.0.5 is out!!

Loads of BASS.NET internal additions :-) Highlights are in bold:

DSP Framework enhanced, new DSPs added:
1) new DSP_Pan, DSP_Mono, DSP_StereoEnhancer, DSP_IIRDelay, DSP_SoftSaturation
2) new DSP_Stacker added (allowing you to stack multiple DSPs into one physical BASS DSP routine)
3) new DSP_StreamCopy added (allowing you to clone a stream to any other BASS device or speakers)
4) DSP_PeakLevelMeter: new UpdateTime member added
5) new C# sample TestDSP added

Utils:
1) new BASSBuffer class added (generic cyrcular ring buffer)
2) new MakeLong, HighWord, LowWord overloads, new MakeLong64 method added
3) new GetLevel and GetLevel2 overloads, new SampleDither method

WaveForm:
1) drawing optimized
2) new WaveForm2 class added (independend stereo wave form drawing)
3) new property MarkerLength added
4) new envelope drawing (see ColorEnvelope)

Visuals: new method CreateWaveForm added

BassAsio:
1) new BassAsioHandler class added (ease-of use ASIO handling)
2) new BASS_ASIO_IsStarted() method added

Upgrade supporting BASS_VIS 2.3.0.2:
. changed BASS_WINAMPVIS_CreateVis method
. changed BASS_WINAMPVIS_SetChanInfo method
. new BASS_WINAMPVIS_SetChanMPEGInfo method
. new BASS_WINAMPVIS_GetVisHwnd method added
. new BASS_WINAMPVIS_GetAmpHwnd method added
. new BASS_WINAMPVIS_GetGenHwnd method added


ken

  • Posts: 752
Re: BASS .NET API 2.3.0.5 !
« Reply #66 on: 29 Aug '06 - 16:15 »
Hi!

Just downloaded 2.3.0.5, but NET 2.0 is stil version 2.3.0.4, v1.1 is 2.3.0.5...

/Ken

radio42

  • Posts: 4840
Re: BASS .NET API 2.3.0.5 !
« Reply #67 on: 29 Aug '06 - 17:17 »
THX - maybe something went wrong with the upload.
i will upload the 2.3.0.5 for .Net20 in a couple of minutes again!

radio42

  • Posts: 4840
Re: BASS .NET API 2.3.0.5 !
« Reply #68 on: 29 Aug '06 - 18:05 »
The (re)upload is done!
So now the BASS.NET API v2.3.0.5. should also be available for .Net20 !!!

ken

  • Posts: 752
Re: BASS .NET API 2.3.0.5 !
« Reply #69 on: 31 Aug '06 - 16:52 »
Hi!

I trie to run several Streaming Encoders on one recorder.

Recorder->WinAmpDSP> Decoder.
                               > Decoder2...


I run each "encoder" in it's own class, and pass the streamID from recorder. It works just fine when running one encoder. But when loading another instance of the encoderclass I get error:

So can I have several instance of a encoder on "one recorder"

In each encoder class I have a  IBaseEncoder , IStreamingServer and BroadCast. Basicly your streaming example but the "recorder" is in its own class.


Error:

A callback was made on a garbage collected delegate of type 'Bass.Net!Un4seen.Bass.RECORDPROC::Invoke'. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.

ken

  • Posts: 752
Re: BASS .NET API 2.3.0.5 !
« Reply #70 on: 31 Aug '06 - 16:54 »
Hi...

Think I solved it... Removed "GC.Collect();" and it works...

ken

  • Posts: 752
Re: BASS .NET API 2.3.0.5 !
« Reply #71 on: 31 Aug '06 - 21:48 »
Hi!

Well I get the CG error sometimes after a while running the app. Don't know if it's you EncoderClasses that don't like to be wrapped into a new class. I'm running VS 2005. And .NET 20 is more senitive to invoke calls than 1.1 is.

A callback was made on a garbage collected delegate of type 'Bass.Net!Un4seen.Bass.RECORDPROC::Invoke'. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.

big_gun

  • Posts: 353
Re: BASS .NET API 2.3.0.5 !
« Reply #72 on: 1 Sep '06 - 09:07 »
Radio42, I'd like to ask for a new feature in the Un4Seen.Bass.Misc.WaveForm class.

You currently have the ability to save/load the wavebuffer to a file by binary serialization. I'd like the ability to serialize/deserialize it myself and pass it to the waveform class. For example:
Code: [Select]
Dim wb as WaveBuffer = GetWaveBufferFromSomewhere()
waveform1.WaveFormLoadFromObject(wb)
or this code
Code: [Select]
Dim wb as WaveBuffer = GetWaveBufferFromSomewhere()
waveform1.WaveBuffer = wb

As it stands now, I have to serialize it, then save to file, then load from file in your class in order to save it to memory or a class or a database.

Thanks,

Rick

radio42

  • Posts: 4840
Re: BASS .NET API 2.3.0.5 !
« Reply #73 on: 1 Sep '06 - 14:18 »
Oki, I see, jepp, thats a nice feature...will add it to the next version.

I have three possibilities is mind:

a) Add a constructor overload to the WaveForm class acepting a "WaveBuffer"
    -> which can be used with a "Wave" property value

b) allowing to serialize the "Wave" property to a MemoryStream

c) allowing to deserialize from a MemoryStream


P.S:
Same would apply to the new WaveForm2 class !

big_gun

  • Posts: 353
Re: BASS .NET API 2.3.0.5 !
« Reply #74 on: 2 Sep '06 - 15:03 »
After examining the problem for the last several days, just make the "Wave" Property of the waveform and waveform2 a read/write property,and not just read only. that will solve the problem.

Once the property is wrote to, consider it rendering finished.

Rick