This overload implements streaming from memory.
Assembly: Bass.Net (in Bass.Net.dll) Version: 22.214.171.124
public static int BASS_DSD_StreamCreateFile( IntPtr memory, long offset, long length, BASSFlag flags, int freq )
Public Shared Function BASS_DSD_StreamCreateFile ( memory As IntPtr, offset As Long, length As Long, flags As BASSFlag, freq As Integer ) As Integer
- Type: SystemIntPtr
An unmanaged pointer to the memory location as an IntPtr.
- Type: SystemInt64
Offset to begin streaming from (unused for memory streams, set to 0).
- Type: SystemInt64
Data length (needs to be set to the length of the memory streams in bytes which should be played).
- Type: Un4seen.BassBASSFlag
Any combination of these flags: see BASSFlag.
BASS_DSD_DOP Produce DSD-over-PCM data (with 0x05/0xFA markers). DSD-over-PCM data is 24-bit, so the BASS_SAMPLE_FLOAT flag is required. BASS_DSD_RAW Produce raw DSD data instead of PCM. The DSD data is in blocks of 8 bits (1 byte) per-channel with the MSB being first/oldest. DSD data is not playable by BASS, so the BASS_STREAM_DECODE flag is required.
- Type: SystemInt32
Sample rate to convert the DSD data to PCM at... 0 = use the BASS_CONFIG_DSD_FREQ config setting. The rate will be rounded up (or down if there are none higher) to the nearest valid rate; the valid rates are 1/8, 1/16, 1/32, etc of the DSD rate down to a minimum of 44100 Hz. This parameter is ignored when the BASS_DSD_DOP or BASS_DSD_RAW flag is specified.
Return ValueType: Int32
If successful, the new stream's handle is returned, else 0 is returned. Use BASS_ErrorGetCode to get the error code.
All DSD rates (including 48000 Hz variants like 3.072 MHz) with any number of channels are supported, in DSDIFF and DSF containers (DST encoding is not supported). The file's DSD sample rate is available via the BASS_ATTRIB_DSD_RATE attribute.
There are a few types of tag that may be available via BASS_ChannelGetTags. DSDIFF files may include artist and title information, which is available via the BASS_TAG_DSD_ARTIST and BASS_TAG_DSD_TITLE tags, which are ASCII strings. DSDIFF files can also include comments, which are available via the BASS_TAG_DSD_COMMENT+index tag (index=0 is the first comment), which gives a pointer to a BASS_TAG_DSD_COMMENT structure. DSF files may include ID3v2 tags, which are available via the BASS_TAG_ID3V2 tag.
The DSD-over-PCM (BASS_DSD_DOP) and raw DSD data (BASS_DSD_RAW) options allow supporting devices to play the DSD data directly, without converting to PCM. In both cases, the data needs to reach the device unmodified, so there can be no effects/resampling/mixing or anything else that will modify the data. Raw DSD data is playable with ASIO drivers that support DSD, eg. via BASSASIO. DSD-over-PCM data can be sent to a supporting device in any way that does not modify the data. If DSD-over-PCM data is played on a device that doesn't support it, then it will produce a low level noise.
To stream a file from the internet, use BASS_DSD_StreamCreateURL(String, Int32, BASSFlag, DOWNLOADPROC, IntPtr, Int32). To stream from other locations, see BASS_DSD_StreamCreateFileUser(BASSStreamSystem, BASSFlag, BASS_FILEPROCS, IntPtr, Int32).