Draw Spectrogram STFT in C#, what function can I use? - c#

Assume that I have STFT (short time fourier transform) data, how would these can be displayed on the picture box as spectrogram of frequency vs time, what function in C# can I use ?

The WPF Sound Visualization Library isn't bad for this type of thing, although it doesn't have a spectrograph control.
WPF Sound Visualization Library
Codeplex project with source
While not a .NET implementation Audacity is open source. So you may be able to poke around in there and see how they created their Spectrograph control
Audacity Source
There is also some Matlab code here that should allow you to get to where you need
Matlab code Stanford.edu

Related

Sketch effect on an image in windows phone 7

I am working on an image editor app having functions like cropping, text rendering, framing etc. I want to implement sketch effect now ie, the photo shall be converted to sketch. I am using Nokia.Graphics.Imaging.Managed library for doing it. It works very fine but only in wp8.
the dll is not compatible for wp7. Please suggest me any free library or any image manipulation method to achieve the functionality.
Thanks in advance
Aviary I've used in the past. Read their terms and conditions if you decide to go with their SDK.

Metro App with 2D Graphics in C#

I have done some looking and I can't figure out a good way to write a 2D tile/sprite based game in C# for Win8. According to the MSDN documentation:
You can use managed code languages like C# and Visual Basic to develop 2D (and lightweight 3D) games.
The problem is that I can't figure out how to do this. The reason I would like to use C# is because I already have a lot of code written for Windows Phone that I would like to reuse.
Can anyone point me to how I would write a fairly efficient 2D tile/sprite MetroUI game for Win8? The only thing I can find uses C++ and DirectX.
[EDIT]
To clarify I do not care too much what I use (WinRT, DirectX...) so long as I can submit to the app store, and write my code in C#.
If you are familiar with the DirectX API, you can use SharpDX available via http://sharpdx.org. It is basically exposing DirectX APIs into C#. From my understanding, if you are going to upload apps to the store, the SharpDX should be fine and pass compliance, but I would look into it further before going too deep.
Also, as of this time, not all of the features are available (like Direct2d not fully certified for Win8 Metro).
If your game uses simple graphics, you can use Drawing Library for Modern UI, it exposes a GDI+ like interface to be used in XAML/C#/VB.NET Windows 8 Modern UI applications, it works by drawing to a XAML Canvas.
If you're looking for something quick and easy check out the "Physics Helper XAML" project;
http://physicshelperxaml.codeplex.com/
It's based on the farseer engine, and comes with sample apps. There are a few games already released using it.
http://www.andybeaulieu.com/Home/tabid/67/EntryID/223/Default.aspx
Have a look at:
[XAML images sample] (http://code.msdn.microsoft.com/windowsapps/0f5d56ae-5e57-48e1-9cd9-993115b027b9/sourcecode?fileId=102748&pathId=677969581)
The page and samples give some code for NineGrid and WriteableBitmap Image manipulation.
You can now use Win2D (open source, released by Microsoft for metro/WinRT apps) which provides hardware-accelerated 2D graphics rendering.

Is there a commercial/open source C# wrapper component for using a webcam in Windows?

I need to rapidly develop some software that uses a camera as an AV input.
Assuming the drivers are installed for whatever the device that is giving the input I need to be able to capture images and to stream the camera in the winforms window.
I couldn't find a component that I can use, maybe because I don't know the right name for it.
Touchless is under a licence I can't use. If anyone knows of a good compoment/code I can use even if it's for a fee I will appreciate this.
DirectShow.NET library suits the bill here. You can use it to access the webcam directly using the underlaying DirectShow object as in here: http://www.codeproject.com/KB/audio-video/WebcamUsingDirectShowNET.aspx
Also if you consider learning WPF, there is a very neat webcam component here: http://wpfcap.codeplex.com/
It is just like dropping a image control on the worm, but this time in WPF:
Edit: There are also two Winform webcam components as I see now: http://easywebcam.codeplex.com/ and http://www.c-sharpcorner.com/UploadFile/yougerthen/810262008070218AM/8.aspx
This article explains how to access the webcam using Windows Image Aquisition services.

Hook/Overlay a DirectX game?

Can anyone tell me how to hook/overlay a DirectX game in C#?
I've tried getting a fullscreen C# window to overlap a game, however it wont.
After researching a little, I found out that I need to hook the game and then display the C# window.
Can anyone explain how I would do this?
Would I be able to display a C# form over a DirectX game?
You can try my example on hooking the Direct3D 9 API using C#. This utilizes EasyHook an open source .NET assembly that allows you to install hooks from managed code into unmanaged functions.
SlimDX is also used - this is an open source managed wrapper around the Direct3D libraries.
The tricky part of the hooking is determining the addresses of a COM objects' virtual functions. This is done in the above example using a small C++ helper DLL that finds the addresses from the VTable. [Update: there is a comment posted that show's how to get the function pointers from the VTable in C# also - given a IntPtr to the com object]
The example hooks the EndScene method of an IDirect3DDevice9, which is also where you would want to draw any overlays. As to displaying a form in the overlay I'm not so sure that will be so easy - I mean you can render the image easily enough, but you will have to capture inputs and manually respond/pass-thru the events to the form in question appropriately. Good luck!
(disclosure: I work for this company)
You can try our Deviare API, it has functionality to hook COM objects from C#.
It's a set of COM objects that can be used from any programming language (supporting COM). An article with source code showing how to capture video and add an overlay is available: instrumenting Direct3D applications to capture video and calculate FPS
COM Spy Console and Direct Sound Capture are two examples that implements a console to hook COM objects like DirectX.
Hope it helps.
Since you don't have direct DirectX Access from C# this may be tricky.
From my limited understanding of the concept:
DirectX Hooks consist of attaching to a DirectX Context and manipulating it, this may/may not require messing with another program's memory, something that's best suited to C/C++
I may be wrong though, however this is an advanced topic and my gut tells me you may have issues under .NET

C# Video Playback

I'm looking at trying to create a simple 'slider puzzle' game. You've seen the ones, you have an image and you shuffle the tiles.
However, I want to make one that will play back videos instead. What I'm trying to determine is whether it's possible to playback a video in C# and render the video on different controls (probably buttons, or panels). I've spotted the Microsoft.DirectX.AudioVideoPlayback classes but haven't found much documentation on them yet.
So to throw it up in the air, is this going to be possible to do without too much difficulty? Are there any useful (free) libraries that might help me along?
Have a look at DirectShowNet that wraps the DirectShow API, in the samples page there is a sample called PlayWnd the shows how to play a video file.
Depending upon how large and how long your video sources are, you could accomplish this very simply by first converting your videos to animated GIFs. A .Net PictureBox control will display and animate a GIF automatically, and you could easily use PictureBoxes for your tiles.
One big advantage of this approach is that (thanks to Mono) your application could work unaltered on Windows, Mac and the iPhone (also Linux and a couple others).

Categories

Resources