News:

SMF - Just Installed!

Main Menu

Recent posts

#1
Hello,

the default algorithm for automatic BPM detection, the one that reports current song BPM through the BPMAvailable event, is based upon the SoundTouch open source library and it's actually certainly not optimized for all of the genres and should be mainly used with techno and disco music; anyway keep in mind that sometime this kind of algorithms can detect a x2 so there could be the need to divide the result by 2 as probably in your case.

We have also another undocumented algorithm which can be invoked by calling the undocumented method BpmDetectionTypeSet passing "1" (without quotes) as parameter: you could try to see if you obtain better results with this algo.

You can in any case upload the song file for evaluation to our FTP server:
ftp server: ftp.mmsoftlabs.com
username: myguest@multimediasoft.com
password: GwDu{#u)&4z9

Once uploaded, please, send me a note so I will download it.

Kind regards

Severino Delaurenti
MultiMedia Soft
#2
Audio playback and audio management components / BPM Incorrect Value
Last post by pcuevas - January 06, 2025, 12:09:13 AM
Most of the songs I tested return an incorrect BPM value during the BPMAvailable event. Is there anything additional I can do to improve the accuracy before retrieving the BPM value?

How can I send a song file with a BPM of 93, but it returns 186 BPM?
#3
Hello again,

a possible solution to your problem, allowing to operate as a source for multiple mount points from a single application, would be to avoid using the WASAPI protocol and to use the default DirectSound protocol, allowing to create multiple custom stream mixers and to cast each of them to a separate mount point.

For this purpose we have created a small sample which shows how to operate; you can download it from the link below:
https://www.multimediasoft.com/tmp/Sample.zip

Before using this sample it's recommended that you download and replace again the multimedia engine in order to avoid a small bug that was found while creating the sample.

Hope this helps.

Kind Regards

Severino Delaurenti
MultiMedia Soft



#4
Hello,

thanks for your feedback.

It's likely that you are not using the stream mixer and the casting in the correct way: when using WASAPI, a single stream mixer, in this case the internal stream mixer that serves as the output of the sound card, can only serve one casting (mount point) at a time: if you use the same stream mixer for more mount points, only the last one will effectively work. This behaviour is by design.

As you noticed, this doesn't happen when using a player so you could have more than one player, each linked to a different casting session.

Kind Regards

Severino Delaurenti
MultiMedia Soft

#5
Hi,

After replacing the program, the issue no longer occurs. Thank you. However, I have discovered another problem that existed even before the update.

When using "CastingCreateFromStreamMixer" to generate encoded streams and connect to the same or different "Icecast Servers" with different MountPoint Names, only the last MountPoint remains on the "Icecast server", and all others disappear. I slightly modified the WasapiMixAndClone sample program as follows:

For i = 0 To 3
    Dim mp As String = frmShoutcast.TextMountName.Text.Trim & "." & i.ToString

    ' create and intialize casting
    m_nCastingUniqueID = m_audioDjAPI.CastingCreateFromStreamMixer(m_nStreamMixerUniqueID, frmShoutcast.TextServerAddress.Text, frmShoutcast.TextPwd.Text, mp, nFormat, frmShoutcast.TextStreamName.Text, frmShoutcast.TextUrl.Text, frmShoutcast.TextGenre.Text, "", frmShoutcast.TextDescription.Text, nEncodeMode, fEncodeValue, 44100, 2)

    ' check if casting was intialized correctly
    If m_nCastingUniqueID = 0 Then
       CheckConnection.Checked = False
       CheckConnection.Text = "Connect"
       MessageBox.Show("Cannot create casting due to the following error " & m_audioDjAPI.LastError.ToString())
       Return
    End If
    .
    .
    .same codes
    . 
    .
 Next

When connect to Icecast, each MountPoint can be seen on the Icecast2 Status management webpage. However, when trying to listen by entering the URL, a '404 - The file you requested could not be found' error appears, and then the MountPoint disappears from the Icecast2 Status management webpage.

This phenomenon only occurs with CastingCreateFromStreamMixer, but not with CastingCreateFromPlayer."

Any idea?

Terry
#6
Hello again,

after further investigation we have found the nature of the original issue and we have reverted the code in order to use again the internal encoders for casting purposes so there would be no more need to use an external encoder: we suggest to download again the multimedia engine, using previously provided URLs, and see if the new build fixes the problem on your side as well.

It would be very kind of you if you could report us if the updated version is enough to fix the reported issue.

Kind Regards

Severino Delaurenti
MultiMedia Soft
#7
Hello,

as recommended inside the documentation tutorial "How to use the control as a source for streaming servers like SHOUTcast" https://www.multimediasoft.com/adjstudnetapi/help/adjstudnet_000076.htm
and inside the section "Files to be included with your application"
https://www.multimediasoft.com/adjstudnetapi/help/adjstudnet_000002.htm
in order to encode certain formats (like MP3) for ShoutCast and Icecast servers there is the need of an external encoder (Lame.exe, etc.).

It must be remarked that inside the previous versions we tried to use an internal encoder that seemed to work well but, unfortunately, it seems to give the problem you reported so we reverted back the behaviour to the usage of the external encoders as specified inside the documentation while we will investigate the problem further.

A copy of the needed encoders should be already available inside the "\Windows\System32" folder of the PC where you originally installed our setup package.

Hope this helps

Kind Regards

Severino Delaurenti
MultiMedia Soft
#8
Hi,

I have replaced AdjMmsEng64.dll and AdjMmsEng.dll(ver. 14.4.5.2), but the connection shows an 'ERR_ENCODER_NOT_AVAILABLE' error message. Reverting to the previous version (ver. 14.4.5.1) works fine. All sample programs related to casting show the same error.

Terry
Thank you.
#9
Hello,

we have been able to replicate the issue so we made a slight modification to our engine. You can get the latest build of the multimedia engine from the link below:

https://www.multimediasoft.com/bins/AdjMmsEng14.zip
and you can use it to replace existing instances on your PC under the following folders:
* C:\Program Files\MultiMedia Soft\Audio Sound Suite API for .NET\Audio DJ Studio API for .NET\Redist
* C:\Program Files\MultiMedia Soft\Audio Sound Suite API for .NET\Audio Sound Recorder API for .NET\Redist
* C:\Program Files\MultiMedia Soft\Audio Sound Suite API for .NET\Audio Sound Editor API for .NET\Redist
* If your machine has a x86 version of Windows
  - C:\Windows\System32
* If your machine has a x64 version of Windows
  - C:\Windows\SysWOW64

The x64 version is available as well on the link below:
https://www.multimediasoft.com/bins/AdjMmsEng14_64.zip
and you can use it to replace existing instances on your PC under the following folders:
* C:\Program Files\MultiMedia Soft\Audio Sound Suite API for .NET\Audio DJ Studio API for .NET\Redist
* C:\Program Files\MultiMedia Soft\Audio Sound Suite API for .NET\Audio Sound Recorder API for .NET\Redist
* C:\Program Files\MultiMedia Soft\Audio Sound Suite API for .NET\Audio Sound Editor API for .NET\Redist
* If your machine has a x64 version of Windows
  - C:\Windows\System32

It would be very kind of you if you could report us if the updated version is enough to fix the reported issue.

Kind Regards

Severino Delaurenti
MultiMedia Soft
#10
Hi,

I have already adjusted it to 96 K, but the situation remains the same.

Terry