MFH Mod (FoFiX) 3.0xx (v3.030) (OLD)

Discuss mods and get help with mods ONLY
User avatar
worldrave
Member
Posts: 1363
Joined: August 8th, 2007
Location: GA
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby worldrave » Thu Nov 13, 2008 12:50 am

Hmmm, it's working just fine for me. I've been changing code and doing a bunch of graphics work today (which won't effect anyone yet unless they compile a new SVN, and since i haven't released any graphical hotfix's in a little while), and it works just fine.

Hopefully Slantyr has a solution, because it's working fine for me. I still get an occasional freeze at the 'Loading screen', and this is known to happen here and there, and with all skins, (Evilynux has been doing hard work on this to eventually eliminate this problem.), but other then that it works fine. And i have probably ran it more then 70-80 times since last night from making so many code adjustments until certain alignments were done and sizings of things i have been working on, but it shouldn't be a graphics issue since it's working fine.
I make lyrics.
User avatar
imceral25
Member
Posts: 216
Joined: February 5th, 2008
Location: Milwuakee,Wisconsin
Reputation: 0
Contact:

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby imceral25 » Thu Nov 13, 2008 12:59 am

Well I tried the beta of 3.30 and it ran smoth barely any hiccups. Ca't wait for the real release.
Sexier than you
User avatar
p_025
Member
Posts: 187
Joined: February 17th, 2008
Location: somewhere
Reputation: 0

Re: Drums

Postby p_025 » Thu Nov 13, 2008 3:04 am

Dan1lo wrote:Well, at first, I thknk the drumsounds (those for fills and for the beginning of the song) should be as small as possible, to allow quick playing of the sounds. I notice that if I hit too fast, or even slightly fast, it only plays once, but the hitflames show up.

I think the bass pedal sound should be muted after the first note, but when the song's about the start it should be that stock pedal sound that we put on options.

The miss sounds are ok, but I really agree that the actual missing noise should be sticks hitting each other.
After playing sometimes through rockband I found myself hitting my sticks very often when I did mistakes on some fast parts, so I think those fit well.
It also makes the game load a lower number of miss sounds I guess.

If I ever do borrow my friend's X360 again, I'm planning on recording the drum ****up sounds and the sounds for fills/playing around before the songs starts, and maybe a few other things. The problem is his drum set broke (green pad snapped off, it was hanging by a wire) and some of the sounds can be hard to get without other noise (overdrive deactivate...). It's about all I can contribute, since I don't know jack about Python and I'm not much of a graphic designer.
Desktop:
OS: Windows XP Professional, Service Pack 3 (Build 2600); Windows 7 Ultimate x64 Beta (Build 7048) | CPU: Intel Core 2 Duo E6600 (2 CPUs, 2.40GHz) | RAM: 2x Corsair XMS 2GiB DDR2, 2x Corsair XMS 1GiB DDR2 (6GiB total, 3.25 recognized by XP) | Video: EVGA NVidia GeForce 8800GT 512MiB | Audio: Sound Blaster X-Fi XtremeMusic
User avatar
NewCreature
Member
Posts: 716
Joined: November 23rd, 2006
Location: Murray, KY
Reputation: 3
Contact:

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby NewCreature » Thu Nov 13, 2008 4:21 am

I have fixed the Practice mode timestamps. Here's the new "MidiInfoReader" class:

Code: Select all

class MidiInfoReader(midi.MidiOutStream):
  # We exit via this exception so that we don't need to read the whole file in
  class Done: pass
 
  def __init__(self):
    midi.MidiOutStream.__init__(self)
    self.difficulties = []
    Log.debug("MidiInfoReader class init (song.py)...")

    #MFH: practice section support:
    self.ticksPerBeat = 480
    self.sections = []
    self.tempoMarkers = []
    self.guitarSoloSectionMarkers = False
    self.bpm = None

    self.noteCountSections = []
    self.nextSectionMinute = 0.25
   

  def header(self, format=0, nTracks=1, division=96):
    self.ticksPerBeat = division
 
  def abs_time(self):
    def ticksToBeats(ticks, bpm):
      return (60000.0 * ticks) / (bpm * self.ticksPerBeat)
     
    if self.bpm:
      currentTime = midi.MidiOutStream.abs_time(self)

      scaledTime      = 0.0
      tempoMarkerTime = 0.0
      currentBpm      = self.bpm
      for i, marker in enumerate(self.tempoMarkers):
        time, bpm = marker
        if time > currentTime:
          break
        scaledTime += ticksToBeats(time - tempoMarkerTime, currentBpm)
        tempoMarkerTime, currentBpm = time, bpm
      return scaledTime + ticksToBeats(currentTime - tempoMarkerTime, currentBpm)
    return 0.0
   
  def tempo(self, value):
    self.bpm = 60.0 * 10.0**6 / value
    self.tempoMarkers.append((midi.MidiOutStream.abs_time(self), self.bpm))
   
  def note_on(self, channel, note, velocity):
    pos = float(midi.MidiOutStream.abs_time(self))
    if (pos / 60000) >= self.nextSectionMinute:
      text = "%d:%02d -> " % (pos / 60000, (pos % 60000) / 1000) + "Section " + str(round(self.nextSectionMinute,2))
      self.nextSectionMinute += 0.25
      Log.debug("Found default practice section: " + str(pos) + " - " + text)
      self.noteCountSections.append([text,pos])

    try:
      track, number = noteMap[note]
      diff = difficulties[track]
      if not diff in self.difficulties:
        self.difficulties.append(diff)
    except KeyError:
      pass

  def lyric(self, text):  #filter lyric events
    if text.find("GNMIDI") < 0:   #to filter out the midi class illegal usage / trial timeout messages
      #Log.debug(str(self.abs_time()) + "-MIDI Lyric: " + text)
      text = ""

  #MFH - adding text event / section retrieval here
  #also must prevent "Done" flag setting so can read whole MIDI file, all text events
  def text(self, text):
    if text.find("GNMIDI") < 0:   #to filter out the midi class illegal usage / trial timeout messages
      pos = self.abs_time()
      #Log.debug("Found MidiInfoReader text event: " + text)
      #if self.readTextAndLyricEvents > 0:
      text = text.replace("_"," ")
      if text.lower().find("section") >= 0:
        if not self.guitarSoloSectionMarkers:
          self.guitarSoloSectionMarkers = True      #GH1 dont use section markers... GH2+ do
          self.sections = []  #reset sections
        #strip unnecessary text / chars:
        text = text.replace("section","")
        text = text.replace("[","")
        text = text.replace("]","")
        #also convert "gtr" to "Guitar"
        text = text.replace("gtr","Guitar")
        Log.debug("Found practice section: " + str(pos) + " - " + text)

        text = "%d:%02d -> " % (pos / 60000, (pos % 60000) / 1000) + text
        self.sections.append([text,pos])
       
       
      elif text.lower().find("solo") >= 0 and text.find("[") < 0 and text.lower().find("drum") < 0 and text.lower().find("map") < 0 and text.lower().find("play") < 0 and not self.guitarSoloSectionMarkers:
        Log.debug("Found practice section: " + str(pos) + " - " + text)
        text = "%d:%02d -> " % (pos / 60000, (pos % 60000) / 1000) + text
        self.sections.append([text,pos])
      elif text.lower().find("verse") >= 0 and text.find("[") < 0 and not self.guitarSoloSectionMarkers:   #this is an alternate GH1-style solo end marker
        Log.debug("Found practice section: " + str(pos) + " - " + text)
        text = "%d:%02d -> " % (pos / 60000, (pos % 60000) / 1000) + text
        self.sections.append([text,pos])
      elif text.lower().find("gtr") >= 0 and text.lower().find("off") >= 0 and text.find("[") < 0 and not self.guitarSoloSectionMarkers:   #this is an alternate GH1-style solo end marker
        #also convert "gtr" to "Guitar"
        text = text.replace("gtr","Guitar")
        Log.debug("Found practice section: " + str(pos) + " - " + text)
        text = "%d:%02d -> " % (pos / 60000, (pos % 60000) / 1000) + text
        self.sections.append([text,pos])
      elif not self.guitarSoloSectionMarkers:   #General GH1-style sections.  Messy but effective.
        Log.debug("Found practice section: " + str(pos) + " - " + text)
        text = "%d:%02d -> " % (pos / 60000, (pos % 60000) / 1000) + text
        self.sections.append([text,pos])
       
      else:  #unused text event
        text = ""


Also, here is a link to the complete "Song.py" modified from FoFiX 3.030 beta:

Song.py Practice Mode Fix
"Stop putting so much stock in all of this stuff, live your life for those that you love." - Relient K
EOF - A Song Editor for Frets On Fire
Blue Heaven!
User avatar
death_au
Member
Posts: 3991
Joined: December 12th, 2007
Location: Australia
Reputation: 7
Contact:

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby death_au » Thu Nov 13, 2008 5:35 am

NewCreature wrote:I have fixed the Practice mode timestamps. Here's the new "MidiInfoReader" class:
<snip>
Google code wrote:Issue 44: Invalid Practice time markers
Practice mode's "time" (mm:ss)-style markers are NOT calculated accurately
at all.

Comment 2 by evilynux, Oct 27, 2008
Fixed in revision 151.
Riptide
Member
Posts: 14
Joined: February 21st, 2008
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby Riptide » Thu Nov 13, 2008 7:26 am

Figure wrote:I have idea how to filtrate the non-playable difficulty tracks (with no notes)...
There should be in song.ini a line like this: gtr_diff = expert(/hard/medium/easy or all) and the same with bass (bass_diff), rhythm (rhythm_diff) or drums (drum_diff) and then the FoFiX check the song.ini file and doesnt show any of the other non-playable difficulties...like puppetz hero where are only Expert and Hard but it shows all instruments and diff. it is so annoying...thank you



That would be sweet and would address the issue of lag when loading the songs. I wonder if TypusMensch could add it to his already-totally-awesome FOF Song Manager (https://www.fretsonfire.org/forums/viewtopic.php?f=11&t=24985)? It already works w/ini files and does the parsing. Plus there'd be no risk of ruining the midi through manual deletion or slowing down the now very svelte FoFix.
...the pain
User avatar
myfingershurt
Member
Posts: 1796
Joined: April 9th, 2007
Location: Northern Nevada, USA
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby myfingershurt » Thu Nov 13, 2008 1:31 pm

Riptide wrote:
Figure wrote:I have idea how to filtrate the non-playable difficulty tracks (with no notes)...
There should be in song.ini a line like this: gtr_diff = expert(/hard/medium/easy or all) and the same with bass (bass_diff), rhythm (rhythm_diff) or drums (drum_diff) and then the FoFiX check the song.ini file and doesnt show any of the other non-playable difficulties...like puppetz hero where are only Expert and Hard but it shows all instruments and diff. it is so annoying...thank you



That would be sweet and would address the issue of lag when loading the songs. I wonder if TypusMensch could add it to his already-totally-awesome FOF Song Manager (https://www.fretsonfire.org/forums/viewtopic.php?f=11&t=24985)? It already works w/ini files and does the parsing. Plus there'd be no risk of ruining the midi through manual deletion or slowing down the now very svelte FoFix.



Additional filtering will SLOW DOWN the process. There's also no relevant information stored in the song.ini - this would have to run through the MIDI files an extra time to scan for phantom difficulties.

Besides, you are talking about this issue like it's not already on the To Do list.... :thumbdown: issue 100

edit: if this feature were added as an option to the Song Manager like suggested, and it actually saved its changes to the MIDI files (completely removed phantom difficulty / part tracks), then that would be an acceptable "workaround" solution that might actually speed up the songlist slightly.

However, adding this filter to the songlist in real-time WILL slow things down -- not to mention it's not even planned for the near future as it's a pain in the ass to code. There are much more important things for FoFiX developers to be working on; hence the "Low" priority assigned to this issue.

edit2: I also foresee plenty of problems as the Song Manager is updated to read in, alter, and re-save MIDI files without breaking their other precious formatting, track order, and events. Backup MIDI files will be a requirement until all the bugs are worked out, as there will be many MIDI files corrupted during the process of developing such a feature.


---- EDIT ----

NewCreature - thank you, your code fixed the issue.

I was not aware there still was an issue, the original fix from r151 apparently only fixed the "default" practice time markers (for songs with no sections). Now you start one whole board length before the selected section, giving you a lead-in and everything exactly the way I originally designed it to work.

Your name has been added to the credits file.

---- EDIT ----

I just reread Figure's suggestion and I misunderstood. Yes, it would certainly speed things up to externalize the detection and marking of available difficulties and instruments they were denoted correctly in the song.ini for later retrieval. However, the songs that weren't already run through this external process would still require the current method of finding difficulties and instruments.

I would consider adding support for this only after a tool has been made that can find, extract, and store this information in the song.ini - until then, this is just conjecture. I'm also not volunteering to write such an external tool.
evilynux
Member
Posts: 382
Joined: July 2nd, 2008
Location: Montréal, Canada
Reputation: 0
Contact:

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby evilynux » Fri Nov 14, 2008 2:09 am

imceral25 wrote:Well I tried the beta of 3.30 and it ran smoth barely any hiccups. Ca't wait for the real release.


In fact it should be even better in the final 3.030.

My change to the View class timing were committed in r350 and they help a great deal (at least under Windows and GNU/Linux). Enough for me to consider issue 3 to be fixed.
...the pain
User avatar
myfingershurt
Member
Posts: 1796
Joined: April 9th, 2007
Location: Northern Nevada, USA
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby myfingershurt » Fri Nov 14, 2008 5:22 am

3.030 beta 2 has been released:


BETA: 3.030beta2 patch (SVN r355, 11/13/2008 11:45pmPST, 3MB) "No More XPadder?"
The main reason for this beta release is for users that currently have to use XPadder or JoyToKey to strum up and down.
Please post if you can now directly map and use your strum bar without these external applications.


...also, here is the RB1 theme patch for 3.030 prerelease (3.9MB), to match the new features in 3.030beta2

---- EDIT ----

... also, if anyone else notices that the game doesn't freeze or hang anymore, please post this. (or post if you encounter an endless loading screen or a game freeze!)

It seems to be completely stable and smooth for me. I even went so far as to set Fullscreen mode and play there, as I feel confident I won't need that "X" to kill the application :)
trinidude4
Member
Posts: 395
Joined: March 22nd, 2008
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby trinidude4 » Fri Nov 14, 2008 9:06 am

FoFiX v3.030beta2 is available for Mac here: http://www.mediafire.com/?mhy4diigpnd

There won't be a patch version since I finally figured out how to package pygame 1.8.1 with py2app.
linkman08
Member
Posts: 33
Joined: June 25th, 2008
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby linkman08 » Fri Nov 14, 2008 9:47 am

Very nice. I have not noticed anything wrong with the mapping now. No need to use XPadder or Joy2Key anymore! Plus, ingame is very smooth for me now.
User avatar
jiiiiimmmy
Member
Posts: 476
Joined: April 11th, 2008
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby jiiiiimmmy » Fri Nov 14, 2008 10:16 am

I tried the new beta with my Rock Band guitar controller and it worked perfectly.
The game was also very smooth, which is amazing!
User avatar
evil-doer
Member
Posts: 372
Joined: June 16th, 2008
Location: Canada
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby evil-doer » Fri Nov 14, 2008 11:28 am

guitar strumming is working great for me too (360 xplorer)
also the game is smooth as hell now. but theres one problem. all of the animations run super fast. the messages that pop in and out are like at 1000 miles an hour, the lightning, the flames and sparks, everything.
its not a big issue at the moment because its not a playability issue, it just looks odd. it plays awesome now!
evilynux
Member
Posts: 382
Joined: July 2nd, 2008
Location: Montréal, Canada
Reputation: 0
Contact:

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby evilynux » Fri Nov 14, 2008 11:38 am

@trinidude4: Thanks, link added to summary page. This is a full package right?
@evil-doer: animations are too fast?? Can you make a video?
@all:
1) no more xpadder/joy2key required? Great! Thanks to John Stumpo for providing the patch!
2) game smoothness: great! :-)
3) GNU/Linux patches added to summary page, head to http://fofix.googlecode.com .
User avatar
evil-doer
Member
Posts: 372
Joined: June 16th, 2008
Location: Canada
Reputation: 0

Re: MFH Mod (FoFiX) 3.0xx (v3.025)

Postby evil-doer » Fri Nov 14, 2008 11:55 am

just got a lockup when trying to go back a directory and it froze on the browsing screen. the music preview kept on playing.
*edit
then i restarted and it did it again.
then i restarted and it had the preview playing during my trying to play.

i think i better turn off the auto preview.

Return to “FOF Mod Discussion and Support”

Who is online

Users browsing this forum: No registered users and 13 guests