Results for "Author: arne elster"
Due to some sort of misunderstanding this got removed last time, so here it is again... We all know, VB is full of automation. Every object, every array, every string. But VB does an excellent job in hiding all this from us. Here are 3 projects: 1) create any interfaces without type libs 2) show/manipulate safearrays, create any 1D arrays from pointers 3) the interesting ITypeInfo, which will let you enumerate all memebers of an object/interface (that's roughly what TLBINF32.dll does)
A function plotter with GDI+ anti-aliasing. Handles brackets, functions and variables. Note: This needs a GDI+ type library which is included in the zip archive. Make sure it's referenced in the project. // 20. feb 07: added missing type lib "bstrapi.tlb". // 20. feb 07: wrong axes labeling fixed
A list with multiple columns. Multiselect, drag'n'drop item reordering, icons with alpha (LaVolpe's 32bpp dib), checkboxes, simple sorting, own custom styles.
This is an experimental 32 Bit Assembler. Originally planned for me to learn assembly language it turned out way bigger then I thought. It supports most of the standard, FPU, MMX, SSE and 3DNow instructions, can write Windows executables, has WinAPI support, can assemble SIB expressions (for example [eax*2+ebx-10]) and of course has labels. There are 2 examples in the zip file: An editor for writing Windows Executables and an example of assembling source code at runtime to directly call it (a touch of inline assembler). //Update: The examples had German comments and there was a small bug in the console example.
This demo shows how to compute a low/highpass FIR filter and use it on a time-domain signal trough convolution. It also shows frequency spectrum of the filter kernel and the filtered signal.
This reads the bus type of all drives associated with a drive letter. This way you can safely detect removable USB devices. It also has a feature to safely eject a device from the system (taken from activevb.de) and automatically displays arrival and removal of new devices. Should work on NT/2k/XP.
This class reads information about MP3s. It supports VBR (both XING and VBRI) and skips ID3v2 and ID3v1 for a pretty accurate calculation of the duration.
An easy to use class to concatenate PCM wavs. Uses the ACM so you can even concat wavs with different sample rates.
Ever stumbled upon the error "Bad DLL Calling Convention"? Was it when you tried to declare a function contained in a DLL? Then this might be a solution for you.
A little experiment on how to detect DTMF in a PCM signal. Uses my WaveIn recorder class and the DTMF tone generator of Bobbek (codeid 64048). With the DTMF tone generator you play some tones, and with the DTMF detector you catch them. In order for this work you have to select the correct mixer line (mostly "mono/stereo mix" or "waveout") and you have to find out for which volume it works best. On my computer the mixer line volume has to be about 20%.
This shows how to play MP3s and WMAs directly from resources without writing them to disk first. For decoding it uses the functions of the Windows Media Format SDK v9, wich ships with all Windows Media Players >= v9 (or google for "wmfdist.exe"). It allocates some memory, copies the sound from the resource to that memory, and plays it using DirectSound. You can control volume, balance and position. As the DirectSound stream uses an Windows API timer, debugging is pretty hard. You might be better off if you put the whole playback stuff into a DLL.
This class finds and loads plugins, you just specify the interface the plugins have to implement. //// How it works: You create a new ActiveX DLL, add a class to it, and enter all the properties and functions your plugins have to implement (you design the plugin interface). After compiling, you create a plugin (again an ActiveX DLL) which implements ('Implements' keyword) the interface, and add some code to it. After compiling this DLL you tell the Plugin Framework which interface your plugins implement and let it search for it. The Framework will look in the directory you specified, register all DLLs and if one of the classes in a DLL implements the plugin interface, the Framework will return it to you. No need for CreateObject anymore. /// How to get this demo working: Compile the plugins in the "plugins" directory, and place the DLLs there. Then simply run "Projekt1.vbp", but make sure you referenced the typelib in the "typelib" directory.
An apporach on how to do audio streaming with DirectSound. Supports WAV (+ ACM Codecs), MP3 and WMA. For MP3 and WMA, you need to have WMP >= 9, the WMF SDK >= v9 (Google), or the WMF Redistributable ("wmfdist.exe", Google). Buffer system is pretty stable. I guess this is pretty close to Winamp's playback method.
This shows an approach on adding a Clone method to classes. Uses some of Paul Catons Subclassing Code to create an invisible Clone Constructor.
This class lets you easily modify the volume or balance of Mixer lines or the whole playback/recording and also lets you select the recording source.
This creates ISO9660 file system images and optionally burns them on CD-R(W) (2 projects). FlamedLib is still pretty buggy, so I decided to rewrite the ISO9660 class. Now it should be a lot faster and also a lot safer. /// 1. After downloading, open ISO9660\prjISOImageWriter.vbp. If VB can't find something, add a reference to typelibs\OleGuids3.tlb. Now the project should load. /// 2. Add some files or directories (you can also explore the right click menus...), when you're finished with your image, click on the picture on the top left and chose "Create ISO Image". You shouldn't add big files to the image as this would take some time to copy it to the image. /// 3. Open Burn\prjISO.vbp. If you're on a Win 9x/Me machine, you must have installed an ASPI layer (preferably the one from Adaptec, probably already installed), if you're using any newer Windows version, make sure you got Administrator priviledges, else you need a working ASPI layer (quite a hard task on Win XP). Chose your CD writer and the ISO image to write to the CD-R(W), and click "Write image". The write speed is defined as 8x, but you can easily change it in the source (if you got the guts) /////////////////// This project uses the generic commands specified by the T10 technical comittee, all drives produced after 2000/2001 should be compatible. If not, there won't be any damage (maybe your CD-R will be unusable afterwards).
Update (28.10.06): Added support for looping, fixed some small bugs, added a new class "WAVPlayer" which simplifies streaming playback a lot. ///// Shows how to stream sound data to the WaveOut. Supports the WAV file format and the ACM (audio compression manager), to handle compressed WAV formats. Uses Paul Catons subclassing code. I tried to keep it as reusable as possible, so there are 2 classes: One reads (or decodes) data from WAV files, and one sends it to the WaveOut.
This is just a little demonstration on how to do frequency detection on digital audio signals. You can generate a signal from a DTMF sign (numbers, chars), which consists of 2 frequencies, and the program will detect it by using a Görtzel algorithm. Frequencies + Detection musn't always mean FFT. Sometimes there are faster ways.
Uses the waveIn API to record audio signals. You can change the recording source while recording and change its volume. The recorded samples get saved to a WAV file, with full ACM support, so you can even use an MP3 codec, if installed. The recorded samples get visualized through a frequency spectrum (Ulli's FFT class) and an amplitudes curve. Tested with XP. /// Update: Replaced the common dialog control with a class by Bill Bither (found at PSC), added some comments to the code, cleaned up a bit /// Update: fake window will be ceated only on start of recording, secured some parts in WaveInRecorder where pointers are used /// Update...: replaced subclassing with Paul Caton's technique /// update...: mixer functions should work fine now, uses a real mixer handle now ;), also the inverted line selection bug is fixed /// and once more...: mixer functions should be really stable now, added effects (echo, amplify, phase shift, 7 band graphical equalizer). Tipp: add echo, give it a short length (about 4-5 pixels to the left from the default) and set the echo amp to 6, makes your recording sound like a robot :)
The Flamed Lib (or simply Flamed v4) is an Active X DLL with plenty of functions for you to deal with CD/DVD-ROM programming. Comes with a complete CD Burner application and many little test projects. Features: create Data CDs (multisession) and Audio CDs, burn ISO images, data track to ISO image, session to BIN/CUE, extract tracks from BIN/CUE images, BIN to ISO conversion, audio tracks to WAV/MP3 (uses the ACM), CD-Text reader, FreeDB query, drive/disk/disk content information, CD player (digital/analog), CD-RW eraser, drive monitor (fires if medium removed/arrived) and more. The drive compatibility was increased once more, you shouldn't get the "Could not send write parameters page" error anymore. For any other questions read "readme.txt".