mySoftware [Updates]

Once you create a user profile on Motifator and update with the appropriate information, the updates shown here will be specific to you.

newProducts [YOK]

rssFeeds [Syndicate]


forumforum
 

Old Motifator threads are available in the Archive.

Viewing topic "Flash memory corruption"

     
Posted on: September 16, 2010 @ 04:22 PM
bsmart
Total Posts:  225
Joined  01-12-2005
status: Enthusiast

Events today have left me entirely without access to my flash memory. Hopefully, the repro below will assist some of the Yamaha people with figuring out what possibly went wrong, and what I could do about it.

I’ve had my XF for a little over a week, and haven’t had time to get to working with the flash memory until today. For that matter, I’ve had little spare time to play with the XF at all during the last week. Other than making some simple changes, such as setting the MIDI interface to USB, the XF is virtually in a clean factory state.

My XF has a single 1GB flash board installed. All of this happened on OS 1.1, also. Before starting with the following steps, I went to Utility mode, F6, realized that the flash was unformatted, so performed the format function. The format only took about 10 seconds.

1.  I loaded the XSpand Your World bank for the XS, selecting FL1 as the target for the samples. It seemed to load alright.

2.  I powered down, then back up, and the voices and samples were still there. This was my first experience with the flash memory preserving samples, and I was pleased with the results. On Utility, F6 (Flash), I found the waveform list (indicating the samples were in flash). The XF also showed that I still had about 600MB of flash free. All good.

3.  I used to work with All Files a lot. I knew I’d be switching through several of them until I got everything together in the new XF way, so I was curious about what would happen when I loaded an All File containing lots of voices and samples, when already having samples in flash? Would the XF clear the flash memory and load the new All File? Would the XF append the All Files samples to the current contents of flash? Would the XF only load samples that weren’t duplicates of what was already in memory? I had no answer for this question, so I decided to find out by reloading the XSpand Your World bank again.

4.  Once the bank was reloaded, I went to Utility, F6 (flash), and immediately noticed a problem. I only had about 200MB of flash left. No problem. I figured that the XF just had no way to know what samples were duplicates while it was loading the All File. And, after all, we have an Optimize function now to remove duplicates. I’d just need to remember to run that after loading an All File. I ran the Optimize function, and it completed after about only 10 seconds. However, there wasn’t any change, as far as I could tell. I still only had about 200MB of flash left.

5.  I remembered a description that Yamaha_US gave a while back about how the optimize function is supposed to work. It is supposed to look for samples in flash that aren’t currently used by loaded voices, and remove them. Obviously, though, that isn’t what happened here. I thought that, since the flash must now contain a duplicate copy of every waveform, maybe the XF somehow thought that both copies were being used by a voice? In any case, when the inexplicable starts to appear, my first troubleshooting approach is to restart the equipment. I powered the XF down, and back up.

6.  After restarting, the XF immediately showed the message “unrecognized flash memory module. Please reformat that.” Flipping through the user voices, it was obvious that my samples were gone. Obviously, the flash had been corrupted somehow. I wasn’t happy about how easily that had happened, particularly given how long loading these samples takes, but, hey, it’s a new device, and perhaps the screw up was my fault in some way. No problem. I’ll just reformat the flash and try again.

7.  In Utility mode, I started the format process for the flash board. This time, though, the format didn’t take just a few seconds. In fact, I waited and waited. The screen warned not to power off the Motif during the format, but, after 45 minutes, I decided that there is no way in the world that it should ever take this long to format 1GB of flash. So, reluctantly, I power cycled the Motif.

8.  After the XF booted back up, I still received the same message about the flash module being unrecognized. I thought that, along with the flash, perhaps what I had tried had somehow corrupted the system settings, too. I performed a factory reset. Then, when the reset finished, I power cycled the XF again, coming up in a fresh state. I was still receiving the error message about the flash module, but I expected that.

9.  Finally, I tried to format the flash module again, but, after another 30 minutes, gave up.

So, I’m now at a point where the XF can’t recognize my flash memory, and I can’t reformat it, either. I know that it works, as, the first time I loaded XSpand Your World, I was able to spend about 5 minutes going through the voices without any sort of issue.

I just saw the post about OS 1.12. Maybe I could load it and try again, but I’m reluctant to change too many variables at once.

Any suggestions for what I should try next?

  [ Ignore ]  

Posted on: September 17, 2010 @ 08:04 AM
bsmart
Total Posts:  225
Joined  01-12-2005
status: Enthusiast

As a last ditch effort, I started a format of the flash before going out tonight. When I returned, a few hours later, the flash had been correctly reformatted.

I’m not sure why the memory would have become corrupted from loading XSpand Your World twice and then using Optimize.

I’m also not sure why format didn’t work before. As I said, I waited about 45 minutes for my 1GB board to format. During this last attempt, I was gone for about 3 or 4 hours, and I sat here for the first few minutes of the format prior to leaving. I suppose that, somewhere between 5 minutes and 3 hours, during this third attempt, the format worked out.

I’m very glad that this isn’t some fatal issue! However, I’d like to understand what I did wrong, so I can avoid it in the future.

  [ Ignore ]  

Posted on: September 17, 2010 @ 09:23 AM
Bad_Mister
Avatar
Total Posts:  36620
Joined  07-30-2002
status: Moderator

First, never turn the power off while the unit is DELETING or FORMATTING.

Also pay close attention to the [UTILITY] > [F6] FLASH page which will tell you if your Board(s) contain data. For example, a FL512M might read:

TOTAL SIZE = 510M
FREE SIZE = 52M

And it might read this with no Waveforms listed. (And this is a key point to understand). The board contains the data. If you move the board to another Motif XF, the data is still on the board. Whether the new Motif XF in which you placed the board is “aware” of it - has not happened yet. That information is contained in a file that Load to the XF, that contains the pointers to that board data.

Loading is all about where you direct the data to go. We will try to have a comprehensive “newbie guide” to FLASH and loading libraries posted on Motifator in short order.

First rule, do not decide for the board what is too long a time.

I have a theory as to what happened to you (I was on an Amtrak train when I read your post) so have not been able to test the theory.

But Waveforms going to FLASH will not (ever) overwrite other Waveforms already in FLASH… So by loading two files directed at your Flash board you simply added more samples to the list.

The instrument must not turned off during the “Delete All” or “Format” process! Loading an “ALL” file will not overwrite user Waveforms already stored in the Flash Memory. Newly loaded waveforms are simply added. So if you want to load your samples into an empty memory, the Flash Memory has to be formatted or deleted beforehand.

Very glad you did not corrupt your FL board.

  [ Ignore ]  

Posted on: September 17, 2010 @ 06:54 PM
bsmart
Total Posts:  225
Joined  01-12-2005
status: Enthusiast

Thanks for the clarifications.

I understand about not turning off power while writing to flash storage. I’ve used flash on many other sorts of devices. When I turned off the XF, the board had seemingly been frozen for the better part of an hour. I understand that formatting flash and loading samples to flash are time consuming operations. However, I didn’t suspect that it would take that long. These tasks are the sort of place where a percentage indicator or a progress meter would be useful to indicate that the process is progressing. It seemed to me that the Motif must have certainly froze up/crashed.

And, should it really take that long to format a flash board?

The Delete All function seems to perform a similar task. I understand the logical difference between the two, but not the technical difference. Does formatting always take the same amount of time? If so, the Delete All function might be a better way to go if the number of waveforms on the board is below a particular threshold. Any guidelines regarding when to use one method over the other?

I think that the Optimize function may have contributed significantly to my situation. I was sure that Yamaha_US said that the Optimize function would remove waveforms from flash that were not associated with one of the currently loaded voices. I took that to mean that I could load an all file containing waveforms, run Optimize, and it would clear out all waveforms in flash that weren’t part of the all file that I just loaded. In my case, running Optimize didn’t free up any memory at all. Further, the Motif XF reference guide doesn’t say anything about purging unused waveforms. It says only that the Optimize function re-organizes flash memory in order to create the largest possible section of free space. I gather that it is basically a defrag function for the flash memory. You run it, and it relocates all of the waveforms so that the remaining free space is all contiguous. Perhaps the purge aspect wasn’t available until OS 1.1. Would you please help me understand how this function is supposed to operate?

Regarding the waveform list on F6… You say that, even with waveforms in flash, the list will be empty if no voices are loaded that reference those waveforms. Does this mean that the waveforms are entirely out of bounds, or just that this list only displays waveforms that are currently in use? If the F6 list is empty, I can still access all of the waveforms in flash when setting the waveform of a voice element, correct?

Thanks again for the details.

  [ Ignore ]  

Posted on: September 18, 2010 @ 09:31 AM
Bad_Mister
Avatar
Total Posts:  36620
Joined  07-30-2002
status: Moderator

-----------------------------------------------------------------
“The Flash Memory is only for storing User Waveforms and Samples. The editing of User Waveforms and Samples is always done in the SDRAM. After the installation - or if you want to completely overwrite it - you have to format the Flash Memory by using “Delete All” or “Format”. If only a small amount of data (e.g. 200 MB) is to be deleted we‘d recommend to use “Delete All”. With larger amounts of data the formatting works faster (about 25 minutes for 1 GB of Flash Memory). The instrument must not turned off during the “Delete All” or “Format” process!”

-----------------------------------------------------------------

As to OPTIMIZE, there is an optimize function for SDRAM (found in the INTEGRATED SAMPLING > JOB > [F3] OTHER:

------------------
“This Job optimizes the memory (SDRAM) for Sampling.
Optimization consolidates areas of used and unused (available) memory to create the largest possible area of contiguous available memory. In some cases, the amount of remaining memory will be increased when you execute the Optimize Memory Job.”

------------------

There is an OPTIMIZE function for Flash, found in UTILITY > [F6] FLASH > [SF4] Optimize:

------------------
“Use this button to optimize the Memory Expansion Memory Module.
Optimization consolidates areas of used and unused (available) memory to create the largest possible area of contiguous available memory. After selecting the Slot number, press this button to call up the confirmation dialog, then press the [INC/YES] button to execute the Optimize operation.

------------------

Optimize is a matter of creating contiguous memory - that is, non-fragmented data in your SDRAM or on your FLASH Expansion Module.

There is a separate JOB in INTEGRATED SAMPLING called “DELETE SAME NAME WAVEFORMS” It is possible to load WAVEFORMS with the same name - this can happen when the data comes from separate files. You can then make a determination if you would like to Trash that Waveform or not.

Samples with the same name, from the same file will not be duplicated - a sample with the same name from the same source file will not be loaded at all. For example, if you were to load individual VOICES from a single file, once the data is in memory, the XF will not duplicate the data - it will simply repoint the VOICE to the already existing data.

It is, however, possible (by mistake) to duplicate the WAVEFORM data in memory if you don’t understand the LOAD options. You can wind up with loading a duplicate copy of the WAVEFORMS. (We’ll try to explain in the article about this very useful FLASH LOAD option called “NONE” and how it is used to prevent unwanted duplication of the pointer information).

If you loaded in multiple ALL data files, you definitely increased the number of WAVEFORMS in memory (that is, if you targeted the FLASH Memory with the data). Then if you used the DELETE ALL options to remove the data, it is conceivable that it could take quite a bit more than the 25 minutes it takes to FORMAT a 1GB board.

  [ Ignore ]  

Posted on: September 18, 2010 @ 09:31 AM
Bad_Mister
Avatar
Total Posts:  36620
Joined  07-30-2002
status: Moderator

Think of the WAVEFORM list that appears as part of the ‘pointer’ information. It is the Name of the Waveform, it is the Waveform number 0001~2048, it is the KEYBANK information ie., mapping for note range, and velocity limit, it is information about which Voices use what, etc. (This pointer info is saved to file whether or not you actually write the samples to the file).

You can load the pointer information data independent of the SAMPLES. You have options to LOAD a FLASH board with the samples, without the samples, or with “None” of the above. The ‘pointer’ data loads in seconds (it is after all only pointers)… it is the audio SAMPLES that are large and slower due to their size and the fact that they must be burned to FLASH!

_ When loading an ALL data file that was created with samples in the USR SDRAM you would set the LOAD options such that “USR > USR”. This simply returns the audio to the SDRAM.

_ If you would like to take this same ALL data file and load its WAVEFORMS and SAMPLES to one of the two FLASH boards you would then set the LOAD option such that “USR > FL1” or “USR > FL2”. This would re-target the data and burn the samples to Flash.

_ If however you create an ALL data file that some WAVEFORMS and SAMPLES in USR SDRAM, and other WAVEFORM and SAMPLE data are in FLASH… and you want SAVE this all for archiving purposes you would set the SAVE options for FL1 and FL2 to ‘with sample’.

_ If you know that you are going to keep the data on the FLASH permanently and you made some edits to some of the VOICE data in the XF itself or you simply recorded some new SONGS or PATTERNS. You could simply SAVE the ALL data file ‘without sample’

After all, the data on the FLASH board is not changed, you only edited some VOICES, wrote a new SONG or a new PATTERN, etc. Because all contingencies are covered, you can save a much smaller file that contains only the FLASH “pointers”. So instead of SAVING a file that’s huge, you wind up with a much smaller file, but it contains the “pointers” that will inform the XF where to find the audio SAMPLES for everything. You just don’t need to save and resave all that data on the FLASH board every time.

When you SAVE files the XF will identify with an additional extension what type of data is in the file.

-----------------------------------------------------------------
...in the lower part of the File display additional parameters appear when you are loading files containing User Waveforms and Samples. For the data stored in the Flash Memory before executing SAVE you can select on the left bottom of the display (under the file type), whether the Samples should be saved or not. If “FL1” or “FL2” is selected, the Waveform data is stored including the Samples.

If “FL1 without sample” or “FL2 without sample” is selected, the Waveform data is stored without the Samples. This option allows you to store the contents of the SDRAM independently from the contents of the Flash Memory.

Files that are saved with the option “without sample” are automatically given a reference to identify their save-option:

• .n1 = FL1 without sample
• .n2 = FL2 without sample
• .n3 = FL1 + FL2 without sample

----------------------------------------------------------------

  [ Ignore ]  

Posted on: September 19, 2010 @ 06:06 AM
bsmart
Total Posts:  225
Joined  01-12-2005
status: Enthusiast

All very useful info. Thanks!

I’m particularly interested in learning how to best avoid creating duplicate waveforms in the flash memory. You said that the XF shouldn’t load waveforms that it already has in flash, but, perhaps, this chehck doesn’t happen when loading All files, just individual voices. In that case, I guess that I should just remember to use the Delete Same function in the sampling mode once I’ve finished loading a set of voices.

I’m looking forward to the tutorial.

  [ Ignore ]  


 
     


Previous Topic:

‹‹ Possible Freature request for Audio Record
Next Topic:

    Just got my new XF8 .... Incredible ››