News:

SMF - Just Installed!

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - PatrickVossen

#1
Hi Severino,

Just downgraded to control 10.1.0.0 / engine 13.6.0.2.
Issue seems to be gone...
Has there been a change in writing the dll's between those versions?

Best regards
Patrick Vossen
#2
Hi Severino,

Today, creating a new build for one of our applications using MMS (AudioDjStudioF4.dll).
Always ran a rather old version (control 10.1.0.0 / engine 13.1.1.6) but updated to latest version (control 11.3.0.0 / engine 14.3.0.4)

But now I get a lot of "*** Internal Error, cannot load engine Number 12 due to error 126" errors.
A lot is, one in 5 application starts.

Also noticed that when I got this error, the content of one of the bass-dll's was written into my application logfile.
See attached image..


Tried writing text data using different way (FilePointer / StreamWriter) but that did not help.
Also checked windows antivirus software, but no mentioning for blocked files...

Do you know at what point the bass dll's are written?
Maybe I can disable all my read/write actions until the dll files are written..

Best regards
Patrick Vossen
#3
Hi Severino,

Coming back to the ERR_TIMEOUT issue, mentioned in this topic.

On my development machine (Win11/Latest K-Lite/VS2022/application running in 32bit mode), I am getting more and more
- ERR_TIMEOUT return value when starting (not when loading, but starting) MP4 (AVC/AAC/ 720or1080) files.
- ERR_INVALID_FORMAT return value when loading MP4 (AVC/AAC/ 720or1080) files.

At that moment multiple video files are playing simultaneously (4 or 5 files)
Are there know limitations in in AudioDJStudio/Bass/DirectX that is causing this issue?
Do you know if this will occur often in debug mode?
I have already upgraded/changed my Graphics card and soundcard, no success.

Best regards
Patrick Vossen
#4
Hi Severino,

Just a quick question;
Is it possible to or on the roadmap, the option to play/stream to Sonos speakers (UPnP/DLNA device).

Have a nice weekend!

Best regards
Patrick Vossen
#5
Hi Severino,

Thanks for your advise.
I will check if sometimes a track if loaded from a different thread.

Best regards
Patrick Vossen
#6
Hi Severino,

At first the best wishes for 2023.

We have an WPF application (.net 4.6.2) that is playing several videofiles at the same time.
The application contains the "Audio DJ Studio for .net" component, but the issue also occurs when using the "API for .net" component
The ADJ control is initialized using the WASAPI sound system and nine (9) decks are initialized.
deck 8 and 9 are used for continuously play a list of MP4 AAC/AVC files (ambient files).
These files have various lengths between 7seconds and 2 minutes.
2 other decks are used for playing video adds. Also MP4 AAC/AVC files.

Sometimes, when a file is loaded (using .Load or .LoadSync), everything seems to go OK.
No error is raised and retrieving total time after LoadDone is raised, gives the correct total time.

But when we start the playback of the track (using .play or .playrange command) this results in an ERR_GENERIC or ERR_TIMEOUT error. and the track is not started.

Current system is Windows 11, K-lite is latest version.
Do you know if there are any limitations (qty loaded tracks?) or workarounds to handle this issue?

Best regards
Patrick Vossen

#7
Hi Severino,

Is there a way to get the id's (or names) of the existing cue points or trigger points?

Best regards
Patrick Vossen
#8
Hi Serverini,

After adding another soundcard and setting/switching default device I cannot reproduce the issue.
I guess that something was misconfigured within Windows and adding an extra soundcard solved the issue.

Best regards
Patrick Vossen
#9
Hi severino,

I currently noticed on 2 devices the following issue:
When I load a MP4 file without setting the audio output device (Default Directsound Device), the file is loaded without any issues, and the file (video and audio) is played as expected.
But when I set the audio output to an other output (Directsound: Speaker (Realtek (R) Audio)) and load the same MP4 file, I get an ERR_INVALID_FORMAT error.

The issue can be reproduced using the VideoPlayerSimple example (vb.net) in 32bit mode.
K-Lite is installed, Windows codecs disabled
AudioRenderMode is set to Audio_Renderer_Mode_Custom_2
Tested with AdjMmsEng.dll ver 13.1.0.2 and ver 13.6.0.17

Please advise

Best regards
Patrick Vossen




#10
Hi Severino,

Thank for the explanation.

I assumed that, because the fade volume points where automatically applied for the first track, that this would apply for all the tracks.

Best regards
Patrick Vossen
#11
Hi Severino,

Could you help me out with the following issue.
I am trying to create a playlist with crossfade functionality using the AudioDJStudioApiF4 control. (version 10.1.0.0 / Engine 13.6.0.17)
The playlist is created from scratch using the PlayListCreateEx and PlayListAddItem procedure.
When I create the playlist without crossfade functionality, the second track is automatically started when the first raises a Done event (both on DeckA).
But when I add the Fader object, the second track is started and directly raises a done event.

Could you hint me what I am doing wrong?

Please find below the debug logging and VB.Net code.

=== start debug logging ===
=================
Control Version = 10.1.0.0
Engine Version  = 13.6.0.17
=================
[date/time] [deck] [event]
10:58:05.057 - 0 - EV_PLAYLIST_SOUND_LOADED
10:58:05.890 - 0 - EV_BPM_AVAILABLE
10:58:05.906 - 0 - EV_FADEIN_STARTED
10:58:05.908 - 0 - EV_SOUND_PLAYING
10:58:06.704 - 0 - EV_FADEIN_COMPLETED
10:58:06.705 - 0 - EV_VOLUME_SLIDE_COMPLETED
11:00:25.125 - 0 - EV_FADING_POINT_REACHED <--fade point first track
11:00:25.175 - 1 - EV_PLAYLIST_SOUND_LOADED <--load 2nd track in deckB
11:00:26.058 - 1 - EV_BPM_AVAILABLE
11:00:26.060 - 1 - EV_SOUND_DONE
11:00:26.063 - 1 - EV_SOUND_PLAYING <--start 2nd track in deckB
11:00:26.114 - 1 - EV_SOUND_DONE <--done 2nd track in deckB
11:00:40.084 - 0 - EV_SOUND_DONE
=== end debug logging ===

Imports System.IO
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        InitAudioEngine()
        Timer1.Start()
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim AudioFiles As String() = Directory.GetFiles("C:\Audio Files", "*.mp3")
        CreatePlaylist(AudioFiles.ToList)
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        PlaylistStart()
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        PlaylistStop()
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Label1.Text = $"{GetCurrentTrackPositionString()} / {GetTotalTrackDurationString()}"
    End Sub
End Class


Imports AudioDjStudioApi
Imports System.IO

Module mAudioEngine
    Public AudioApiEngine As New AudioDjStudioApiObj()
    Public Const Deck_A As Short = 0
    Public Const Deck_B As Short = 1
    Private Delegate Sub CallbackForPlayersEventsDelegate(ByVal nEvent As enumPlayerEvents,
                                                          ByVal nPlayer As Int16,
                                                          ByVal nData1 As Int32,
                                                          ByVal nData2 As Int32,
                                                          ByVal fData3 As Single,
                                                          ByVal pBufferUnicode As IntPtr,
                                                          ByVal nBufferLength As Int32)
    Private addrCallbackForPlayersEvents As CallbackForPlayersEvents

    Public Sub InitAudioEngine()
        Debug.WriteLine("=================")
        Debug.WriteLine($"Control Version = {AudioApiEngine.GetControlVersion()}")
        Debug.WriteLine($"Engine Version  = {AudioApiEngine.GetEngineVersion()}")
        Debug.WriteLine("=================")

        AudioApiEngine.InitSoundSystem(2, 0, 0, 0, 0)

        ' set the player's callback
        addrCallbackForPlayersEvents = New CallbackForPlayersEvents(AddressOf PlayerCallback)
        AudioApiEngine.CallbackForPlayersEventsSet(addrCallbackForPlayersEvents)

        AudioApiEngine.Fader.Init(enumFadeTypes.FADE_SINGLE_PLAYLIST, Deck_A, Deck_B)
        AudioApiEngine.Fader.PlayListUseSingle(Deck_A)

        AudioApiEngine.Fader.FadeInEnabled = True
        AudioApiEngine.Fader.FadeInLength = 350
        AudioApiEngine.Fader.FadeOutEnabled = True
        AudioApiEngine.Fader.FadeOutLength = 3500
    End Sub
    Public Sub DisposeAudioEngine()
        AudioApiEngine.StopSound(Deck_A)
        AudioApiEngine.StopSound(Deck_B)
        AudioApiEngine.Dispose()
    End Sub
    Private Sub PlayerCallback(ByVal nEvent As enumPlayerEvents,
                               ByVal nPlayer As Int16,
                               ByVal nData1 As Int32,
                               ByVal nData2 As Int32,
                               ByVal fData3 As Single,
                               ByVal pBufferUnicode As IntPtr,
                               ByVal nBufferLength As Int32)

        Select Case nEvent
            Case enumPlayerEvents.EV_WAVEFORM_CHANGE
            Case enumPlayerEvents.EV_FADING_VOLUME_CHANGED
            Case enumPlayerEvents.EV_VUMETER
            Case Else
                Debug.WriteLine($"{Date.Now:HH:mm:ss.fff} - {nPlayer} - {nEvent}")
        End Select
    End Sub

    Public Sub CreatePlaylist(AudioFiles As List(Of String))
        AudioApiEngine.PlayListSetLoop(Deck_A, bLoop:=False)
        AudioApiEngine.PlayListSetShuffle(Deck_A, bShuffle:=False)

        AudioApiEngine.PlayListCreateEx(Deck_A, enumPlayListModes.PLAYLIST_AUTOMATION_MODE)
        Dim Index As Integer = 0
        For Each f As String In AudioFiles
            If Not File.Exists(f) Then Continue For
            AudioApiEngine.PlayListAddItem(nPlayerIndex:=Deck_A,
                                           strPathname:=f,
                                           nIndex:=Index)
            Index += 1
        Next
    End Sub
    Public Sub PlaylistStart()
        Debug.WriteLine(AudioApiEngine.PlayListExecute(Deck_A, bFromBegin:=True).ToString())
    End Sub
    Public Sub PlaylistStop(Optional ByVal Deck As Short = -1)
        If Deck = -1 Then
            AudioApiEngine.StopSound(Deck)
            Return
        End If
        AudioApiEngine.StopSound(GetPlayingDeck())
    End Sub
    Public Function GetTotalTrackDurationString() As String
        Return AudioApiEngine.GetFormattedSoundDuration(GetPlayingDeck)
    End Function
    Public Function GetTotalTrackDurationInt() As Integer
        Return AudioApiEngine.GetSoundDuration(GetPlayingDeck)
    End Function
    Public Function GetCurrentTrackPositionString() As String
        Return AudioApiEngine.GetCurrentPosString(GetPlayingDeck, False, False)
    End Function
    Public Function GetCurrentTrackPositionInt() As Integer
        Return AudioApiEngine.GetCurrentPos(GetPlayingDeck)
    End Function
    Public Function GetPlayingDeck() As Short
        If AudioApiEngine.GetPlayerStatus(Deck_B) = enumPlayerStatus.SOUND_PLAYING Then
            Return Deck_B
        End If
        Return Deck_A
    End Function

End Module
#12
Hi Severino,

Thanks for this.
I am going to test it.

Best regards
Patrick Vossen
#13
Hi Severino,

Thanks for your explanation.

I am aware of the divide by zero bug in Intel drivers.
For that reason we use Iobit driver booster to get the latest drivers for our hardware, even if Intel does not provide updated drivers.
But on some (old) hardware there are no newer drivers :-(

As we do not see the igdumdim crash with the latest engine, is the divide by zero only appearing when using the VMR7 video engine?

Best regards
Patrick Vossen
#14
I am using MS Windows 10 Pro build 10.0.19043 (64bit)
Soundcard is a Realtek High Definition Audio (onboard) driver dates from Jan 28th 2022.

This issue occurs on many of the +2000 system that we have placed at our customers.
These customers are "running" on an older (13.1.0.2) engine because of this tick. (OS is IOT 2015 or 2019)

But now we have an issue with AdjMmsEng.dll version 13.1.0.2 on some hardware where there is a crash our application, raised by an error the igdumdim32.dll (Intel display driver).
When I update to the latest version of AdjMmsEng.dll, the crash seems gone but I got a tick in the sound when loading a new video file.

Maybe you have a hint how to solve the tick in the sound issue?
I prefer to update all our systems to the latest version of AdjMmsEng.dll
#15
Hi Severino,

I have attached 2 zip files.
https://sdc1storage.bcmserver.com/bcmmusic:bcmshared/test/VB.Net%20test%20application.zip
https://sdc1storage.bcmserver.com/bcmmusic:bcmshared/test/WPF%20test%20application.zip

One zip contains the VB.Net application and the other contains the WPF application.
Both are very basic applications with 2 video "panels" on the same form/window.

Some of the files I used for testing are:
https://sdc1storage.bcmserver.com/bcmmusic:bcmshared/test/Alan%20Walker%20-%20Faded.mp4
https://sdc1storage.bcmserver.com/bcmmusic:bcmshared/test/Classified%20ft%20David%20Myles%20-%20Inner%20Ninja.mp4


When loading Alan Walker in deck 0 and start playing, then after 10 seconds or so load the second file in deck 1, the tick very loud present in the playing track.

Best regards
Patrick Vossen