1. Can I use Bass to record a line in instrument and is it a complex task to do it using the .Net library
To confirm, you want to record the sound from an instrument that is plugged into the soundcard's line-in? If so, yes, that is possible with BASS. If you want to record to a file, you can also use the BASSenc add-on for that. I'm not a .Net user myself, but in C/C++, the basic code could look something like this...
BASS_RecordInit(...); // initialize a recording device
hrecord=BASS_RecordStart(44100, 2, BASS_RECORD_PAUSE, RecordProc,0); // start recording from it (paused)
BASS_Encode_Start(hrecord, "output.wav", BASS_ENCODE_PCM|BASS_ENCODE_AUTOFREE, 0, 0); // set a WAVE writer on the recording
BASS_ChannelPlay(hrecord, 0); // unpause the recording
...
BASS_ChannelStop(hrecord); // stop the recording (and the WAVE writing due to AUTOFREE)
...
// recording callback function
BOOL CALLBACK RecordProc(HRECORD handle, const void *buffer, DWORD length, void *user)
{
return BASS_Encode_IsActive(handle); // continue recording if the WAVE writer is alive
}
Please see the documentation for details on the aforementioned functions.
2. Can I use bass to detect the tempo of the recording ?.
You could use the BASS_FX add-on to do that. Lookup the BASS_FX_BPM_CallbackSet function.