|
StartSplitFromAsioDevice method |
![]() ![]()
|
Remarks
Starts a recording session getting sound data from two input channels of the given ASIO device and splits incoming sound in left and right channels.
Calling this method will cause the control to fire a RecordingStarted event. The recording session can be stopped at any time through a call to the Stop method.
In this case the recording session wouldn't be kept inside the RecordedSound object so the only accepted recording mode, set through the SetRecordingMode method, is REC_MODE_NEW.
Limitations to encoding capabilities when splitting the recording session
If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_WMA, the only supported encoding mode for the EncodeFormats.WMA.EncodeMode property is WMA_ENCODE_CBR_STD_16 and the WMA.CBR property must be set to a value that can support both stereo and mono, so the only compatible combinations are the following:
If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_WAV, the splitting will only work if the EncodeFormats.WAV.EncodeMode property is set to a format supporting both mono and stereo formats meaning that, for example, it will not work for mono-only formats like WAV_ENCODE_GSM_610 or WAV_ENCODE_G721_ADPCM_32.
If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_AIFF, the splitting will only work if the EncodeFormats.AIFF.EncodeMode property is set to a format supporting both mono and stereo formats meaning that, for example, it will not work for mono-only formats like AIFF_ENCODE_GSM_610.
If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_AU, the splitting will only work if the EncodeFormats.AU.EncodeMode property is set to a format supporting both mono and stereo formats meaning that, for example, it will not work for mono-only formats like AU_ENCODE_G721_ADPCM_32 or AU_ENCODE_G723_ADPCM_24 or AU_ENCODE_G723_ADPCM_40.
If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_ACM, the splitting will only work if the selected codec supports both mono and stereo formats meaning that, for example, it will not work for mono-only codecs like GSM 6.10 or G721 ADPCM.
The split doesn't work if the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_AAC because this format doesn't support creating mono sounds.
When the stereo recording session is encoded in MP3, Ogg Vorbis or Opus audio formats, respective external encoders (Lame, OggEnc and OpusEnc) must be available on the target system because internal encoders cannot manage the "downmix" to mono of the split channels. |
For details about the encoding format and parameters applied during recording see the How to perform a recording session section.
For further details about the use of ASIO drivers see the ASIOMan class and the How to manage ASIO drivers tutorial.
Syntax
[Visual Basic] Public Function StartSplitFromAsioDevice ( nDeviceIndex as Int32, nFirstChannel as Int16, strOutputPathLeft as String, strOutputPathRight as String ) as enumErrorCodes |
[C#] public enumErrorCodes StartSplitFromAsioDevice ( Int32 nDeviceIndex, Int16 nFirstChannel, string strOutputPathLeft, string strOutputPathRight ); |
[C++] public: enumErrorCodes StartSplitFromAsioDevice ( Int32 nDeviceIndex, Int16 nFirstChannel, string strOutputPathLeft, string strOutputPathRight ); |
Parameter |
Description |
|
|
nDeviceIndex |
Number representing the zero-based index of the ASIO device that will be used for recording. Use the value returned by the ASIO.DeviceGetCount method in order to know how many ASIO devices are currently installed inside the system and the ASIO.DeviceGetDesc method in order to retrieve the friendly name of each ASIO device. |
nFirstChannel |
Number representing the zero-based index of the first input channel to attach to the recorder |
strOutputPathLeft |
String representing the absolute pathname of the destination file that will contain the left channel of recorded data. If this pathname should contain invalid characters, they would be automatically changed into an underscore '_' character. |
strOutputPathRight |
String representing the absolute pathname of the destination file that will contain the right channel of recorded data. If this pathname should contain invalid characters, they would be automatically changed into an underscore '_' character. |
Return value
Value |
Meaning |
|
|
Negative value |
An error occurred. Check the LastError property value in order to see the last error. |
enumErrorCodes.ERR_NOERROR (0) |
The method call was successful. |