Jump to content

Upload recordings to a .wav onto pc faster than realtime.

Rate this topic


marcnet

Recommended Posts

Hmm..I guess I didn't try a big enough file for my testing. I don't have a CD burner on my laptop, so I can't test this, but here is another method that was reported as succesful:

In sonic stage, set your temp folder to c:CONVERT or something you can easily get to. (tools, options, creating a CD)

put in a blank cdr

select the tracks you want to copy

select create CD from the "controls" menu

when the progress bar gets to about 75%, and the filesize of the largest .TMP file (or files) stops growing, quickly copy them to somewhere else.

rename the large .TMP files to .WAV files.

Protection gone.

Someone want to give it a go? I think you can check "test only" and it won't waste your CD-R. It doesn't sound foolproof by any means, but if we can get it working at all I'd at least be happier about this whole thing.

Mike

Link to comment
Share on other sites

  • Replies 95
  • Created
  • Last Reply

Top Posters In This Topic

Ive tried both methods in this order

1) I created the filter (855FBD04-8AD5-40B2-AA34-A6581E59831C), queried it for the IID_FileSourceFilter interface, used that interface to load the .oma file. I then enumerated the pins for an output pin and tried to connect it to the input pin of the transform filter. Crash.

2) I then tried the AddSourceFilter function of the graph builder object as I desribed before

Here is a link to the code ive got so far. Its a bit messy...

http://marcc.gotadsl.co.uk/files/main.cpp

Link to comment
Share on other sites

Of course, you could just create a graph file using graph edit. Change the file names in that file and construct your own graph from that file.

Another thing. OMG filters seem to have some kind of inner copy protection scheme which tries to identify which programs/filters you are trying to use. For example, you can't connect Microsoft's wav write to OMG transform (or you can but it'll crash when you try to start converting). So, you should try hard coding the pins into your program instead of querying them before building a graph.

Link to comment
Share on other sites

Hello. I wish to report myself as being a bit of a moron....

Way back when I was hacking net-md dll's (in particular the Netmdapi.dll - I didnt get very far as all data was passed to this dll in encrypted form) I tried attaching a debugger to the OpenMG software. Strangly, It crashed. I investaged furthur and found the one of NetMD modules was dynamically loading (LoadLibrary()) one of the OS dlls and calling the IsDebuggerPresent() function.

Guess how Im running my filter-graph software. Thats right - via msdev debug & run feature.... doh!

Thats why I get exceptions when I create a connection between Filters.

Onwards we go..... (without debugging capability :/)

Link to comment
Share on other sites

Hmm..I guess I didn't try a big enough file for my testing. I don't have a CD burner on my laptop, so I can't test this, but here is another method that was reported as succesful:

<clip>

Someone want to give it a go? I think you can check "test only" and it won't waste your CD-R. It doesn't sound foolproof by any means, but if we can get it working at all I'd at least be happier about this whole thing.

Mike

This doesn't work as you can't add an uploaded file to the playlist before the Audio CD gets burnt. If you try to add the file it says that it can't be copied due to copyright restrictions.

Link to comment
Share on other sites

Ive so far written a program to extract the whole .wav using 5 second chunks. Ive done this by telling the filter graph to play from 0-5, 5-10, 10-15, 15-20 etc

However, the seeking granularity of the IMediaPosition interface is rubbish. It works in seconds (not milliseconds or anything else useful)

-----

Result so far:

Either there are bits of PCM missing in the .wav (if I seek to where I told the filter graph to stop) or there are repeated bits (if I seek to 1 second before where I told the filter graph to stop).

-----

Next:

Im going to find some way else of controlling the filter graph (I think ive actually found something with something like 100 nanoseconds of granularity)

Or if that dosnt work:

Im going to implement a second pass that cuts out repeated bits of audio. I know where they are and how often they occur - 5 seconds. I just dont know the length of the "repeat".

And yes, I know 5 seconds is a bit short and I could use 1 minute instead - but the inaccuracy of the IMediaPosition will still produce errors even with 1 minute blocks. Its just easier to see/repair/test for errors if Im doing 5 second blocks rather than 1 minute blocks. smile.gif

But im getting there:

Onwards we go further..... (with crappy resuming accuracy and without debugging capability :/)

Link to comment
Share on other sites

Ive so far written a program to extract the whole .wav using 5 second chunks. Ive done this by telling the filter graph to play from 0-5,  5-10, 10-15, 15-20 etc

However, the seeking granularity of the IMediaPosition interface is rubbish. It works in seconds (not milliseconds or anything else useful)

-----

Result so far:

Either there are bits of PCM missing in the .wav (if I seek to where I told the filter graph to stop) or there are repeated bits (if I seek to 1 second before where I told the filter graph to stop).

-----

Next:

Im going to find some way else of controlling the filter graph (I think ive actually found something with something like 100 nanoseconds of granularity) 

Or if that dosnt work:

Im going to implement a second pass that cuts out repeated bits of audio. I know where they are and how often they occur - 5 seconds. I just dont know the length of the "repeat".

And yes, I know 5 seconds is a bit short and I could use 1 minute instead - but the inaccuracy of the IMediaPosition will still produce errors even with 1 minute blocks. Its just easier to see/repair/test for errors if Im doing 5 second blocks rather than 1 minute blocks. smile.gif

But im getting there:

Onwards we go further..... (with crappy resuming accuracy and without debugging capability :/)

Nice of you to have things working for more than 1 minute (only with some timing-errors). But maybe I have one suggestion. Maybe you do not want to think in terms of minutes and seconds because a wave-form is made up out of samples. In case of a standard wave file for CD-audio you have a sample-frequency of 44,100 samples/sec so one sample takes 22.67573696 microsecond (so an accuracy of nano-seconds is not very usefull, it is much to exact). Also the time I get in my exportsample is not exactly 1 minute, but something of 1:01 minute (one export was 1:01:20, another 1:01:617)

Furthermore when you jump into a coded audio-sample you have to take in account that for coding time-dependancies are used to filter out redundant information. So jumping random into an coded audio-file gives inaccuracies in decoding the first few samples (a good decoder may take some samples from before the starttime to get a good decoded signal immediately) so searching for the exact bits that are double in overlapping sound may be not possible because of the inaccuracies in the beginning of the decoding.

Link to comment
Share on other sites

Sorry... I only tested with 2 short tracks ... It seems the maximum wav size is 10.3mb long.... 

This may be due to the "OpenOmg" source filter being a bit gay with regards to rendering faster than real-time

The 10.3MB is equivalent to 1 minute WAV file. Did you purchase GraphEdit or download a trail version? My guess would be that the version of GraphEdit you are using is limited to files of 1 minute in length.

When you "Play" the OMA file, does it play all the way thru? Can you hear it thru your speakers? Does play also stop at 1 minute?

Link to comment
Share on other sites

On my PC it plays till the end.

I think we should be able to access the properties of the filter to change the 1 minute limitation, however Graphedit doesn't allow you to.

Tonight I'm going to install the DirectX SDK from Microsoft. I also found a Graphedit-like add on for it here:

http://www.ifp.uiuc.edu/~chenyq/research/U...wFilterWiz.html

Hopefully I will be able to access the properties of the OPENMG TRANSFORM filter. I'll keep you posted.

Marco

Link to comment
Share on other sites

The 10.3MB is equivalent to 1 minute WAV file.  Did you purchase GraphEdit or download a trail version?    My guess would be that the version of GraphEdit you are using is limited to files of 1 minute in length.

GraphEdit is free (as in beer)! It is part of Microsoft's DirectX SDK and doesn't cost a thing.

Link to comment
Share on other sites

Hopefully I will be able to access the properties of the OPENMG TRANSFORM filter. I'll keep you posted.

No hope if you don't have a friend at Sony. When GraphEdit doesn't let you see its property page, it means that its properties can't be accessed through any standard property page and you need some information about it internals to change its settings. By the way, OMG TANSFORM doesn't have a time limitation when its connected to "Default DirectSound Device".

Link to comment
Share on other sites

Isn't there a virtual audio CD Write application? I know Nero Imagedrive and Alcohol 120% can open images and emulate a CD-ROM station. If we can trick SonicStage to think it can write to such an emulated CD-Writer (if existing) then we could write the tracks at a high speed to the virtual Writer and use a CD extractor to convert the created CDA files into Wav's.

Link to comment
Share on other sites

Ive got a full capture program which now cuts out repeated bits of audio. I just got to polish off now and ill probably release it tomorrow. Its probably going to be kept as a command line app for now - so get out your "How to use DOS" books tongue.gif

MDFreak was right about repeated audio not being bit for bit exact.... and ive also taken this into account. Now if the 16 bit values being compared vary by 2, then they are still considered the same... I may tweak this value depending on how my "polishing and testing" goes.

Tomorrow will either be a barrier broken for the HI-MD folk, or it will make me look a bit silly if it falls over and dies.

Link to comment
Share on other sites

So do I!!! If I had any idea how to write a program I would help straight away, but unfortunatley I don't sad.gif . Good luck everyone. Can I ask, why don't you just buy a cable which goes from MD to Audio on PC, and it automatically converts it to .wav when you transfer the files across...?

This is what I will be doing when I buy the cable

Link to comment
Share on other sites

Im kinda nervous about this as its a very first release and eveything:

http://marcnetsystem.co.uk/himd/

But there it is... a very alpha version of the program. Its hi-speed yes, but it may miss out or repeat bits of audio... I hope not, but just dont go relying that this will produce a 100% accurate .wav version of your .oma files.

In other words: DONT DELETE YOUR .OMA FILES, EVEN IF YOU ARE REALLY SURE THAT MY PROGRAM IS ACTUALLY REALLY PROBABLY SORT OF WORKING

Feel free to post replies on my message board, or on this one.

If you want to chat then I can be found floating around the Undernet IRC server in the rooms #chatterz or #marcchat

Enjoy...

The battle may be won but yet there still may be casualties

Link to comment
Share on other sites

Im kinda nervous about this as its a very first release and eveything:

http://marcnetsystem.co.uk/himd/

But there it is... a very alpha version of the program. Its hi-speed yes, but it may miss out or repeat bits of audio... I hope not, but just dont go relying that this will produce a 100% accurate .wav version of your .oma files.

In other words: DONT DELETE YOUR .OMA FILES, EVEN IF YOU ARE REALLY SURE THAT MY PROGRAM IS ACTUALLY REALLY PROBABLY SORT OF WORKING  

Feel free to post replies on my message board, or on this one.

If you want to chat then I can be found floating around the Undernet IRC server in the rooms #chatterz or #marcchat

Enjoy...

The battle may be won but yet there still may be casualties

I tested it on 2 tracks that I know pretty well with a lot of speach so errors in timing would be very obvious (recorded analog from CD)

The timing seems allright (maybe not exact, but no obvious mistakes). I have to do further testing to find out if it works PERFECT!

Neat work untill now!

Some background info about used equipment:

- MZ-NH700

- P IV 2,8 GHz with 1 GB memory

- SonicStage 2.1

- WinXP Pro SP1

- 2 music-tracks of about 3,5 minutes each

Link to comment
Share on other sites

I was a little sceptical, but I tried Marc's program on a 3:15 oma pop song, and it ripped to wav very very quickly.

I listened to it, and expected to hear some stuttering, or pops, and I could hear .... NOTHING apart from the music! It was a perfect rip!

Congratulations!

Link to comment
Share on other sites

Addendum: the only thing I noticed is that at the end of the playback of the WAV, WMP says "Windows Media Player cannot play the file. The player might not support the file type...etc"

But this is at the very very last second (or less) after it has played the file.

Link to comment
Share on other sites

This *is* quite awesome. Good job in figuring this out! Thanks!

I have a question though. Has anyone been able to convert these to .mp3? I've tried opening the .wav file with Goldwave 4.26 and 5.08 and they both give this error: "Cannot determine format of file"

Is it just me? Should I use something else to convert them?

Link to comment
Share on other sites

^ I suspect this is related to my observation where Windows Media Player plays the file, but at the very end of the file comes across something that makes it think it's not a WAV file.

Maybe Marc's program when it adds on the last bit of converted WAV doesn't "close" the file correctly. I don't know what the right techo speack is, but you get my drift?

Link to comment
Share on other sites

I have a different error...

The program runs, but at: "attempt connection between omgsrc and omgtrans" I get a "himdrender.exe has encountered a problem and needs to close" message.

The resulting ".wav file" (or lack thereof) ends up being 0 bytes, and obviously doesn't play.

Any ideas on this? I'd LOVE to be able to use this software!!

Link to comment
Share on other sites

marcnet, I downloaded you program, unziped it, and double clicked on the icon. It ran using MS-DOS, but came up with an error "NO INPUT FILE", where do I go to specify wat the input file is? because it then goes on saying, "press any key to exit" so I can't press "I" for input file selection :S.

Anyone know what the problem might be?

Link to comment
Share on other sites

I tried to convert a 2 1/2 hour recording from OMA to WAV using it, and it ran, looked like it was working, then......."RepairWav => Failed map view of file Untitled5.oma.wav.tmp"

It also generated a lot of:

Pos: - [0x22e9 = 8937] Len: - [0x22fd = 8957] Pos (secs): - [0x14c995e5b0 = 89281390000]Len (secs): - [0x14db511451 = 89578869841]Event: - [0x1 = 1]

Pos: - [0x22e9 = 8937] Len: - [0x22fd = 8957] Pos (secs): - [0x14c995e5b0 = 89281390000]Len (secs): - [0x14db511451 = 89578869841]Event: - [0xe = 14]

Stopped at - [0x14cef9bfe0 = 89371820000]

The tempfile was about 2 gigs........

Anyhow.........It's getting closer, but how come Sony does just release this WAV converter program. I'm wishing now that I had bought a Marantz PMD670 instead.......

Link to comment
Share on other sites

What you need to do is:

Copy the himdrenderer program to the root of your c: drive.

Go to your windows start menu and select "Run"

In the "Open" text box type: c:himdrenderer -i <path to .oma file>

Sorry there's no gui or simple key-press interface, but I develop all my programs, initilally, with a command line only style.

Link to comment
Share on other sites

have a different error...  

The program runs, but at: "attempt connection between omgsrc and omgtrans" I get a "himdrender.exe has encountered a problem and needs to close" message.  

The resulting ".wav file" (or lack thereof) ends up being 0 bytes, and obviously doesn't play.  

Any ideas on this? I'd LOVE to be able to use this software!!

Linqz - I kept getting this error when I was debugging the program with MSDEV. Basically sony's DLL's have protection in them to stop any programs loading that have debugging capability. But I doubt this is the problem (unless you got Softice or anyother debugger than runs behind Windows running)

Try using the GraphEdit method described on page 1 of this thread and see if that crashes.

Link to comment
Share on other sites

I tried to convert a 2 1/2 hour recording from OMA to WAV using it, and it ran, looked like it was working, then......."RepairWav => Failed map view of file Untitled5.oma.wav.tmp"

Well I did say it was an alpha... tongue.gif

Anyway... It sounds like the oma-> temp.wav is not detecting the end of the file for some reason and is repeatly re-rendering the last 15 seconds. You might want to check this smile.gif

Ill have a look tonight, after work.

Link to comment
Share on other sites

Thanks very much for that marcnet. Looks like a great tool . :grin:

Sony really do need to hurry up on their .wav converter, I mean if a guy can make a basic program which can do the job in 1 day, then surely Sony has some PC freaks that can make a program in at least a month!

Hurry up SONY! mad.gif

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...