Thursday, 24 January 2013

Direct3DX9NotFoundException Creating a Direct3D Device With SlimDX


Yet another note for future reference. If you are using SlimDX, and you get the exception:







SlimDX.Direct3D9.Direct3DX9NotFoundException was unhandled
Message=Direct3DX 9 was not found. Please install the latest
DirectX end-user redistributable package from Microsoft.
Source=SlimDX
StackTrace:
at SlimDX.Direct3D9.Direct3D..ctor()
InnerException: System.Runtime.InteropServices.SEHException
Message=External component has thrown an exception.
Source=SlimDX
ErrorCode=-2147467259
StackTrace:
at D3DXCheckVersion(UInt32 , UInt32 )
at SlimDX.Direct3D9.Direct3D..ctor()
InnerException:





when trying to create a SlimDX.Direct3D9.Direct3D object, most likely you will be able to solve this by placing D3DX9_43.dll into your output folder. Please note that the proper solution would be to install the full DirectX 9 runtime into your system, but it may be too much for some quick testing.




A similar error may occur when using SharpDX, but in SharpDX's case, the error message will be much more helpful and actually tell you what is missing.

Tuesday, 15 January 2013

The command "sn -Ra ... :VCEnd" exited with code 1

For today, a quick note for future reference. If you have a C++/CLI project and you are getting the error




MSB3073: The command "sn -Ra "YourProject.dll" "YourKey.snk"
:VCEnd" exited with code 1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets




Then try adding the following two lines to your AssemblyInfo.cpp




[assembly:AssemblyKeyFileAttribute("application_key.snk")];
[assembly:AssemblyDelaySignAttribute(true)];



and check if it solves the issue. Hope this can be useful for others facing this same situation I encountered some days earlier.

Monday, 7 January 2013

Screencast Capture

I've recently started to record videos to demonstrate some capabilities of the Accord.NET Framework. Surprisingly, there were only a few, free, open source applications to achieve this goal - and none of them had all the features I needed.




It is, until I decided to roll my own.








Screencast Capture Lite is a tool for recording the desktop screen and saving it to a video file, preserving quality as much as possible. However, this does not mean it produces gigantic files which take a long time to be uploaded to the web. The application encodes everything using solely H624 in an almost lossless setting.




As a demonstration, please take a look on the Youtube video sample shown below. However, note that Youtube actually reduced the quality of the video, even if you watch it in HD. The local copy produced by Screencast Capture has an even higher quality than what is being shown, while the generated video file occupied less than 2 megabytes on disk.








And by the way what would be a better approach to demonstrate the capabilities of the AForge.NET and Accord.NET frameworks other than writing this application using them?




Well, actually this application has been created specifically for two things:




  • to aid in the recording of instructional videos for the Accord.NET Framework, and;

  • to serve itself as a demonstration of the use and capabilities of the AForge and Accord Frameworks. 




This means the application is written entirely in C# making extensive use of both aforementioned frameworks. The application is completely open source and free, distributed under the terms of the GPL, and a suitable project page is already being served on Google Code.




Hope you will find it interesting!

Tuesday, 1 January 2013

Deep Learning Artificial Neural Networks: Speech Recognition and Universal Translators

Happy new year everyone!



With the beginning of this year, I would like to share a video I wish I had found earlier. It is about the recent breakthrough given by Deep Neural Networks in the field of speech recognition - which, despite I had known was a breakthrough, I didn't know it was already leading to such surprising great results.









Deep neural networks are also available in the Accord.NET Framework. However, they've been a very recent addition - if you find any issues, bugs, or just wish to collaborate on development, please let me know!