Synth Forum

Notifications
Clear all

RE: User Sample Memory

19 Posts
3 Users
0 Reactions
2,613 Views
Darryl
Posts: 823
Prominent Member
Topic starter
 

The MONTAGE ships with 1.75GB of Flash Memory for custom audio data

This is slightly off the topic, but pertains to the usage of that 1.75 GB of User memory.

Yesterday I took my 'birthday' money and bought the Synthogy American Grand D steinway piano library. When I look at the User memory, I am currently using 1GB out of the 1.75GB available. I had previously done a Library Import of all the Imperial Bosendorfer piano Performances from that library to the User area and then deleted the Imperial Bosendorfer library.

My workflow/goal was to have all pianos(including their waveforms) reside in the User area and not have them in the Library area, so that I can save everything to a self contained .X7U User file, which would contain all the waveforms, and not have anything taking up memory/space in the Library area; However I think I need to re-think my workflow! ...Because if I were to try and add another piano library that is 500MB+ to the User area, it will tell me I don't have enough memory/space, as in order to get another large library Imported to the User area, I need to first load it to the Library area, which would mean that I am using up the current 1GB + 500MB(Library area), and then if I try to Import that new library to the User area(with the intention to delete the Library area piano library after it's imported to the User area, like I did with the Imperial Bosendorfer piano), it would then amount to 1GB(User area) + 500MB(Library area) + 500MB(User area), which puts me over the limit.

So, in order to maximize using the 1.75GB of User memory, would the following workflow work better:
Instead of Importing pianos from libraries to the User area, should I leave all the non-Preset piano libraries in the Library area, and just save them as new Performances to the User area (which if I understand correctly just saves the Performance data, but not the waveforms to the User area!?). Then when I do backups of the User area, the .X7U files will NOT contain the waveforms, but rather just point to the Library area for the piano waveforms. I would also need to do a full backup of the entire system including both the Library & User areas (just to be safe)!? As long as I don't ever delete the piano libraries in the Library area, the User area performances that I save will point to those libraries, thus allowing me to get closer to the 1.75GB mark since most of the waveform space usage is in the Library area, not the User area..!?

Basically, I think this is the workflow that I need to change to, but it all hinges on clarifying the following question: Am I correct in my understanding that, when saving Library area Performances as new Performances to the User area (not 'Importing' to User area), it just saves the Performance data with pointers back to the Library area waveforms, but doesn't save the waveforms themselves to the User area...and when saving the User area Performances to .X7U or .X7L files, those files would not contain the piano waveforms, but rather they would only contain pointers to the Library area waveforms. As long as I never delete the piano Libraries from the Library area(and do a Full backup of both the Library & User areas every now & then, especially after loading a brand new piano Library to the Library area), I should be able to save/modify User area Performances that point back to the Library area waveforms as a .X7U file, and then reload that .X7U back to the User area with all pointers intact (in the event I decide to either wipe the User area or load a different .X7U file to the User area in order to check out other sounds, which wipes the previous User area Performances)..!?

If I also save the User area Performances to a .X7L Library file, does that Library file still only contain the User area Performances with 'pointers' to the Library area waveforms, but not save the waveforms themselves? Basically saves mostly the same information/data that saving to a .X7U User file does..!?

 
Posted : 05/06/2019 1:18 pm
Bad Mister
Posts: 12303
 

This is slightly off the topic, but pertains to the usage of that 1.75 GB of User memory.

It is not only slightly off the topic, that’s not why we moved it, it’s not your thread. Allow a poster to continue with their own thread before you ‘hijack it’ with your own questions.

 
Posted : 05/06/2019 3:33 pm
Jason
Posts: 8176
Illustrious Member
 

Keep in mind memory is memory. User memory and library memory isn't different in terms of 1.75GB. Both subtract from the same memory pool. The difference in user and library is in flexibility - not storage. Library memory is not as flexible since you can't edit it (is "read only" ). Moving Performances from Library to User doesn't save any memory. You do not gain memory by doing this.

User Memory + Library Memory = 1.75GB max for Montage.

So you can see moving Waveforms from one region to the other doesn't buy you anything.

It's NOT User Memory = 1.75GB/2 (half of 1.75GB) and Library Memory = 1.75GB/2. It's as above - both have the same pool of 1.75GB. So your Library area can take up 1.75GB and User area 0GB. Or your User area can have 0.75GB while your Library area has 1GB. Any combination which adds up to 1.75GB maximum.

There are other resource considerations (like maximum count of Libraries - not size, but number of slots) which may be a reason to use User vs Library -- or at least "shuffle" two Libraries to the User area in order to "merge" them into one and then re-save these into a single Library slot.

The primary reason to place data in the User area is in order to enable editing the Performances since the User area is the only memory region which allows for saving. Before your Performance is finalized - it would be best to leave in the user area while you "design" it and save/re-save (overwrite).

Over time as you "finish" a user Performance and want to keep it forever as part of your sounds - you can promote the finished user sounds to a library slot. You should be sure you have enough of a collection to promote to justify this. One finished Performance in a Library Slot is OK - but would be fairly wasteful of resources considering a library slot can hold 640 Performances and you get a limited count of Library slots.

I know you have some other questions - but wanted to be sure you were solid on this as it seemed you had a misconception of how the memory worked.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 05/06/2019 3:45 pm
Darryl
Posts: 823
Prominent Member
Topic starter
 

Keep in mind memory is memory. User memory and library memory isn't different in terms of 1.75GB. Both subtract from the same memory pool. The difference in user and library is in flexibility - not storage. Library memory is not as flexible since you can't edit it (is "read only" ). Moving Performances from Library to User doesn't save any memory. You do not gain memory by doing this.

User Memory + Library Memory = 1.75GB max for Montage.

So you can see moving Waveforms from one region to the other doesn't buy you anything.

It's NOT User Memory = 1.75GB/2 (half of 1.75GB) and Library Memory = 1.75GB/2. It's as above - both have the same pool of 1.75GB. So your Library area can take up 1.75GB and User area 0GB. Or your User area can have 0.75GB while your Library area has 1GB. Any combination which adds up to 1.75GB maximum.

Thanks Jason!
Definitely, I was fully aware that Library & User both share the 1.75GB max. That is kinda the problem with the workflow I was planning/starting to use. At certain points, I would have a piano library loaded and then Import to User area, which basically doubles the amount of waveforms during that time, because the library performances have the piano waveforms, but now the User area also has a copy of the waveforms since I did an 'Import' of all the Library Performances instead of just a 'Save'. So for a 500MB library, I am using 1000MB of memory until I delete the piano from the Library area.

I won't repeat all my other questions, as I know you wanted to be clear that I understood the basics that User & Library both share the same max 1.75GB, but if you could confirm my new possible workflow I mentioned as a good method and valid as far as waveforms saved or not saved to the .X7U &/or .X7L files...Thanks!

 
Posted : 05/06/2019 4:15 pm
Jason
Posts: 8176
Illustrious Member
 

If a Performance in your Library area has custom Waveforms which would subtract from the 1.75GB memory pool (as opposed to factory preset waveforms which do not subtract from the 1.75GB pool) - then when you [STORE] this said Library Performance with custom Waveforms to the User area - the User area copy will not have any Waveform in the User area. The User copy will "point" to the Library Waveform which requires that Library slot remain in-tact (in the same slot location) in order for this User copy to work.

As long as this User copy Performance's link back to the Library slot is not broken - the Performance will work.

You can "break" this link by deleting the Library slot or restoring the Libraries such that the target Library is placed in a different slot. Use of Backups (X7A) can ensure everything is put back in its place - but you may not always want to use this method to restore memory. You may want more granular use of memory using X7L and X7U. Its when loading X7L that you need to pay attention to the slot numbers. It's not so easy since you can't say "load this X7L into slot #X". A Library will load into the next available open slot. So you have to restore in order - or delete the "right" library then load the intended one for that slot just deleted (assuming its a "hole" in the middle).

When you touch the Performance name and select the "Property" option from the pop-up menu - this screen will tell you the slot by number by looking at the LSB (as in MSB, LSB, PC). You have to decode it a bit.

LSB 40-44 = Library Slot 1
LSB 45-49 = Library Slot 2
LSB 50-54 = Library Slot 3
LSB 55-59 = Library Slot 4
LSB 60-64 = Library Slot 5
LSB 65-69 = Library Slot 6
LSB 70-74 = Library Slot 7
LSB 75-79 = Library Slot 8

So if you pick any Performance from the library you're wondering about - you can see which slot that library is paced in by decoding the LSB of any given Library Performance (for the Library in question).

For me, I have 2 Libraries loaded. When I do [CATEGORY SEARCH] and choose the bank of my 1st library - then select the first Performance from this bank - I get LSB=40 (slot 1) for Chick Corea's Rhodes. Using the same methods, the 2nd library in my bank list is reporting LSB=55 (slot 4) for Wojtek Olszack's pack. I believe I previously had slots 1-4 filled but deleted whatever was in slot 2 and 3. So if I initialized my Montage and started restoring libraries from X7L files - I'd want to maybe create a "dummy" X7L with no samples and a single Performance so it can load faster. I can have 2 copies Dummy1.X7L and Dummy2.X7L. I'd load the Library that was reporting slot 1 first - the Chick Corea library, then Dummy1 then Dummy2 then the Wojtek Olszack pack. This should manually place the Libraries back in the correct slots. I can delete libraries Dummy1 and Dummy2 that were used as place-holders to ensure the Olszack pack loaded in the correct slot (4).

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 05/06/2019 4:39 pm
Darryl
Posts: 823
Prominent Member
Topic starter
 

This is slightly off the topic, but pertains to the usage of that 1.75 GB of User memory.

It is not only slightly off the topic, that’s not why we moved it, it’s not your thread. Allow a poster to continue with their own thread before you ‘hijack it’ with your own questions.

BM, I am nearly speechless ... but none the less, lesson learned!
Firstly, I wasn't trying to hijack that thread, as I thought my question was related enough to the topic of "User Sample Memory" to post there, and I try not to start new threads if a similar thread topic is already created, so sorry OP, I wasn't trying to be rude or hijack your thread. I thought I was doing a good thing by using an existing thread that related to my question and not starting a new one; however in the future I will start a new thread on questions I might have. Secondly, I didn't know the protocol on waiting for a poster that starts a thread to have more than one post before others can join in with questions that are related in some way. Thirdly, it is very unfortunate that there is no PM'ing available on this forum, as I would have preferred to find this all out in private instead of being bluntly & abruptly schooled for all to see. The word 'Please' would have gone a long way for you to use in explaining the rules to me, as well as why you moved my post. My intent in any post is never to be malicious, I would never purposefully try to hijack a thread or break rules, and I only post with good intentions to gain better understanding, learn more, have questions answered, and hopefully in doing so, others will read and learn some things or have their questions answered as well. I try to always be respectful, polite, patient, not rude, not blunt, not abrupt, not break the rules, not assume things and give others the benefit of the doubt when exchanging posts.
I would sincerely appreciate in the future when being told/corrected/schooled on something I'm doing wrong, if you could understand & keep my intentions in mind, give me the benefit of the doubt that I'm not doing it intentionally, not trying to be rude & that I just don't know the forum's rules/protocol, and please treat me with the same respect that I am trying to extend to others at all times. At the very least, please just let me know and/or ask me politely or less abruptly. After all, I am Canadian eh! Thank you...

 
Posted : 05/06/2019 5:12 pm
Jason
Posts: 8176
Illustrious Member
 

More on-topic than other tangents. No matter - you've got your own sandbox here.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 05/06/2019 5:18 pm
Darryl
Posts: 823
Prominent Member
Topic starter
 

If a Performance in your Library area has custom Waveforms which would subtract from the 1.75GB memory pool (as opposed to factory preset waveforms which do not subtract from the 1.75GB pool) - then when you [STORE] this said Library Performance with custom Waveforms to the User area - the User area copy will not have any Waveform in the User area. The User copy will "point" to the Library Waveform which requires that Library slot remain in-tact (in the same slot location) in order for this User copy to work.

As long as this User copy Performance's link back to the Library slot is not broken - the Performance will work.

You can "break" this link by deleting the Library slot or restoring the Libraries such that the target Library is placed in a different slot. Use of Backups (X7A) can ensure everything is put back in its place - but you may not always want to use this method to restore memory. You may want more granular use of memory using X7L and X7U. Its when loading X7L that you need to pay attention to the slot numbers. It's not so easy since you can't say "load this X7L into slot #X". A Library will load into the next available open slot. So you have to restore in order - or delete the "right" library then load the intended one for that slot just deleted (assuming its a "hole" in the middle).

When you touch the Performance name and select the "Property" option from the pop-up menu - this screen will tell you the slot by number by looking at the LSB (as in MSB, LSB, PC). You have to decode it a bit.

LSB 40-44 = Library Slot 1
LSB 45-49 = Library Slot 2
...
LSB 70-74 = Library Slot 7
LSB 75-79 = Library Slot 8

So if you pick any Performance from the library you're wondering about - you can see which slot that library is paced in by decoding the LSB of any given Library Performance (for the Library in question).

Perfect! Thank you for the reassurance/clarification that [STORE] doesn't copy the custom waveforms. I just wanted to be certain before changing my workflow. And it's awesome to know about the granularity of library slots and the importance of their order for .X7L's. Although I'm not familiar with (MSB, LSB, PC), but I am guessing LSB is for Library Storage Bank & MSB-Message Storage Bank..!? Not sure about PC..(Personal Computer!?)

So my new workflow for User, Library, Performance, etc. management, will be to verify & document the Library Slot 1-8 order, and make sure that the order is maintained. I will do a .X7A full backup before any changes are made to the library area. If it's a library that I intend to keep long term, such as a full piano library, I will only use [STORE]. If it's a library that I only plan to keep short term, then I will promote content via 'Library Import' to the User area of just the Performances I want to keep, then save the User area to both .X7U & .X7L files, and then delete that temporary library (and verify that all other long term libraries are still in the same slots).

I also have 2 USB sticks, so I'll make sure to keep a copy on both for redundancy, as well as copy to my computer/DAW, along with a .txt document listing the LSB Library Slot order.

Knowing about the LSB Library Slot order will come in really handy later on if I am near maxed out on available User/Library shared memory, but want to load a new library temporarily to a library slot in order to 'Library Import' a few Performances & their custom waveforms(if applicable) to the User area. Then save the User area to .X7U & X7L, delete the temporary library, verify the empty library lot LSB #, and load the long term library back to the proper library slot.

I think this will allow me to maximize the usage of User memory. Thanks!

 
Posted : 05/06/2019 6:14 pm
Jason
Posts: 8176
Illustrious Member
 

MSB stands for most significant bit. LSB stands for least significant bit. PC stands for Program change.

When we have an address in computer-land - we represent an address by some count of some storage element. A "byte" is one such storage element - 8 bits. MIDI actually primarily uses 7-bits for each value. The 8th bit is used sometimes but mostly reserved. Since a 7-bit value is at maximum the value of 128 decimal - say we need more than 128 addresses. We would gain more by using multiple address "bytes". In this case, we can use 2 7-bit values which increases the number of addresses from 128 to 16,384. That's the maximum MSB/LSB addressability we can have. Considering each address gets 128 PCs - that's 2,097,152 maximum "programs". Since we have two bytes for the MSB/LSB pair - the "M" in most significant means this is going to be the high-side value and "LSB" is the low side. Roughly if you have a number like 123,456 - the "123" (left of the "," ) is the high side - or most significant digits and "456" are the least significant ones. Side of the comma is not really what MSB/LSB means - but it's a close enough analogy. The "comma" (or break-point for most vs least) is based on other factors - not important.

Sounds in MIDI are recalled in a standard manner by using PC to select a sound (program). This offers 128 total programs. This can be extended to more by setting the MSB and LSB to select more ranges of PCs (at 128 chunks at a time). MSB+LSB+PC collectively make up what I would consider an "address" of a particular sound. In Montage, there is a table of MSB/LSB which are for libraries. This is documented in the Data List (montage_en_dl_h0.pdf is what I use today). Page 187 of this PDF has a chart with MSB+LSB+PC for libraries. There's two "halves" - a "Single Part" section and a "Multi Part" section. "Multi Part" means Performance. "Single Part" means PART. MSB=64 means "Multi Part" (for Library, Preset, or User Performances). That's primarily what MSB is used for in Montage. Although the use is not defined by any standard - so "MSB" could be used differently for different MIDI devices. The chart shows 40 library entries. Since each range of MSB+LSB reflects 128 programs (PC values = different Performances) and each library is 640 Performances maximum - do the math. 640 performances / 128 programs per MSB+LSB pair means there are 5 chunks of PCs per Library. MSB is always 64 for Performances - so this means that LSB must have 5 different values for each Library. Also 40 library entries divided by 5 = 8 (the number of libraries) -- so the math all checks out.

This is why LSB 40-44 is Library 1. 40 (PC 1-128 chunk 1), 41 (PC 1-128 chunk 2), 42 (PC 1-128 chunk 3), 43 (PC 1-128 chunk 4), 44 (PC 1-128 chunk 5). 5 PC ranges per library.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 05/06/2019 7:33 pm
Darryl
Posts: 823
Prominent Member
Topic starter
 

MSB stands for most significant bit. LSB stands for least significant bit. PC stands for Program change.

This is why LSB 40-44 is Library 1. 40 (PC 1-128 chunk 1), 41 (PC 1-128 chunk 2), 42 (PC 1-128 chunk 3), 43 (PC 1-128 chunk 4), 44 (PC 1-128 chunk 5). 5 PC ranges per library.

Very interesting! A bit more complex than I would have guessed...

I realize this would also have been incorrect; however being that you posted 'LSB 40-44 = Library Slot 1', a better guess on my part for LSB would have been 'Library Slot Bank' :p

I'm glad I found this out now & changed to a better workflow that will allow me to utilize most of the 1.75GB User memory, before I went ahead and customized a bunch of Performances with the various non-Preset Piano's custom waveforms residing in the User area instead of in the Library area!

 
Posted : 05/06/2019 8:02 pm
Jason
Posts: 8176
Illustrious Member
 

If you reference the documentation (data list) - you'll see the cart on the page referenced shows (when MSB=64) LSB 0-31 are factory preset Performances, LSB 32-36 are user Performances.

It's not so important to know all these details. But knowing how to figure out which library slots are used does involve knowing how to look at LSB - and that's it. Not important what it means, stands for, etc. Extra information given for the curious but not necessary to function.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 05/06/2019 8:09 pm
Darryl
Posts: 823
Prominent Member
Topic starter
 

If you reference the documentation (data list) - you'll see the cart on the page referenced shows (when MSB=64) LSB 0-31 are factory preset Performances, LSB 32-36 are user Performances.

I looked through the 'montage_en_dl_d0.pdf' data list doc, but couldn't find the MSB=64 chart. I see the chart's on P. 180 & 183 where MSB=63 and it shows the LSB's for Presets & User Performances, as well as Library, but those LSB numbers don't seem to line up.

Library 1 - 40 = LSB 24 - 63 (for single Part)
Library 1 - 40 = LSB 88 - 127 (for multi Part)

I couldn't find anything that lines up with MSB = 64 and with LSB's per below:
LSB 40-44 = Library Slot 1
LSB 45-49 = Library Slot 2
...
LSB 70-74 = Library Slot 7
LSB 75-79 = Library Slot 8

Last night I checked the 'Synthogy American Grand piano' library (via one of the Performances Properties like you said) and it had MSB=64 & LSB in the range for Library Slot 1. I also checked a FM-X based library that I had created and loaded first, and it had MSB=64 & LSB=29. Does this make sense!? Could the FM-X library cause issues with the order of the Waveform based Libraries? What Library Slot # would LSB=29 fall under?

 
Posted : 06/06/2019 12:56 pm
Jason
Posts: 8176
Illustrious Member
 

This is the documentation I have already expressed using:

This is documented in the Data List (montage_en_dl_h0.pdf is what I use today)

Version H0.

Your document as version D0 is much earlier and represents firmware before this addressing changed. It did change. Use the latest documentation assuming you have the latest firmware.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 06/06/2019 7:06 pm
Darryl
Posts: 823
Prominent Member
Topic starter
 

This is the documentation I have already expressed using:

This is documented in the Data List (montage_en_dl_h0.pdf is what I use today)

Version H0.

Your document as version D0 is much earlier and represents firmware before this addressing changed. It did change. Use the latest documentation assuming you have the latest firmware.

My bad! Yeah that lines up... Except I'm not sure about why my 1st Library (which is FM-X based - imported from my DX7II-FD synth) shows as MSB=64 & LSB=29..!? That shows as being 'Preset 30' in table of the Data List pdf..!?

 
Posted : 06/06/2019 8:12 pm
Jason
Posts: 8176
Illustrious Member
 

You're probably doing something wrong. Either in selecting the Performance from the Library to begin with or in your interpretation of the results. It's unlikely that the system is mis-reporting where the Performance is indexed.

What's your firmware version? It has to be new because MSB=64 is only for the newer firmware (older firmware did not use 64 at all - only 63).

Are you sure you're not telling me 29 is the PC? If you take a screenshot of the "Property" screen with a camera (easier than telling you how to make Montage save a file to USB) - then also the HOME screen with the Performance name - this would help answer questions.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 06/06/2019 9:48 pm
Page 1 / 2
Share:

© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us