commit 3bd99f6e086a1c876d8b9b85061ed4452c850dde
Author: 00christian00 <00christian00@users.noreply.github.com>
Date:   Fri Apr 1 09:27:22 2016 +0200

    fixed DLS import

diff --git a/soundlib/Dlsbank.cpp b/soundlib/Dlsbank.cpp
index 7cf0140..f82ee45 100644
--- a/soundlib/Dlsbank.cpp
+++ b/soundlib/Dlsbank.cpp
@@ -1583,6 +1583,7 @@ bool CDLSBank::ExtractSample(CSoundFile &sndFile, SAMPLEINDEX nSample, uint32 nI
 			sample.nC5Speed = p->dwSampleRate;
 			sample.RelativeTone = p->byOriginalPitch;
 			sample.nFineTune = p->chPitchCorrection;
+			
 			if (p->szName[0]) memcpy(sndFile.m_szNames[nSample], p->szName, MAX_SAMPLENAME - 1);
 
 
@@ -1632,6 +1633,7 @@ bool CDLSBank::ExtractSample(CSoundFile &sndFile, SAMPLEINDEX nSample, uint32 nI
 			int sFineTune = pRgn->sFineTune;
 			int lVolume = pRgn->usVolume;
 
+		
 			WSMPCHUNK wsmp;
 			if(!(pRgn->fuOptions & DLSREGION_OVERRIDEWSMP) && wsmpChunk.ReadStructPartial(wsmp))
 			{
@@ -1651,10 +1653,10 @@ bool CDLSBank::ExtractSample(CSoundFile &sndFile, SAMPLEINDEX nSample, uint32 nI
 						sample.nLoopEnd = loop.ulLoopStart + loop.ulLoopLength;
 					}
 				}
-			} else
+			} 
 			if (m_nType & SOUNDBANK_TYPE_SF2)
 			{
-				usUnityNote = (usUnityNote < 0x80) ? usUnityNote : sample.RelativeTone;
+				usUnityNote = sample.RelativeTone;
 				sFineTune += sample.nFineTune;
 			}
 		#ifdef DLSINSTR_LOG
@@ -1666,7 +1668,7 @@ bool CDLSBank::ExtractSample(CSoundFile &sndFile, SAMPLEINDEX nSample, uint32 nI
 								sFineTune+(60 + transpose - usUnityNote)*100);
 			sample.nFineTune = static_cast<int8>(nBaseTune & 0x7F);*/
 			//sample.RelativeTone = sample.RelativeTone -60;
-			sample.RootNoteToFreq(sample.RelativeTone, sample.nFineTune, sample.nC5Speed);
+			sample.nC5Speed=sample.RootNoteToFreq(usUnityNote, sFineTune, sample.nC5Speed);
 			if (lVolume > 256) lVolume = 256;
 			if (lVolume < 16) lVolume = 16;
 			sample.nGlobalVol = (uint8)(lVolume / 4);	// 0-64
diff --git a/soundlib/ModSample.cpp b/soundlib/ModSample.cpp
index 09d4bb2..f6e0ea6 100644
--- a/soundlib/ModSample.cpp
+++ b/soundlib/ModSample.cpp
@@ -314,13 +314,13 @@ void ModSample::TransposeToFrequency()
 	nC5Speed = TransposeToFrequency(RelativeTone, nFineTune);
 }
 
-void ModSample::RootNoteToFreq(int Root, int finetune, int SampleFreq)
+uint32 ModSample::RootNoteToFreq(int Root, int finetune, int SampleFreq)
 //------------------------------------
 {
 	int Relative = 60 -Root;
 	float steps = (Relative * 128.0f + nFineTune) * (1.0f / (12.0f * 128.0f));
 	//nC5Speed = Util::Round<uint32>(std::pow(2.0f, (RelativeTone * 128.0f + nFineTune) * (1.0f / (12.0f * 128.0f))) * 440.0f);;
-		nC5Speed = Util::Round<uint32>(std::pow(2.0f, steps) * SampleFreq);;
+		return Util::Round<uint32>(std::pow(2.0f, steps) * SampleFreq);;
 
 }
 
diff --git a/soundlib/ModSample.h b/soundlib/ModSample.h
index e69b4c1..02590dc 100644
--- a/soundlib/ModSample.h
+++ b/soundlib/ModSample.h
@@ -95,7 +95,7 @@ struct ModSample
 	// Transpose <-> Frequency conversions
 	static uint32 TransposeToFrequency(int transpose, int finetune = 0);
 	void TransposeToFrequency();
-	void RootNoteToFreq(int Root, int finetune, int SampleFreq);
+	uint32 RootNoteToFreq(int Root, int finetune, int SampleFreq);
 	static int FrequencyToTranspose(uint32 freq);
 	void FrequencyToTranspose();
 
