Jump to content

Avatar

[PS3] Current situation with loop-ending affected songs


  • Please log in to reply
21 replies to this topic

#1 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted June 16, 2019 - 10:18 AM

[UPDATE: list of possible solutions on post #12]

 

Sorry if this is already discussed somewhere... I was able to find an old thread not exclusively on this issue but on generally problematic songs in PS3, but the thread has been inactive for many years, so I wanted to check if the situation has somehow changed.

 

So there are various songs in our databases which have the "loop-ending" problem when converted to PS3. If I understood correctly, this problem has to do with the audio file encryption, and was caused by a bug in a certain version of Magma, which was eventually fixed.

 

Question 1: Does it mean that all customs compiled with the latest version of Magma should be free of this problem?

 

There are two options in the latest version of C3 CON Tools that should fix this problem: one option is to activate the checkbox to "fix loop-ending while converting", and the other option from the menus is to fix a single selected mogg file.

 

Question 2: Are the two options equivalent? 

 

If that's the case, when one of the two doesn't solve the problem, it is then pointless to try the other.

 

Question 3: Do you need to replace only the mogg file after using either option?

 

At first sight, it seems to me that the metadata in songs.dta is not changed at all, but I am not sure.

 

Question 4: If I use one of the two options on songs that do NOT have the loop-ending problem, do I cause damage on those songs?

 

I know that it sounds pointless to apply the fix to a song that doesn't need it... here I am just thinking that, if it is harmless to those, I could leave the "fix while converting option" activated at all times, so that I can convert songs in large batches without worrying if some of them have the loop-ending issue.

 

---

 

Finally, as it seems to me that not every custom is successfully fixed by the options in C3 CON Tools, I was wondering if there is some other way to fix them by ourselves, without asking the original author to do any work. Since the issue is apparently caused by an older version of Magma, here's the last question:

 

Question 5: Is it possible to open the loop-ending custom in the latest version of Magma and re-build it?

 

Forgive my ignorance on this one... I am still largely unfamiliar with how Magma works!

 

Thanks!!!



#2 TrojanNemo

TrojanNemo

    The Programmer

  • 4,970 posts
  • Location
    Miami, Florida

Posted June 16, 2019 - 03:22 PM

1) should but from what I hear, they are not all fixed

2) yes, it's the exact same process

3) correct

4) considering I was trying whatever I could to fix the issue, maybe? I would guess not

5) not if the audio is encrypted



#3 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted June 17, 2019 - 10:12 AM

Thanks for the clarifications!

 

On second thoughts, if some customs are still coming out from the latest Magma with the loop-ending problem and some customs are not fixed by the C3 CON Tools functionality, then it's possible that they are actually the same customs, and therefore even if unencrypted it would not help to re-build them.

 

Perhaps I will open a different thread to keep a list of which customs have such problem, and mark those that are fixable in C3 CON Tools, it would be probably useful to share this knowledge in a single place that is easy to check for everyone. So far I have encountered only two, "Tears for Fears - Sowing the Seeds of Love" (fixable) and "The Beatles - Let it Be" (non-fixable).



#4 murlatok

murlatok
  • 181 posts
  • Location
    Minsk

Posted June 17, 2019 - 01:49 PM

Just posting these with the same problem:

 

Creedence Clearwater Revival - Commotion

Dire Straits - Money for Nothing

Halestorm - Love Bites (So Do I)

Linkin Park - The Messenger

The Turtles - Happy Together

Trapt - Headstrong

 

These are the ones i've encountered so far



#5 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted July 1, 2019 - 08:16 PM

Here's my list (updated on 2019_11_10):

 

Tears for Fears - Sowing the Seeds of Love (fixed in C3 CON Tools)
Tears for Fears - Mad World (fixed in C3 CON Tools)

Dire Straits - Money for Nothing (fixed in C3 CON Tools)

Michael Jackson - Billy Jean (fixed in C3 CON Tools)

Queen - It's a Hard Life (fixed in C3 CON Tools)
The Beatles - Let it Be (requires manual fix)
The Beatles - Help! (requires manual fix)

The Beatles - Yesterday (requires manual fix)

The Beatles - All my Loving (requires manual fix)

The Beatles - Blackbird (requires manual fix)

Eurythmics - Would I Lie to You? (requires manual fix)

The Rocky Horror Picture Show - Time Warp (requires manual fix)

Led Zeppelin - Stairway to Heaven (requires manual fix)

 

I then had a little WTF? moment when I checked these three with C3 audio analyzer, before and after applying the fix...

For some reason, when applying the fix the C3 ps3 converter has ADDED 5 SECONDS* at the end of the Sowing the Seeds of Love audio file (and the fix works). However it does NOT add those 5 seconds to Help or Let it Be (which still don't work).

*I guess not really added any bytes to the file itself but increased the length value embedded in the file? Either way, the result is that the audio length matches with the song length in DTA

What's even more strange, the 5 seconds are added only if I choose "fix while converting", but not if I choose the standalone "fix mogg" functionality. This is odd since both are running the same code function.

---

I also compared the length of the audio with the length of the midi (using song analyzer) and also with the "song length" in the DTA.

ALL the 3 songs with loop ending problem have midi length > audio length. However this is inconclusive because I have found 2 other songs (e.g. Bruce Springsteen - Born in the USA) with the same, but without the loop ending problem. Still it was interesting to note that almost all songs that work for me (about 100) have midi length < audio length.

I don't know if the problem is caused by audio being shorter than midi (perhaps the midi "song end" event is beyond the end of the audio?) or by audio being shorter than song length in DTA (does that value itself depend on the midi?).

I looked into the code and expected to see it to add enough blank to the end of the audio to match the length difference... instead it adds the "remainder" of division by 8 of such difference. Sounds a bit like trying to have an integer number of bytes, but then I am surprised it ended up adding 5 whole seconds.



#6 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted July 3, 2019 - 02:36 PM

Dire Straits - Money for Nothing


@murlatok you may want to give this song another try because for me IT WORKS after applying the fix.

Just make sure you fix it when converting the CON to PS3 (select the "fix while converting" option from the menu). For some reason, the other way (choosing "fix mogg" on the standalone file) didnt work for me.

#7 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted July 3, 2019 - 02:40 PM

Does anyone know what is the function of the "song length" value in DTA?

I was hoping that it is used to stop the playback, so I tried to manually change it to a value shorter than the audio file length. It didn't help, but it was a very small hope.

On the other hand, since it's in the metadata file I really thought it would be used for the length to DISPLAY in the songs selection view of the game. But it didn't change that either :/

#8 Alternity

Alternity
  • 1,036 posts

Posted July 3, 2019 - 02:45 PM

I'm pretty sure it's just to show the song lenght when you select "More Info" (Or whatever its called) on a song. IIRC on PS3 it's the triangle button.

The thing that stops the playback of a song is the [end] event in the midi file.



#9 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted July 3, 2019 - 04:57 PM

I'm pretty sure it's just to show the song lenght when you select "More Info" (Or whatever its called) on a song. IIRC on PS3 it's the triangle button.

The thing that stops the playback of a song is the [end] event in the midi file.


Yeah I was thinking the same... and the loop ending happens probably because the audio file ends before the end event.

#10 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted July 3, 2019 - 07:13 PM

 

5) not if the audio is encrypted

 

Damn... I suppose all the TBRB songs have in fact the audio encrypted? After I started seeing the first couple of Beatles songs looping and not being fixed by the converter, I went to check a dozen TBRB songs (not listed here since they're not on C3 db) and they all seem to have the same problem so far, and none of them gets fixed by the tool :(



#11 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted July 5, 2019 - 09:55 AM

I tried to fix the problem by modifying the MIDI file. It didn't work, but I would like to hear some opinions from the experts...

 

Basically I did the following, using "Help!" as a test custom:

 

- extracted the MIDI file using C3 Tools

- opened the MIDI file in Reaper (into an empty project), choosing to keep the 12 tracks separate and merge tempo map

- anticipated the [end] event in EVENTS track by a small margin, from 57.4.99 to 57.4.49 *

- also anticipated other events which were at the same point in other tracks: [idle_realtime] in all instruments tracks and [ProFilm_a.pp] in VENUE track **

- exported the MIDI file, choosing to consolidate all, and keeping it multitrack

- encrypted the MIDI file in PS3 Converter using the "encrypt replacement MIDI" functionality

- replaced the old MIDI file with the new one in the song folder

 

Couple of longer notes:

 

* the song analyzer told me that the audio length was 140,67 and the midi length 140,718; my idea was to try and change the MIDI so that it ends before the end of the audio (as it does in all songs which don't loop), so by anticipating [end] by half a quarter, the MIDI length as shown by the analyzer is shortened to 140,399 < 140,67

 

** to my understanding, the MIDI file should never have events beyond [end], that's why I anticipated those other events

 

Well eventually this idea didn't really work because the song still gets stuck at the end.

 

I wonder if I should try to really shorten the MIDI by also cutting the actual tracks length as indicated by "All Notes Off" in Reaper? Or perhaps this is all useless, and the problem can't be solved by simply trying to exit earlier?



#12 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted July 5, 2019 - 10:57 AM

Ehm... I have to amend my previous post: IT WORKS!

 

Looking around for clues in RBN documentation, I noticed that there is a remark about the last BEAT track event which must be exactly 1 quarter before the [end] event. When I anticipated the [end], I did so by half a quarter. So I went back and anticipated it a whole quarter, and removed the last event in BEAT. And now the song exits properly at the end :)

 

I hope this is going to be useful to other people, because we now have a course of action that allows us to FIX the issue, hopefully in every song (but there might be exceptions), without having to ask from the original authors:

 

Method 1) Always try to fix looping songs directly in PS3 Converter first. Do so by checking the menu option "fix loop while converting" (do not trust the stand-alone "fix mogg that loops" because at least for me it has not worked once). You can check that the audio was fixed by using the Song Analyzer before and after applying the fix: the audio length should be longer after the fix, and it should actually look the same as the song length in DTA.

 

Method 2) If the converter doesn't fix it, check if the audio is not encrypted. In this case, just open up the CON in Magma, and build it again.

 

Method 3) If Magma doesn't fix it, or cannot fix it because the audio is encrypted, check if the custom is single-track. In this case, you can extract the audio using the Phase Shift converter, then re-build in Magma using the extracted audio instead of the encrypted one. This method works also for multitrack customs but you will lose the multitracks.

 

Method 4) If previous methods don't work, or if don't want to lose the multitracks, follow my instructions in my previous post, but also check the BEAT track for consistency as I mention here above.

 

I am quite sure sometimes the last method may fail, but at least Method 3 should always work, in the worst case you'll lose the multitracks.



#13 TrojanNemo

TrojanNemo

    The Programmer

  • 4,970 posts
  • Location
    Miami, Florida

Posted July 6, 2019 - 02:45 PM

Good job in figuring it out.

 

One thing - "anticipated" doesn't mean what you think it means.



#14 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted July 6, 2019 - 07:29 PM

Thanks TrojanNemo.

Indeed there are still a lot of things I don't understand.

One of the looping songs I've been fixing at MIDI level gave me the "unable to load, skipping" error after modifying the midi. Having read that this error is mostly caused by encryption but having always used Type 3 (both before and after the fix), I thought that probably I just touched the wrong things in the midi...

However I also knew that the skipping error could happen in case of a file naming issue. I recalled that after modifying the midi I had saved it with the wrong name, but I was sure I had then renamed it properly.

Then it occurred to me... I had fixed the name AFTER re-encrypting the midi. Could it be that the encryption process depends on the filename (at the time of encryption)?

So I went back to my modified midi, renamed it first, re-encrypted again, copied to PS3 and... BAM! everything works :D

This was quite baffling and I wouldn't bet this was really the reason, maybe it was just a glitch in re-encryption, but the moral of the story is: make sure you have the correct name before encrypting files ;)

#15 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted August 10, 2019 - 09:00 PM

Just a small addition...

I recommend NOT to activate the "fix mogg while merging" option unless you already know that the custom you are merging is actually affected by the loop ending problem.

Today I was adding a batch of 20 customs, and since they included several Beatles (like those which previously gave me a loop ending) I thought I would save time by keeping the "fix while merging" option on for the whole batch. The result was 4 customs out of 20 looping, but then I checked the details and noticed that the fix had somehow cut the audio files a bit. So I replaced their moggs with new ones converted WITHOUT the fix, and they did not loop anymore. Apparently they were not troublesome customs since the start but they had become so after an unnecessary fix.

So it might be best after all to always convert customs normally, and only after you see them looping in game start applying any of the methods above ;)

#16 murlatok

murlatok
  • 181 posts
  • Location
    Minsk

Posted October 29, 2019 - 01:45 PM

Finally got the chance to test applying fixes to troubled songs i posted earlier:

 

'fix while converting' helped with these songs:

Dire Straits - Money for Nothing

Halestorm - Love Bites (So Do I)

 

However these songs retained the same issue with the loop-ending:

Creedence Clearwater Revival - Commotion

Linkin Park - The Messenger

The Turtles - Happy Together

Trapt - Headstrong



#17 Shroud

Shroud
  • 204 posts
  • Location
    EU

Posted October 29, 2019 - 05:20 PM

Yeah as I wrote, some songs stubbornly resist the fixing procedure of C3 CON Tools :)

I will update the list when I find more of them so that other people know to expect, for example recently I had to manually fix Time Warp.

There's a chance even the manual fix might not work for some customs, but so far it did.

#18 Spike1958

Spike1958
  • 18 posts

Posted November 7, 2019 - 03:47 AM

Hello all. This information is for PS3 and the s/w is on the windows side.

Here is my list of Beatles songs that exhibited the loop-ending issue. Along with their midi and song lengths and the [end] event setting I used. I apologize that all of this info is not available for all the songs. I was part way through when I realized that I should be writing stuff down, but it was too late. Once you encrypt the midi, you cannot look at it again.

Thanks to BornGamerRob for his post on extracting the midi from a con file. Many thanks to Shroud who I have been PMing so I didn't look more of a fool than I am(better to be quiet and thought a fool than open your mouth and remove all doubt-Twain or Lincoln I think).

 

I did try method 1 from post 12 above on all of these, but it did not fix any of them. I tried the 'fix mogg that loops' on a couple but no dice.

 

My procedure is:

 Open C3ConTools

Click 'Song Analyzer'. This opens a new window, click 'File', 'Open song file' and then navigate if needed to your song directory. If you left everything as the default setup, just have your problem cons in the CONS directory. Click the song you want and then 'Open'. You will get a nice window that will show all sorts of info about the midi file. The one we need is the Midi length in seconds, near the top and the audio length in seconds near the bottom.

 

Nearly all the songs with problems have the midi length greater than the audio length(and even now I am not sure if this audio length is the actual length of the audio of the mogg file).

 

Then we drag the con file onto a blank area(other areas may work) of the C3ConTools window. Another window will open. Click the MIDI button and this will extract the midi from the con file and place it onto the Clipboard. You can then click on your destination folder and do a Paste. Do not close the other window or this will not work. You can close it after the Paste.

 

Start Reaper(YMMV but I kept reaper in the same Customs folder I installed everything into. I found this easier for moving files around and keeping track of the updates. Reaper then just uses the same con directory as the tools). You do not use a template or project for this process.

 

Click on Insert and then Media File at the top and then navigate to your directory and choose the mid file you want to use. You will get a Dialog box open for Import Options. Expand Tracks and Merge Source Tempo should both be checked and hit OK.

You may or may not get additional Dialog Boxes to choose Import 2-Channel MIDI as Multichannel on a single track. This did not occur all the time. I guess if I unchecked the Always prompt box, it would go away(a Reaper genius I am NOT).

 

If you double click the Event Track(and sometimes just a single click would work on some songs), you should get a window at the bottom below the one with the tracks. If you click one of the indexes, you will see the line on the upper window move to that position. At the bottom of the list is an index with a Text Event with a Parameter of [end]. This will be at the last time index in the midi file. Anything beyond that is what is thought to be the issue. You might notice another index event call 'All Notes Off'. This is sometimes on the other tracks as well and does not cause any issues even if it's position is after the [end] event.

 

Click on the line with the end event and notice where the indicator moves to on the upper window. There is also a nice large counter at the top of the lower window. This has both the position info and a time stamp on it. You will probably find that the time is past the audio file length. This is what needs fixing. if you double click the position box, it will turn blue and you can then change it. This position will look something like 104.1.99 which corresponds to 3:06.7 or 186.7 seconds of midi file time. If your audio length was 184 seconds, then we need to shorten the midi length. You can change the 104.1.99 to 103.3.99. I found if you input 103.4.0, Reaper would change it to 103.3.99 most of the time. These are the 'quarters' that Shroud is referencing in post 12.  An event can occur at any time in the midi, but Beats happen on the quarters so our [end] event is best kept to quarters(or within the .01 that Reaper likes).

 

Now that you have moved the [end] event before the end of the audio length, you have to check all the other tracks to make sure that there is nothing happening in any of them that is past the new [end] time. Click/Double click on each one and look near the bottom. Change the position value of the last index to be before the new [end] event. In Venue it might be [ProFilm_a.pp] among other ones. There might be multiple events with the same position, just change them all. One of the most important is the Beat Track. If there are any entries past the [end] event position, highlight the row and delete it. You will notice that one of the bars on the actual beat track in the upper window will disappear. The last Beat entry should be starting at the quarter before the [end] event starts. I do not know what happens if you remove a few extra.

When you click on the instruments and vocal tracks, you are looking for the Text Event [idle]. Again if past the [end], change the position value. Again ignore the All Notes Off entry. There might also be an [idle realtime] entry. These are to tell the character animation to stop. Just change the position value to be before the [end].

 

When you have finished all that, you can go to File, Export Project Midi. You will get a Dialog Box. It should have Entire Project and All buttons at the top and Multitrack Midi File at the bottom. Embed Temp Map is checked. You can specify the file name, or just leave it as midi_export.mid. NOTE the program will not give you a warning about overwriting files with the same name.

 

Now this is for the setup that Reaper shows me. If you have watched pksages Lets Author twitch stream, he gets a Reaper window with lots of colours in the different windows. I have not been able to get mine to look like that.

 

So your now modified mid file is ready. At this point you might want to make a copy of it so you can change it later. At this point you need to make sure that your modified mid file has the EXACT same name as the one that was extracted from the con file.

 

And once again we use the wonderful C3ConTools. Click the PS3 Converter button. You get the PS3 Converter window opening. Click Encryption Options. Make sure MIDI to Edat Encryption is Type 3 and then PAL or NTSC. If you have(and you must have) used the converter before, the options remain the same. Click Encrypt Replacement Midi File(s), and a file window will open. You can then choose(up to 10 I think) the files you wish to convert. It takes the mid file and changes it to a mid.edat file. I'm not sure if the mid file gets changed into the edat or the edat gets created and the mid file is deleted, but once you do this, your mid file is no longer accessible. Unless you made a copy in case it still loops.

 

You can now copy the edat file onto the PS3 into the same folder as the original. Nothing else needs to be copied, this doesn't affect the mogg or the songs.dta file.

 

The next post will have the file names



#19 Spike1958

Spike1958
  • 18 posts

Posted November 7, 2019 - 04:26 AM

All songs are by The Beatles, except for Commotion by CCR.

 

No Values, sorry, but I don't think I moved the [end] very much. These all worked the first time.

Julia

A Hard Day's Night

Being for the Benefit of Mr Kite

Good Morning, Good Morning

 

Song              Midi Length             Audio Length                     [end] changed to

Help                140.718                    140.67                              

Helter Skleter  273.174                    272.48

I Feel Fine      143.523                    143.45

If I Needed      146.702                    146.69

Know Secret   120.824                    120.84

 

Lucy Sky         221.249                    221.33

Maxwells         209.118                    209.4                                   115.3.99

Michelle          175.687                    176.06                                  84.4.99

Poly/Bath        194.267                    192.95                                   95.2.99

PolyPam         89.013                      88.13                                    59.2.99

 

Pep Reprise    86.877                      86.27                                    42.2.99

Something      186.702                     186.7                                    103.4.99

The Word        174.523                     174.98                                  87.3.99

You Never       229.34                        229.19                                  85.2.99

Yesterday         129.476                     127.36                                 51.3.99

 

Let It Be           252.109                      249.7

HeyBulldog      203.495                       203.3                                  86.3.99

Bird Can Sing  123.005                        122.49                                68.2.00

Tmrow/With      144.586                      144.15                                 75.1.00

BuyMeLove      135.038                      134.13                                 96.3.99

 

DayTripper        173.886                      172.08                                 98.3.99

StandingThere   175.082                     173.85                                 116.3.99

I Want You          470.481                     468.79                                 208.1.50

Commotion        166.481                      163.95                                 87.1.00



#20 Spike1958

Spike1958
  • 18 posts

Posted November 7, 2019 - 04:29 AM

As you can see, the differences are sometimes not very large, and a few are reversed. I think the song lengths are just a guideline for going in and changing the [end] event. It may even be that it is just a stray Beat event that is causing the problem.

 

 

hope this helps some people.

I'm just glad the Abbey Road Medley was fine.

I hope Thick as a Brick is ok!






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users