Page 1 of 1 1
Topic Options
#1033084 - 03/18/11 05:30 PM Corrupted SONGLIST.VR8 file
GeoSteven Offline
Planeteer


Registered: 02/17/11
Posts: 35
Loc: Upstate SC
I posted this in another thread but that solution didn't fit my problem. I have copies of songs from all my hard drives over the years that I've copied to my PC hard drive via a SCSI HDD. For each HDD copied this way I have a folder named "SONGxxxx.VR8" for each 'song' and then a 'SONGLIST.VR8' and 'SYSTEM.VR8' file that act like a table of contents.

In one instance the 'SONGLIST.VR8' file has been corrupted and shows only a single name in it even though there are over a dozen song folders. I'm trying to figure out how I can restore the 'SONGLIST.VR8' file or have the VS recreate it.

I read a thread <somewhere > by Hook I think on how this was done on a 2480 but am wondering if the same method applies to the 880EX. Anyone know?

Top
#1033886 - 03/22/11 01:08 PM Re: Corrupted SONGLIST.VR8 file [Re: GeoSteven]
GeoSteven Offline
Planeteer


Registered: 02/17/11
Posts: 35
Loc: Upstate SC
I never did find the post again on how to get this done. However working from memory and using a little technical knowledge blended with a healty dose of caution I was successful in getting the material back. I'll post what I did here for others to reference in the future. I'm guessing that because this worked on my 880VX and the original post I saw was somewhere on the 2480 page this should work with any VS machine.

All of the recovery was done via a SCSI drive that I could connect to either the 880 OR my PC, never both simultaneously. My understanding is that the IDE drives would not give the same results.

When you copy songs from the VS to the SCSI you end up with two levels of folders. The top level (historically called the 'root' level in the IT world) will contain 2 files named 'SONGLIST.VR8' and 'SYSTEM.VR8' which act sort of like a table of contents and index respectively. You will also see 1 folder for each song you have on the HDD partition. These folders are named "SONGxxxx.VR8" where 'xxxx' may be '0001', '0002', etc. Be aware that the numbers on these folder may not be sequential if you have done any editing on the drive. So you may have a SONG0001.VR8 then a SONG0004.VR8 if you had recorded a 2nd and 3rd song at some point then erased them later on the VS.

The second level is made up of the files that are placed in the "SONGxxxx.VR8" folders. This is the actual song data. In my case I had 21 folders full of data but the SONGLIST.VR8 in the root folder was only showing 1 song (as viewed with notepad- IMPORTANT!-NEVER SAVE A BINARY FILE THAT YOU HAVE OPENED TO VIEW WITH NOTEPAD. There are certainly better viewers for this but notepad was handy).

To fix this I connected the SCSI to the 880 and initialized it so I could start with a clean slate. I then created 21 blank songs on the drive (click the 'song' button till you land on 'song new?' and follow the prompts). MAKE SURE YOU HAVE THE SCSI DRIVE SELECTED BEFORE INITIALIZING AND CREATING THESE SONGS. Then after powering everything down and reconnecting the SCSI to my PC I opened 2 Windows Explorer sessions side by side so that I could view the 21 folders containing the blank songs in one and the 21 folders with my songs to recover in the other. MAKE SURE YOU HAVE DISABLED THE RECYCLE BIN AND SYSTEM RESTORE FEATURES ON THE SCSI DRIVE. This is not absolutely necessary but you have to remember that hidden files may be written to the SCSI if they are not. I suspect these hidden files would not do well on teh Roland. I then erased the 2nd level files from each of the 21 folders for the blank songs on the SCSI. Final step was to copy the data files from the 21 song folders I wanted to recover into the now empty folders on the SCSI drive.

After swapping the SCSI back to the 880 (don't forget to power everything down and back up properly) I was able to select each song and play it! After I selected every song I went back and looked... the song names had been restored too. This was really good news for me. That project was the one I had been digging thru the archives for to begin with.

Hope this makes sense and helps someone another day. Thanks to Bear (I think?? it may have been Hook) for the original post.

Top
#1033907 - 03/22/11 03:08 PM Re: Corrupted SONGLIST.VR8 file [Re: GeoSteven]
uptildawn Online   content
Planeteer


Registered: 12/15/01
Posts: 8741
Loc: on land
Oh! I remember that! This is really great for you to have been able to restore those!
_________________________
uptildawn

Top
#1034013 - 03/23/11 09:12 AM Re: Corrupted SONGLIST.VR8 file [Re: uptildawn]
GeoSteven Offline
Planeteer


Registered: 02/17/11
Posts: 35
Loc: Upstate SC
Ya know, after all that, last night I dloaded and installed Reaper (finally) and used it to open the native Roland 880VX projects without incident. Why oh why didn't it occur to me sooner that this option was available I'll never know. Just the way this feeble gray matter between my ears functions (or fails to) sometime.

I'm gonna have to dig around and make notes on the process path I need to take in order to migrate my projects from 880VX via Reaper to Sonar and may even back to 880EX or 2480. I'm sure it's been done and it's all here under my nose somewhere.

Top
#1657961 - 05/11/20 06:32 PM Re: Corrupted SONGLIST.VR8 file [Re: GeoSteven]
kkt Offline
Space Cadet


Registered: 05/10/20
Posts: 2
 Originally Posted By: GeoSteven
I never did find the post again on how to get this done. However working from memory and using a little technical knowledge blended with a healty dose of caution I was successful in getting the material back. I'll post what I did here for others to reference in the future. I'm guessing that because this worked on my 880VX and the original post I saw was somewhere on the 2480 page this should work with any VS machine.

All of the recovery was done via a SCSI drive that I could connect to either the 880 OR my PC, never both simultaneously. My understanding is that the IDE drives would not give the same results.

When you copy songs from the VS to the SCSI you end up with two levels of folders. The top level (historically called the 'root' level in the IT world) will contain 2 files named 'SONGLIST.VR8' and 'SYSTEM.VR8' which act sort of like a table of contents and index respectively. You will also see 1 folder for each song you have on the HDD partition. These folders are named "SONGxxxx.VR8" where 'xxxx' may be '0001', '0002', etc. Be aware that the numbers on these folder may not be sequential if you have done any editing on the drive. So you may have a SONG0001.VR8 then a SONG0004.VR8 if you had recorded a 2nd and 3rd song at some point then erased them later on the VS.

The second level is made up of the files that are placed in the "SONGxxxx.VR8" folders. This is the actual song data. In my case I had 21 folders full of data but the SONGLIST.VR8 in the root folder was only showing 1 song (as viewed with notepad- IMPORTANT!-NEVER SAVE A BINARY FILE THAT YOU HAVE OPENED TO VIEW WITH NOTEPAD. There are certainly better viewers for this but notepad was handy).

To fix this I connected the SCSI to the 880 and initialized it so I could start with a clean slate. I then created 21 blank songs on the drive (click the 'song' button till you land on 'song new?' and follow the prompts). MAKE SURE YOU HAVE THE SCSI DRIVE SELECTED BEFORE INITIALIZING AND CREATING THESE SONGS. Then after powering everything down and reconnecting the SCSI to my PC I opened 2 Windows Explorer sessions side by side so that I could view the 21 folders containing the blank songs in one and the 21 folders with my songs to recover in the other. MAKE SURE YOU HAVE DISABLED THE RECYCLE BIN AND SYSTEM RESTORE FEATURES ON THE SCSI DRIVE. This is not absolutely necessary but you have to remember that hidden files may be written to the SCSI if they are not. I suspect these hidden files would not do well on teh Roland. I then erased the 2nd level files from each of the 21 folders for the blank songs on the SCSI. Final step was to copy the data files from the 21 song folders I wanted to recover into the now empty folders on the SCSI drive.

After swapping the SCSI back to the 880 (don't forget to power everything down and back up properly) I was able to select each song and play it! After I selected every song I went back and looked... the song names had been restored too. This was really good news for me. That project was the one I had been digging thru the archives for to begin with.

Hope this makes sense and helps someone another day. Thanks to Bear (I think?? it may have been Hook) for the original post.


Thanks, GeoSteven, for the "how to trick a VS" post when it comes to building a substitute "SONGLIST.VR8" for songs that lost their original folder structure.

Bear, Randygo, Danielo, etc -- does anyone have any insights on something that might help me do a similar concept with "tricking a Roland" into recognizing a "song" as "one of its own" by using the many VR8 files from an actual "dummy song?"

I've just played with RandyGo's old code and made a little bit of Python that takes a "TAKE0123.VR8" file, converts it to .WAV, and then I made another one that converts it back to an MAS / M16 "FAKETAKE.VR8" file. I ran that file through Randygo's C-based "RDAC2WAV" converter, and I get .WAV that sounds good to me, so I'm pretty sure my implementation is fine (there's not much to M16's, after all).

So this means I could potentially take any WAV that someone e-mails me and make an M16-encoded "FAKETAKE.VR8" out of it.

Which means, if I could build a "fake song" around it, I just might be able to trick a VS-880 into treating it as data that can be manipulated onboard and added to with the VS-880.

Anybody have any thoughts about what's in the other "VR8" files in a "song"?

It looks like Bear & Randygo figured out enough to build their most recent tooling around using "SONG9876.VR8" files (which hardly have anything in them and I presume are just being used as a filepath anchor) ... but I don't see any source code anywhere with "lessons learned."

Any "lessons learned" for me?

Thanks!

 Code:
from os import path
import numpy as np

inpath = 'C:\\example\\wav_four_seconds.wav'
outpath = 'C:\\example\\artificial_take_output.vr8'

input_wav_file_size = path.getsize(inpath)

# Okay, so ... the algorithm is to figure out where the header ends and strip it out.
# Then just numpy-little-to-big-endian the whole file.

def chunks_from_wav_file_after_header(filename, chunksize):
    with open(filename, "rb") as f:
        first_128_bytes_of_wav = f.read(128)
        bytes_the_word_data_literal = b'\x64\x61\x74\x61' # "data"
        start_of_data_position = first_128_bytes_of_wav.find(bytes_the_word_data_literal) + 8
        f.seek(start_of_data_position) # Skip past header to data
        while True:
            chunk = f.read(chunksize)
            if chunk:
                yield chunk
            else:
                break

def reverse_littleendian_chunk_to_bigendian(chunk):
    little_end_np_arr = np.ndarray(shape=(int(len(chunk) / 2),), dtype='<i2', buffer=chunk)
    converted_big_end_bytes = little_end_np_arr.astype('>i2').tobytes()
    return converted_big_end_bytes

# ####################################################
    
f_out = open(outpath, 'wb')

input_wav_large_chunk_generator = chunks_from_wav_file_after_header(inpath, 65536)
for chunk in input_wav_large_chunk_generator:
    reversed_endianness_chunk = reverse_littleendian_chunk_to_bigendian(chunk)
    f_out.write(reversed_endianness_chunk)

f_out.close()


Top
Page 1 of 1 1


Hop to:
Shout Box

Who's Online
5 registered (Marty Gilman, grachus, 3 invisible) and 9 anonymous users online.
Top Posters
53068
Jazzooo
48375
Al
40366
Timster
40001
Silversmith
37333
Ismellelephant
32942
Tom Mix
31102
Mooseboy
29929
Popmann
29887
gonzo
28773
NOK
28703
moontan
28697
C Jo Go
26606
flatcat
26541
Doughboy
24297
Marty Gilman
23691
paulb
23376
RGR
21702
Gretsch 6120
21692
fabulousthunderbird
21125
fonts
19798
Vanillagrits
19598
vvvm
19466
String Jammer
19436
glensimonds
18923
T57Strat
18894
GAMBLE
18791
Jammer
18182
SteveW
17935
JazAddict
17600
GAWZDigitalUnderground
17522
Geo
17300
Hano
16903
Dave Morris
16566
Slabraton
16444
Liquidirt
16200
slotz
16175
Delso
16111
Milkman
16071
ulank
Forum Stats
21237 Members
25 Forums
144807 Topics
1671146 Posts

Max Online: 290 @ 11/19/19 07:32 PM
Newest Members
BEVS, sfehn, Frank6, CesarBR, John Cambridge
21237 Registered Users

Generated in 0.016 seconds in which 0.01 seconds were spent on a total of 13 queries. Zlib compression disabled.