|
|||||||
![]() |
|
|
Thread Tools |
|
|
#1 |
|
DriverHeaven Junior Member
Join Date: Jan 2003
Posts: 48
Rep Power: 0 ![]() |
newbie needs help with compiling
This is my first attemp to write dsp-plugin. What I'm eventually aiming, is to rip off delay -part of a chorus, and decrease maximum lenght of delay to ~1ms to save iTram. I need this to create a simple timeshifter, wich could be useful for space-effects with channel separation, like this one I described here.
I wonder if there is there something wrong with my Visual Studio .Net, because while tried to compile kxcontrol as described in SDK's readme.txt, I had to tell all includefolders and ~20 libraries to lc before it got this far. And then I got this: kxctrl.cpp WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server) parse.cpp Generating Code... Microsoft (R) Incremental Linker Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. /out:kxctrl.exe . . [clip] . parse.obj ..\lib\kxapi.lib kxctrl.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall iKX::format_reg(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > *,unsigned short,struct efx_register_info *,int)" (__imp_?format_reg@iKX@@QAEHPAV?$CStringT@DV?$StrT raitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@GPAUefx_reg ister_info@@H@Z) referenced in function "void __cdecl disassemble(unsigned int *,int)" (?disassemble@@YAXPAIH@Z) kxctrl.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall iKX::format_opcode(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > *,unsigned short,int)" (__imp_?format_opcode@iKX@@QAEHPAV?$CStringT@DV?$S trTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@GH@Z) referenced in function "void __cdecl disassemble(unsigned int *,int)" (?disassemble@@YAXPAIH@Z) kxctrl.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall iKX::disassemble_microcode(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > *,int,int,struct efx_code *,int,struct efx_register_info *,int,int,int,char *,char *,char *,char *,char *,char *)" (__imp_?disassemble_microcode@iKX@@QAEHPAV?$CStrin gT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@ HHPAUefx_code@@HPAUefx_register_info@@HHHPAD33333@ Z) referenced in function "void __cdecl combine(char * *)" (?combine@@YAXPAPAD@Z) kxctrl.exe : fatal error LNK1120: 3 unresolved externals there's this text in SDK's readme.txt kxfxlib: <temporarely not available> Does this mean that I Can't compile plugins anyway? Could someone brielfly explain me process of compiling and getting plugins in use. It would be great if someone with ability could create good delay. It's so useful versitile effect... Last edited by wilho; Jun 9, 2003 at 09:34 PM. |
|
|
|
|
|
#2 |
|
kX Project DSP Engineer
Join Date: Dec 2002
Location: Denmark
Posts: 94
Rep Power: 0 ![]() |
I have not yet been able to compile with MSVS .NET :-(
Perhaps Eugene or Max can shed some light on this topic. It compiles with MSVS 6 though. (Not that this was any help) /Soeren |
|
|
|
|
|
#3 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
looking to linker's output the first thing i can guess is that it just cannot find "kxapi.lib"... Ensure that this file is somewhere in the "LIB" path of your IDE...
And probably .NET is not compatible with kxapi ("plugins" part mostly...) VS 6.0 is actually highly recommended...
__________________
Last edited by Max M.; Jun 11, 2003 at 08:57 PM. |
|
|
|
|
|
#4 |
|
kX Project Lead Programmer and Coordinator
Join Date: Dec 2002
Posts: 3,119
Rep Power: 75 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
the sample code might fail to compile due to incompatibility between different MFC versions
the MFC bundled with .NET is not 100% compatible with the one bundled with VS6.0 -- some types are declared differently that's why you receive so many 'unresolved' externals -- for instance, the class CString is declared differently I doubt it will be possible to build the SDK samples with .Net unless you find the 'original' MFC headers or re-declare the classes --- btw, kxfxlib can be easily built by using WinXP/2k DDK (available for free from m$) and, finally, there's a 'fx_demo' folder which has a sample effect with VS6.0 project files /Eugene |
|
|
|
|
|
#5 |
|
DriverHeaven Newbie
Join Date: Jun 2003
Location: Wuppertal, germany
Posts: 18
Rep Power: 0 ![]() |
DJGPP and GCC
I can compile my DSP code with Borland Turbo C 2 or DPGPP. What about yours? Greetings from Uli the Grasso
|
|
|
|
|
|
#6 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
>I can compile my DSP code with Borland Turbo C 2 or DPGPP. What about yours?
You can't compile _DSP_ code for kX with C/C++ compilers - just because this code is not an C/C++ at all and it does not mean to be executed on your x86 CPU...
__________________
|
|
|
|
|
|
#7 |
|
DriverHeaven Newbie
Join Date: Jun 2003
Location: Wuppertal, germany
Posts: 18
Rep Power: 0 ![]() |
Okie dokie, I need an assembler for DSP code, too. But the surrounding code, i.e. host and GUI, also calle "platform code", I can compile with any C/C++. The platform code can be much more of a hassle than the DSP code, following the rule that 95% of all work is stupid work while only 5% is bright ideas.
|
|
|
|
|
|
#8 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
and what?
__________________
|
|
|
|
|
|
#9 |
|
DriverHeaven Newbie
Join Date: Jun 2003
Location: Wuppertal, germany
Posts: 18
Rep Power: 0 ![]() |
Well, I just wanted to express that one does not necessarily need the bloated M$ stuff. For example, one could program the EMU10Kx also in Linux or in plain DOS. That´s a matter of abstraction. For example, I do not need a GUI for changing parameters because a loudspeaker crossover has fixed parameters. I guess that EMU10K2 can become programmed even on 486s which have PCI 1.0 because writing a few words to the DSP does not need busmaster operations. The minimalist approach.
|
|
|
|
|
|
#10 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
>I do not need a GUI for changing parameters because a loudspeaker crossover has fixed parameters
Then you don't need a compiler AT ALL... (kX Mixer can load "human sources" - e.g. plain text)... (but you still use M$ stuff since kX Audio Driver works on Microsoft Windows Operating Systems only). >one could program the EMU10Kx also in Linux or in plain DOS The one actually can't, just because there's no DOS in Linux (ok, ok, i'm just joking) >I guess that EMU10K2 can become programmed even on 486s which have PCI 1.0 because writing a few words to the DSP does not need busmaster operations Yes, but they said that PCI 2.1 is required... Plus the one will need to have some "Enviroment" (or "DSP OS") being able to load his less or more abstract DSP code into very "unabstract" hardware... ---- Grasso, i'd recommend you to just read through this ("DSP") forum quickly - you'll find many intereesting... what is possible, what is not, what problems exist, what do not etc... Really...
__________________
|
|
|
|
|
|
#11 |
|
DriverHeaven Newbie
Join Date: Jun 2003
Location: Wuppertal, germany
Posts: 18
Rep Power: 0 ![]() |
U know I am just teasing you a bit.
Just 15 minutes ago I have got the Pinnacle to work. It did not work because I did not realize that that are two different I/O ports which must be treated differently... Pinnacle can do 66KHz, but just as with 0.35um EMU10K1s and first-gen EMU10K2s it generates rather much heat, hence two cards should not be stacked without a spare slot inbetween or without forced cooling. But what is 5W (including A/Ds, D/As and all peripheral stuff) compared to 50W of modern CPUs? If I was to build my crossover in a small series for financially impaired hi-fi enthusiasts like I am, I would probably use two Audigys, each one for one stereo channel in balanced signal mode. When you say that KX can load plain text files containing KX machine code, wouldn´t it be possible to port that loader to other platforms? A simple CPU I/O port (I guess that PCI still knows this basic communication technique) and a MIDI input would enable parameter change and complete that minimalistic but useful platform. I guess that you could win many people who just cannot stand Windows and harddisks hence do not care about ASIO. IMO ASIO and EMU10Kx are competitors, not symbionts. Uli |
|
|
|
|
|
#12 |
|
kX Project Lead Programmer and Coordinator
Join Date: Dec 2002
Posts: 3,119
Rep Power: 75 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
the 10k1/10k2 chip requires extensive support from the main CPU
so, probably, kX Drivers 'flashed' + Pentium CPU + PCI Bus + 128Mb of RAM + Audigy might be a good 'music-only' environment ![]() /E |
|
|
|
|
|
#13 |
|
DriverHeaven Newbie
Join Date: Jun 2003
Location: Wuppertal, germany
Posts: 18
Rep Power: 0 ![]() |
Extensive or intensive? I guess rather intensive. A posibility was to include a harddisk which is turned off after boot-up. Win98SE fits on 300MB. Uli
|
|
|
|
|
|
#14 |
|
kX Project Lead Programmer and Coordinator
Join Date: Dec 2002
Posts: 3,119
Rep Power: 75 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
well, not 'intensive'
![]() 'extensive' is a good word for the way CPU is used for 10k1/10k2 anyway, what is the exact hardware you are willing to create? we could discuss technical / commercial perspectives ![]() /Eugene |
|
|
|
|
|
#15 |
|
DriverHeaven Newbie
Join Date: Jun 2003
Location: Wuppertal, germany
Posts: 18
Rep Power: 0 ![]() |
What I have in mind are loudspeakers. 4 x 12" woofers for 50-500Hz and a 3" compression driver for 500-15000Hz. Depending on the quality and source of speaker drivers, horns, wood and power amplifier electronics, the price ranges from 1500 bucks to 5000 bucks for a stereo system, the latter for no-compromise JBL stuff. For the crossover I need a DSP with a stereo input and three stereo outputs. If one would build it commercially in a series with marketing, delivery, secretary, taxes and and those tails, one would phone a Ti, AD or Motorola distributor and ask for a print DSP board with 24bit/96KHz converters. They would care because they are in the money. But if one keeps it on a "voluntary" basis for DIYers, two Audigys on a small computer would also fit. The audio branche is really strange: Regarding my work on this speaker theme ( http://grassomusic.de/e/phaseeq.htm ), this is simple, or even lame, and not fundamentally new at all, but I have yet to see such a loudspeaker system for sale somewhere. I do not know how or if I can spin this further. Technical issues are simple constants, but humans are changing variables. \n Uli
|
|
|
|
![]() |
| Thread Tools | |
|
|