Old 18th October 2001, 01:11   #1
soundsys
Senior Member
 
Join Date: Oct 2001
Location: Rennes (France)
Posts: 156
Send a message via ICQ to soundsys
Question Getting data from input wacs

I wanna make a plugin which is
able to access all the formats
supported by the core.

The goal is to keep some part of
a track ready be heard.

But this should be done silently ...
I mean the user don't have to heard
the loads of the chunk

Lets say the track is MyTitle.xxx and there is wac called cnv_xxxpcm.wac

can my wac ask the core to give an handle to the wac ,or the stack of wac needed to get pcm from .xxx files ...

(how ?)

and then simulate seek to extract the chunks I wanna keep from this track

(how ?)

If my wac generate (reproduce) pcm
while the core is playing another file
will there be any mixdown ( kind of
directsound - like feature ) or will i have to implement it ?

in other words ... is the core able to
deal with many Chunklist simultaneously ?
Perhaps a time basline ( like those used to synchronize vidéo and audio ) will be a solution ... I don't know.

Perhaps some fo the coders can tell me more a bout this

Thanks
soundsys is offline  
Old 18th October 2001, 15:06   #2
soundsys
Senior Member
 
Join Date: Oct 2001
Location: Rennes (France)
Posts: 156
Send a message via ICQ to soundsys
Dynamic linking !

I'm still waiting for a response and thinking about it I found that:

.wacs was just renamed .dll so if I run Wxx and I wanna do something with them ,I would have use Loadlybrary() but ... and that the point
as Brennan I want the code to be portable ...

Under linux I use to link with ldso ... but as the wac should be the same ( or perhaps recompiled specialy for a system .. but with the same code I don't know) they are stil dll under linux ... and you guys have a way to make the core load them ...

Perhaps I didn't pay attention enough to the SDK but what is this fonction, or which service do you give us to exchange data with other
modules silently?

Thanks
soundsys is offline  
Old 19th October 2001, 02:51   #3
soundsys
Senior Member
 
Join Date: Oct 2001
Location: Rennes (France)
Posts: 156
Send a message via ICQ to soundsys
I'm feeling kind of alone on this thread ...
Hope someone can explain this to me (migmigmig ?)

Thanks
soundsys is offline  
Old 20th October 2001, 12:53   #4
migmigmig
Hot Green Mustard Evangelist
 
migmigmig's Avatar
 
Join Date: Oct 2001
Location: Down the street from work
Posts: 194
Send a message via ICQ to migmigmig Send a message via AIM to migmigmig
Yah, well, I have to admit, I didn't respond on this thread because I have no clue how to do that

I just asked Christophe to look over your question, however, because I'm pretty sure he'll know the answer, so he'll either answer you here or he'll show me and then I'll answer you here.

Sorry about that.

mig
"And he's honest, too?"
migmigmig is offline  
Old 20th October 2001, 14:29   #5
soundsys
Senior Member
 
Join Date: Oct 2001
Location: Rennes (France)
Posts: 156
Send a message via ICQ to soundsys
Talking I had doubts ...

but I'm sure you'll have other occasions to help me when the project will be more advanced ...

Thanks for taking care and talking Christophe about it .
soundsys is offline  
Old 20th October 2001, 19:39   #6
Christophe
Sexaholic
 
Join Date: Oct 2000
Posts: 114
I'm not sure what you really want to do. But if you want to get all the PCM data that goes through the core, just create a converter that'll take PCM as input data and output PCM as output data (like the crossfader) and just grab the data there (in the processData function). It'll then be stacked in the converter list automatically every time a file is player.

-christophe
Christophe is offline  
Old 20th October 2001, 22:14   #7
soundsys
Senior Member
 
Join Date: Oct 2001
Location: Rennes (France)
Posts: 156
Send a message via ICQ to soundsys
What I wanna do ...

I've already introduce that to you and Brennan in Private message ...

But let's extend the thing:

Suppose User start track XXX.mp3 ... and my component have a job to do in it in the middle of XXX.mp3 ...
what I want is to access the middle of XXX.mp3 (preparing the job)
that is to say taking the pcm data of an other part of track than the one played (or heard ) by the user (and I don't want him to hear anything)

Other example: near the end of XXX.mp3 I wanna mix the middle of YYY.ogg. If you give me the answer for the first example I can produce both pcm chunk of each track ....
so can I just do that ( I mean give the core the two chunklists and they will be mixed by it ) or do I have to implement my mixer ?

Is the core able to mix several stream simulteanously ? ( I know this sound more like kind of a directx job ... but there's no directx under other platforms )

Hope I've been more clear

See that I don't wanna load the entire track before doing the jobs


I've been thinking about loadind a new core and give him a dummy output and use seeks to go where I want in the tracks ...
So I must tell the core to render it to the dummy output so I can prepare jobs without hearing the parts I load ...
Let's say I can make a cnv from pcm to dummy. Is there a way to tell the core that I want output to dummy? I suppose that it's the way you choose btw cnv_pcmwaveout and cnv_pcmdsound.

Thanks
soundsys is offline  
Old 20th October 2001, 22:31   #8
migmigmig
Hot Green Mustard Evangelist
 
migmigmig's Avatar
 
Join Date: Oct 2001
Location: Down the street from work
Posts: 194
Send a message via ICQ to migmigmig Send a message via AIM to migmigmig
It's already too "advanced" for me right now!

mig
"Luddite on the bleeding edge."
migmigmig is offline  
Old 21st October 2001, 00:18   #9
safti
BOFH (Alumni)
 
Join Date: Jun 2000
Location: above
Posts: 184
Send a message via ICQ to safti Send a message via AIM to safti
@soundsys:
i guess you are aiming at some kind of DJ software ?
like a sampler in software ?

is that why you have to get decoder plugins read other locations of a file in background ?

-safti

Yes of course I'm sure it's the red cable. I guarante[^%!/+)F#0c|'NO CARRIER
safti is offline  
Old 21st October 2001, 00:46   #10
soundsys
Senior Member
 
Join Date: Oct 2001
Location: Rennes (France)
Posts: 156
Send a message via ICQ to soundsys
Yes ...

But response can apply to other field ...
Wasabi is a multimedia platform .... let's say I wanna render video
throught my output DV connector , and wrote a component which can do that, there is certainly a way to decide which component gonna have the output.

Note that multiple output should be aviable ...
Comming back to the dj software .... if we wanna record and listen the prestation ,it would be great if a disk writer and sound can work together.

It remind me of a piece of burning software that was able to burn sound of a sound card device. Wasabi should allow to do that ( does it ? )

If user can have decision in optimizing the way data flows between component (their order) it would be a good thing to ...

I still don't know if this is possible ...
soundsys is offline  
Old 21st October 2001, 02:20   #11
migmigmig
Hot Green Mustard Evangelist
 
migmigmig's Avatar
 
Join Date: Oct 2001
Location: Down the street from work
Posts: 194
Send a message via ICQ to migmigmig Send a message via AIM to migmigmig
I'm mildly concerned if you understand how difficult some of what you're attempting to do is.

With modern codecs (both video and audio), key frame recognition and random-access SMTP-locked seeks are severe bitches to implement.

"Give me the decompressed data stream that begins at 3:01.03 into the current/given data stream" would be, in my opinion, absurdly difficult to implement in a fully generic manner that could work for everything.

That's not to say that Christophe didn't already implement it.

Just guessing that it would be hard.

mig
"Agnostic in a knowledgebase weight space."
migmigmig is offline  
Old 21st October 2001, 21:30   #12
migmigmig
Hot Green Mustard Evangelist
 
migmigmig's Avatar
 
Join Date: Oct 2001
Location: Down the street from work
Posts: 194
Send a message via ICQ to migmigmig Send a message via AIM to migmigmig
By the way, I'm assuming you want to do alot of these in realtime.

If you just want to set up cue points for later callout & mixing, that's probably pretty easy. You should already be able to seek in a stream by time.

Of course, that's only if you're the primary output recipient of that stream. I don't think our internal models of streaming data through the codecs can understand the concept of more than one "File Pointer" that dictates exactly where one is in a stream (either how far through the file or how many bytes have come through via your net protocol).

If you want to be reading information from a separate place in the stream from the current stream, you're going to need to open that stream up a second time for your second reader.

Again, please remember, I'm using the term "stream" as a generic concept of "a whole bunch of bytes go through my data transformation pipeline in this order" -- and that data could come from a file read or, like in the case of MOD music, the output of a different codec.

mig
"I have a feeling that might have been very confusing, but sometimes those feelings are wrong."
migmigmig is offline  
Old 21st October 2001, 22:41   #13
soundsys
Senior Member
 
Join Date: Oct 2001
Location: Rennes (France)
Posts: 156
Send a message via ICQ to soundsys
Yes ... seeking might be difficult with some kind of streams ...

But if seek in ms is well implemented it could be good.
Implementation will be different for unlimited streams ( total buffering for streams like shoutcast ones ...).
For other streams (with an accurate granularity) just buffer begin and end of loop.

Perhaps someone have a better idea ...
soundsys is offline  
 
Go Back   Winamp & Shoutcast Forums > Winamp3 > Wasabi Development

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump