Jump to content
Video Files on Forum ×

ac7 style file renamer: testers wanted


shiihs

Recommended Posts

2 hours ago, shiihs said:

 

Did you notice the "multiple files" tab? It also allows for loading a complete folder of rhythms to enable bulk editing, but at the moment, variation swapping cannot be indicated in that tab. A command line version of the program could be an alternative of course, but perhaps imposes a higher "minimal tech-savvyness" on the users.

 

Hi @shiihsactually bulk processing would be esp. helpful for variation swapping since it would basically enable CT-X700/800 users to access all variations of the CT-X5000/3000 rhythm archive with not much processing.

Link to comment
Share on other sites

8 hours ago, shiihs said:

 

Hi Vinciane, 

 

First of all, I'm sorry for your loss. This time of year usually is quite hard for those who've lost loved ones.

 

As for the dummies guide: it would be interesting if you could just try it out, and where you get stuck/confused, let me know. Those are the parts that warrant some improvements/clarifications.

 

The basic work flow should be straightforward: 

  1. make a backup of your rhythms before you start editing them; one never knows :)
  2. load an .AC7 file using the load button
  3. type the desired display name in the "desired display name" text field
  4. then, if you want to: tweak the desired ordering of variations at the bottom: the top row (grayed out) lists the current ordering, and in the bottom row you can select the desired ordering. E.g if you wanted to copy variation 3 into variation 1, you'd select variation 3 in the bottom row under variation 1 in the top row. Note: you can resize the user interface window using the mouse if you cannot see all the options simultaneously.
  5. save the .AC7 file (give it a new name)

During saving, all tracks are automatically unlocked for editing.

 

Hi @shiihs thanks for helping and for your kind words. Fortunately, a friend of mine invited me at her mother’s for Christmas with two other friends so I was in good and cheerful company.

 

Thank you also for your thorough explanations. I’ll try to do as suggested and share here with you the results of my endeavours to access all 4 variations of my favourite CT-X500/3000 rhythms on the CT-X800.

Link to comment
Share on other sites

37 minutes ago, vbdx66 said:

Hi @shiihsactually bulk processing would be esp. helpful for variation swapping since it would basically enable CT-X700/800 users to access all variations of the CT-X5000/3000 rhythm archive with not much processing.

 

It's not entirely clear to me how you envision something like this to work: do you want to specify one reordering for all rhythms in the list, or a separate reordering per rhythm?

Link to comment
Share on other sites

1 hour ago, shiihs said:

 

It's not entirely clear to me how you envision something like this to work: do you want to specify one reordering for all rhythms in the list, or a separate reordering per rhythm?

Both possibilities would be useful but for my personal usage, the first would be best since I guess all CT-X300/5000 rhythms have the same structure, so what I would like to do is to start from the CT-X3000 rhythm archive made by @Chandler Hollowayand reorder rhythm parts so that eventually, I would have all 4 variations and fills in two separate files named, let’s say, 12 and 34, for instance the original rhythm « March » would give « March12 » and « March34 » depending on which of the four fills and variations would be « visible » by the CT-X700/800 after rearranging parts.

One thing comes to my mind: does anybody know, from the 4 variations and fills from the original CT-X3000/5000 rhythms, which ones are actually being used by the CT-X700/800? This is because for the rhythms which are originally found on the CT-X700/800, one would only need one « swapped » external rhythm file with the non-visible variations.

On the other hand, for the rhythms which are only on the CT-X3000/5000, it would be necessary to produce two different files to make all 4 fills and variations accessible to the CT-X700/800.

And yet something else: am I right in assuming that this swapping business could also be used to make Intro2 and Ending2 from the MZ-X series « visible » to the CT-X keyboards?

 

Link to comment
Share on other sites

2 minutes ago, vbdx66 said:

[...]

I would have all 4 variations and fills in two separate files named, let’s say, 12 and 34, for instance the original rhythm « March » would give « March12 » and « March34 » depending on which of the four fills and variations would be « visible » by the CT-X700/800 after rearranging parts.

 

[...]

 

And yet something else: am I right in assuming that this swapping business could also be used to make Intro2 and Ending2 from the MZ-X series « visible » to the CT-X keyboards?

 

I guess the easiest would be to make the multi file tab reuse the custom ordering specified in the single file tab.

 

In principle it should be possible to use intro2 and ending2 in the way you imagine, but I cannot test it myself.

 

There's one possibility that some of these higher-numbered styles would reference instruments that are not known on the lower-end models, so you might manually have to revise some of the mixer settings to correct the instrument mapping...

Link to comment
Share on other sites

1 hour ago, vbdx66 said:

And yet something else: am I right in assuming that this swapping business could also be used to make Intro2 and Ending2 from the MZ-X series « visible » to the CT-X keyboards?

 

@shiihs, I took one of the rhythms from the MZ-X archive that @Chandler Holloway posted, and used your tool to move intro/ending 2 down into intro/ending 1.  They sounded somewhat similar, but the intro 1 was 4 bars, and the intro 2 was a shorter 2 bars (not anything wrong with that, I'm just saying they were in fact different, and both worked).  So apparently that works, and you can take MZ-X rhythms and pick the intro and ending you prefer, for use on these lower models.

 

By the way, I wouldn't be surprised if a lot of those rhythms are that way, with one somewhat "elaborate" intro/ending, and another that's much the same, but a bit simpler.

Link to comment
Share on other sites

5 minutes ago, Mclandy said:

@shiihs, I took one of the rhythms from the MZ-X archive that @Chandler Holloway posted, and used your tool to move intro/ending 2 down into intro/ending 1.  They sounded somewhat similar, but in fact the intro 1 was 4 bars, and the intro 2 was a shorter 2 bars (not anything wrong with that, I'm just saying they were in fact different).  So apparently that works, and you can take MZ-X rhythms and pick the intro and ending you prefer, for use on these lower models.

 

Thanks for trying this out @Mclandy

 

I am more confident than ever now that the combined efforts of everyone in this forum thread have led to nailing the basics of understanding the undocumented binary .ac7 file format :). There are some remaining parameters in the .ac7 files generated by newer model Casios that I cannot interpret correctly and since I don't own such model I also cannot set up any experiments to further reverse engineer those (but I have enough information to keep those sections as binary blobs and carry them around with the rest of the info that I do understand, so it is possible to modify file contents without corrupting the files).

 

  • Thanks 1
Link to comment
Share on other sites

8 hours ago, vbdx66 said:

One thing comes to my mind: does anybody know, from the 4 variations and fills from the original CT-X3000/5000 rhythms, which ones are actually being used by the CT-X700/800? This is because for the rhythms which are originally found on the CT-X700/800, one would only need one « swapped » external rhythm file with the non-visible variations.


First off, Vinciane, I too am sorry for your loss. Glad to hear you are in good spirits, and that you were among loved ones this holiday season.

 

Second, I do happen to have this information (mostly). I own an X700 and an X5000, so I’m probably one of the few people equipped to go through every single rhythm and do a side by side comparison to determine which variations actually made the transition from the 4 to 2 variation models. And I did, a few months ago, as I would eventually need this information to reconstruct the CT-X700 archive using the 4-variation files from my CT-X3000. I didn’t digitize the list, so it’s all still handwritten on a legal pad (trust me, the process was so mind numbing that the thought of having a third keyboard out on my desk was unbearable), but you’re welcome to look over my notes to get the info you need. I’ve attached hi-res images to this post, hopefully my handwriting is readable enough.

 

From what I could tell, the variations and the fills almost always came “together” in terms of the slot numbers in the source 4-variation Rhythms. In other words, if variation 1 and variation 3 were taken from the 4-variation original, then so were fill 1 and fill 3. So, if I just wrote “1+3” for a particular Rhythm, that means the CT-X700 equivalent has variation 1, fill-in 1, variation 3, and fill-in 3. The first number (left of the plus) is the variation/fill that ended up in the “Normal” slot on the X700, the second (right of the plus) is the var/fill that ended up in the “Variation” slot.

 

In the rare cases that variations and fills were mixed and matched, I noted it down as “V1F2 + V4F3” to describe the exact fills and variations that were used.

 

A number in parentheses right next to a Rhythm name means that there were multiple styles in the CT-X5000 that shared the same name (for example, Cumbia 1 and Cumbia 2), but on the CT-X700, only one of those styles was brought over (and as such, the number was dropped from the name). The number here indicates which of those numbered styles was taken from the CT-X5000, if the number is not in parentheses, it means those multiple numbered styles are also on the CT-X700.
 

A question mark or a blank entry means that I wasn’t sure, it sounded like a completely different Rhythm, or that Rhythm didn’t exist on the X5000 (this is the case for that long block of Indian styles I had to leave blank; I was surprised that the lower end CT-X models had some styles that the higher end ones didn’t). Because these are all Indian styles, I assume this decision has something to do with the selection of tones/rhythms that were set aside for the CT-X IN variants that are sold in India and the surrounding regions.

 

For the styles I couldn’t find on the CT-X5000, I’m guessing they’re from the MZ-X or some other .AC7 model. Some of the Indian styles I found on the MZ-X, but the voice assignments needed to be altered to get it to sound right. In these cases, I wrote a little “VA” note next to the style name.

 

If I can’t track these other missing styles down, I’ll have to record the CT-X700’s accompaniment output to a MIDI file and convert them by hand, which will be a lot easier now that this .AC7 maker exists. Still hoping that the source material can be found somehow, as it’s gonna be tricky to reconstruct the style exactly like the original without knowing some hidden parameters like the chord table (these aren’t output via MIDI).

 

A check mark to the left of the Rhythm name means I swapped the variations properly and exported the CT-X700 version of the file for the archive. As you can see, I didn’t get very far... I was doing it by hand on the CT-X5000, so it was extremely tedious. Eventually other projects came up and the archive had to be put on hold. Unfortunately, this project does not fall under my official Casio duties, and those take priority. It’s a labor of love done by Casio fans, for Casio fans (like a lot of the good work done of these forums 🥰).

 

Hope this helps. Please let me know if you find any errors in my notes.

9A60BFD7-5143-4ADA-A45C-A4521244D803.jpeg

89444811-A76D-4CBD-A867-BE274583219A.jpeg

21370AE8-1E6C-4EC0-AAC9-68C366585DC0.jpeg

  • Thanks 1
Link to comment
Share on other sites

That represents a lot of work @Chandler Holloway!  @vbdx66, I guess this also implies that one shared voice reordering for all rhythms in a folder is not super useful also in your use case? I still don't have a good idea how to add such functionality in the tool in a user friendly way.

 

Chandler's scans perhaps are a good starting point to think about a specialized notation for concisely specifying a remapping (but it has to be general enough to unambiguously deal with all possible remappings that make sense to a user). E.g. there's an additional complication that many older .ac7 files do not have a variation 3, so what should happen if one still asks to use variation 3 in such case? 

 

In short, if anyone has suggestions on how to specify remapping for bulk changes that is also user friendly, I'm happy to hear about them, but at the moment I don't see a very good solution...

 

 

 

 

 

Link to comment
Share on other sites

Hi @Chandler Hollowayand thanks for your kind words. It is hard to loose someone but it is even harder when you have to keep away from your family and friends because of the lockdown we’re still experiencing in France and in Belgium, which makes travelling very complicated to say the least.

 

To get back to the main subject of this topic, I am impressed, the work you put in this classification of the CT-X rhythms is simply daunting!!

 

From what I see from your notes (by the way, who would have thought that a geek would still use legal pads 😂 - mind you, I do exactly the same, for instance when I am trying to track the chord progression in a given song - see attachment), it would be very complicated to extract the two unused variations from a CT-X5000 rhythm file to make them available to the CT-X700. I think it will be much simpler to take the few rhythms that I really like (most of them in the Pop, Jazz, Dance and Ensemble categories) and “divide” the original rhythm into two files: one with V1F1 V2F2 from the original CT-X5000 AC7 file, and a second one with V3F3 and V4F4. Both files could then be accessed through registrations to mimick the 4 variations, 4 fills AC7 rhythms of the CT-X5000.

 

I have used some rhythms from your CT-X3000 rhythm archive in the past and from my experience, they play quite nicely on the CT-X800. As you suggested in another post, the “default” remapping of voices is well thought and if the CT-X800 doesn’t find a panel voice in an AC7 file, it will replace it with the next best voice, which will be OK most of the time.

 

One last word about world music rhythms, esp. Indian rhythms: I was very disappointed after having received my CT-X800 when I noticed that there were so many “international” rhythms onboard since they’re completely useless for the type of music I am making (Western music).

So I felt kind of “cheated” because actually, there are only about 120 usable rhythms onboard, not 185. 

IMHO, rhythmwise, the new Yamaha PSR E373, for instance, is way ahead the CT-X700/800 and there is room for improvement there for the line of Casio home keyboards which will replace the CT-X line some day. I am very curious about what the forthcoming Yamaha PSR E473 will have to offer.

 

@shiihs Thank you for all the work you are putting into your software. I don’t completely understand the bulk processsing of rhythm files in ReStyle but as I see it, it would be very convenient to be able to take all the files in one folder, for instance the “Jazz” folder from Chandler’s CT-X3000 rhythm archive, and have them processed at once to get two files, one with V1F1 V2F2 and the other with V3F3 and V4F4 for every 4-variations, 4-fills rhythm found in the folder.

768D37BD-2749-4FEA-B1E6-FD789C2661DC.jpeg

Edited by vbdx66
Adding attachment
Link to comment
Share on other sites

2 minutes ago, vbdx66 said:

 

@shiihs Thank you for all the work you are putting into your software. I don’t completely understand the bulk processsing of rhythm files in ReStyle but as I see it, it would be very convenient to be able to take all the files in one folder, for instance the “Jazz” folder from Chandler’s CT-X3000 rhythm archive, and have them processed at once to get two files, one with V1F1 V2F2 and the other with V3F3 and V4F4 for every 4-variations, 4-fills rhythm found in the folder.

 

@vbdx66 in that case I could e.g. think about adding a quick "rhythm split" button in the multiple files tab, which turns every rhythm into 2 rhythms: I1+V1+V2+F1+F2+E1 and I2+V3+V4+F3+F4+E2. For rhythms that are missing some of the higher variations/intros/endings, some fallback to the lower variations can be implemented, or an error can be shown. If the only intention is to make invisible elements visible for exploration purposes this approach is probably sufficient, but it doesn't guarantee that the variations are conveniently grouped. If they are not grouped well, you would still need to remap the original rhythm via the single files tab. Does that make sense?

  • Thanks 1
Link to comment
Share on other sites

Just a practical observation here.  I think perhaps having a simple "split" automation in the tool might not be a bad idea, just to make all rhythms in a library set available to anyone with a more limited keyboard.

 

But what I've noticed about most of the rhythms on the CT-X5000 is that there is not a real substantial difference between the rhythms in a set, but they are organized so that V1 is sort of the subdued, minimalist version, and then they "grow" with additional layers up to V4.  And if you think about the way a lot of music is done, they often start a song with that minimal rhythm and build up to a crescendo, or sometimes drop back down to the minimal version again.  So what I'm saying is that splitting a rhythm into V1/V2 and V3/V4 doesn't necessarily give you what you want - V1/V2 will probably be fairly "light" and V3/V4 will be fairly "heavy".  If you're stuck with only two variations, you might actually want V1 and your preference of V2, V3, or V4.  Or maybe V2 along with V3 or V4.

 

I guess I'm just saying that the choice is not obvious.  But I do agree that having a "split" function would at least make all the choices more accessible to people on a limited keyboard, so they can at least hear them, and then make a more informed selection.

Link to comment
Share on other sites

1 minute ago, Mclandy said:

And having just looked in more detail at Chandler's notes above, it appears to back up what I was saying.  You can see where Casio had 4 variations and picked 2 for the lower keyboards, and it's often V1+V3 or V1+V4 or V2+V4.

 

@Mclandy true, but his notes also contain combinations of certain variations with other fills. So whatever we come up will either

  • have to be very general (but I'm not sure in that case bulk editing will bring a lot of advantage, unless you create a list of all desired combinations beforehand, like Chandler did (but perhaps no one else but him does :) ))
  • or, if this feature is mostly used for exploration purposes then a default split 1+2, 3+4 should be sufficient.
Link to comment
Share on other sites

@shiihs,  my opinion, I'd say only the split function has some value from a bulk perspective.  Plus it should be fairly straightforward to implement.  Everything else is going to be subjective, and vary by rhythm, and your utility already provides the ability to put together exactly what you want.

 

Quick question - I've tried looking through this long thread, so sorry if I missed it.  In the multi-file editing tab, is there a way to specify that you want to process a file, but keep the same display name and/or file name, without having to retype it?  Like maybe by entering a special character, like "=" or "*", to imply to just use the existing name?

Link to comment
Share on other sites

2 hours ago, Mclandy said:

@shiihs,  my opinion, I'd say only the split function has some value from a bulk perspective.  Plus it should be fairly straightforward to implement.  Everything else is going to be subjective, and vary by rhythm, and your utility already provides the ability to put together exactly what you want.

 

Quick question - I've tried looking through this long thread, so sorry if I missed it.  In the multi-file editing tab, is there a way to specify that you want to process a file, but keep the same display name and/or file name, without having to retype it?  Like maybe by entering a special character, like "=" or "*", to imply to just use the existing name?

 

At the moment no provisions are made: the bulk editing predates the unlocking implementation so back then it made more sense to just skip the rhythms without new name. I could easily add something like that though.

Link to comment
Share on other sites

57 minutes ago, shiihs said:

@Mclandy Actually, upon inspection of the source code, I suspect if you leave the new name empty the old name will automatically be reused. So it should unlock everything and keep the existing name if you don't specify a new name.

I do realize it predates the unlocking feature.  But what I'm seeing is that if I don't put anything in the Desired Display Name field, nothing happens on that file.  If I do put something in the Desired Display Name field, but leave the New Filename empty, then as you say, it uses the Current Filename.  And of course, if I fill in the New Filename field, it uses that as the new file name.

 

So if you're just unlocking and not renaming, it would be nice to have something simple you can put in the Desired Display Name field to indicate that it should be processed, but keep the Display Name the same.  An alternative would be to add checkboxes to explicitly indicate which files to process, with a "select/deselect all" box at the top.  Actually, that might be pretty handy.

Link to comment
Share on other sites

21 minutes ago, Mclandy said:

I do realize it predates the unlocking feature.  But what I'm seeing is that if I don't put anything in the Desired Display Name field, nothing happens on that file. 

You are right, I made an error there. I'll take a look to see how easy it is to add the checkboxes you propose.

 

Link to comment
Share on other sites

19 minutes ago, shiihs said:

You are right, I made an error there. I'll take a look to see how easy it is to add the checkboxes you propose.

 

I don't think it was an error - before, the only point of doing this was to rename the style, so you sort of had to enter something.  Unlocking definitely created a new use case.

Link to comment
Share on other sites

10 hours ago, vbdx66 said:

I think it will be much simpler to take the few rhythms that I really like (most of them in the Pop, Jazz, Dance and Ensemble categories) and “divide” the original rhythm into two files: one with V1F1 V2F2 from the original CT-X5000 AC7 file, and a second one with V3F3 and V4F4. Both files could then be accessed through registrations to mimick the 4 variations, 4 fills AC7 rhythms of the CT-X5000.

 

For the CT-X700 archive, I'm planning to do two versions of each file. One that preserves the original Rhythm exactly as it sounds on the CT-X700/X800 (according to what I have transcribed in my notes), and then an alternative version that puts whatever variations/fills weren't used in the first two slots. That way, 2-variation users like yourself can:

  1. use the "original" Rhythms to quickly and easily implement the named Registration workaround I've talked about before
  2. use the alternative Rhythm sets like a "sampler" of the new material they don't have access to with the default selection of preset Rhythms

After listening to the alternative Rhythm material, owners of these 2-variation boards can then open the Rhythm up in ReStyle and mix and match whatever variations they want into a single Rhythm (if they decide they don't want to use all 4 variations/fills) to save space. If they want to use all 4 variations/fills from the source Rhythm, they can use up an extra Rhythm slot and keep both the original and the alternative versions of the source Rhythm loaded on their instrument (which is what you seem to have in mind).

 

Because ReStyle swaps these Rhythm components instead of overwriting them, all of the files in the CT-X700 archive will contain all 4 unique variations and fills in each file, so they won't need to download anything separate to start mixing and matching as they see fit.

 

Of course, if you want to have them go sequentially like the 4var source file (i.e. Rhythm 1 has V1F1 + V2F2, Rhythm 2 has V3F3 + V4F4), then you can always just use the existing CT-X3000 archive I've posted along with ReStyle to split the files in that order. It seems like you only want to do this with a specific selection of styles that you actually like the sound of, so there's no sense in waiting for me to finish the archive to get started on splitting the Rhythms to meet your needs.

 

4 hours ago, Mclandy said:

I'd say only the split function has some value from a bulk perspective.  Plus it should be fairly straightforward to implement.  Everything else is going to be subjective, and vary by rhythm, and your utility already provides the ability to put together exactly what you want.

 

I think the split function is only really useful for 4-variation Rhythms, and only two .AC7 compatible models in Casio line-up have ever had that feature (the MZ-X and CT-X3000/5000). Plus, a lot of the MZ-X Rhythms were recycled for the CT-X series anyway, so I doubt there's enough unique 4-variation material out there to warrant adding a whole new feature here. 

 

And like shiihs noticed, the variation and fill slots chosen for the condensed 2-variation versions of these 4-var source files varies a lot, so one static split function really wouldn't be that useful in the long run. If it were to be implemented, then I think 1+3 as the default setting would make the most sense, as that's by far the most common arrangement judging from my notes.

 

I think ReStyle is more than equipped to help me finish out the archival process with its current feature set, personally. Perhaps if another 4-variation board is announced in the future it could be a little more worthwhile in my eyes. Of course, if shiihs wants to implement it, I certainly wouldn't say no to yet another way to make my life a little easier. :grins:

Link to comment
Share on other sites

6 hours ago, Mclandy said:

Just a practical observation here.  I think perhaps having a simple "split" automation in the tool might not be a bad idea, just to make all rhythms in a library set available to anyone with a more limited keyboard.

 

But what I've noticed about most of the rhythms on the CT-X5000 is that there is not a real substantial difference between the rhythms in a set, but they are organized so that V1 is sort of the subdued, minimalist version, and then they "grow" with additional layers up to V4.  And if you think about the way a lot of music is done, they often start a song with that minimal rhythm and build up to a crescendo, or sometimes drop back down to the minimal version again.  So what I'm saying is that splitting a rhythm into V1/V2 and V3/V4 doesn't necessarily give you what you want - V1/V2 will probably be fairly "light" and V3/V4 will be fairly "heavy".  If you're stuck with only two variations, you might actually want V1 and your preference of V2, V3, or V4.  Or maybe V2 along with V3 or V4.

 

I guess I'm just saying that the choice is not obvious.  But I do agree that having a "split" function would at least make all the choices more accessible to people on a limited keyboard, so they can at least hear them, and then make a more informed selection.

You needn’t be stuck with two variations. This is actually the purpose of this whole business: accessing easily all four fills and variations set in a logical order. I am proposing to achieve this thanks to the very powerful registration system of the CT-X line.

 

As someone suggested, since V1F1 to V4F4 build a kind of crescendo, it would be rather logical to ”divide” all CT-X5000 rhythms in one F1V1F2V2 and one F3V3F4V4 file. Both files could then be conveniently memorised in two different registration slots for easy and access of all 4 fills and variations. For instance, F1V1F2V2 would be memorised in Bank1 Slot 1 and F3V3F4V4 in Bank1 Slot2.

I think that at this point, one should not even consider which variations are being used in the “original” CT-X700 rhythms, this is becoming irrelevant.

 

Another thing comes to mind: one can imagine that ReStyle could possibly be further developped to allow some “mixing” of rhythms, for instance to use the intro and ending of a given style with the variations from another style, or to use an intro in place of an ending, etc. (I have already managed to do such things manually with the onboard style controller).

Link to comment
Share on other sites

21 minutes ago, vbdx66 said:

Another thing comes to mind: one can imagine that ReStyle could possibly be further developped to allow some “mixing” of rhythms, for instance to use the intro and ending of a given style with the variations from another style, or to use an intro in place of an ending, etc. (I have already managed to do such things manually with the onboard style controller).

 

Everything you mention is already possible, except for combining things from different .AC7 files. That would be a lot of effort for what I feel is not a very common use case. 

  • Like 2
Link to comment
Share on other sites

in the mean time, not for the faint of heart, there's a new version with 

  • multifile checkboxes: if you leave display name empty, it reuses the old one; if you leave new filename empty it reuses the old one
  • multifile 4 variation rhythm splitter: no special intelligence is present for handling .ac7 files with less than 4 variations (and I have to confess I haven't tested what happens when you try it anyway).

Have fun! 

https://drive.google.com/file/d/12NKv9eiYcpqb3p6yBYsBYkpam8t-M7DB/view?usp=sharing

 

  • Thanks 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.