Skip to Content

crash on wav export

8 replies [Last post]
scissorhandz
Offline
Joined: 04/17/2010

this is my first time using th program. i love it. i have been looking for something like this for a while!

only problem, my computer crashes (pentium 4 winXP) when I export to a wav longer than a minute. it usually gets to 30% then just locks up.

any thoughts?

thanks

Artemio
Offline
Joined: 04/17/2010

The export feature used to have a bug which has been fixed last week, but I am not sure if there's an updated installer available for Windows. We'll make sure to create a new installer soon, so please stay tuned to the forum.

scissorhandz
Offline
Joined: 04/17/2010

it seems that when i crank hydrogen to "real-time" in the process tree in the task manager, that i can usually export a wave without crashing the computer. It works more times than not.

2Late
Offline
Joined: 04/17/2010

I don't know if this even related, but I've propably found a reason why win32 version of hydrogen crashes when exporting to wave. The reason is use of return value from function (findPatternInTick) in hydrogen.cpp. Function may return -1, and return value is used before checking it -> crash when using -1. I'll attach (hope this works) the diff. No, attachment like diff isn't allowed, so pasting it (so formatting is propably gone :-).

(To developers: I've compiled hydrogen with msvc2005 express with great success and I have modified .pro-files to create .vcproj-files. If you are interested, I'm happy to show them :-)

Index: Hydrogen.cpp
===================================================================
--- Hydrogen.cpp (revision 172)
+++ Hydrogen.cpp (working copy)
@@ -1080,6 +1080,7 @@
}

m_nSongPos = findPatternInTick( tick, m_pSong->isLoopEnabled(), &m_nPatternStartTick );
+
if (m_nSongSizeInTicks != 0) {
m_nPatternTickPosition = (tick - m_nPatternStartTick) % m_nSongSizeInTicks;
}
@@ -1091,7 +1092,6 @@
bSendPatternChange = true;
}

- PatternList *pPatternList = (*(m_pSong->getPatternGroupVector()))[m_nSongPos];
if ( m_nSongPos == -1 ) {
_INFOLOG( "song pos = -1");
if ( m_pSong->isLoopEnabled() == true ) { // check if the song loop is enabled
@@ -1102,6 +1102,9 @@
return -1;
}
}
+
+ PatternList *pPatternList = (*(m_pSong->getPatternGroupVector()))[m_nSongPos];
+
// copio tutti i pattern
m_pPlayingPatterns->clear();
if ( pPatternList ) {

Eldmannen
Offline
Joined: 04/17/2010

Thanks that you fix it and tell developers how to fix it.

// copio tutti i pattern
Why do people insist in making comments in their native language?

Comix
Offline
Joined: 04/17/2010

>> // copio tutti i pattern
>> Why do people insist in making comments in their native language?

ehm...I know...I'm replacing them with english messages... :)
sorry

--
comix

Comix
Offline
Joined: 04/17/2010

Yes, I'm interested in building hyd also with VisualStudio Express.
Please send the modified files to my email address :)

--
comix

2Late
Offline
Joined: 04/17/2010

done that.

scissorhandz
Offline
Joined: 04/17/2010

Thanks. That is awesome, that you came up with that.