diff --git a/Cpp/lib/waveform.cpp b/Cpp/lib/waveform.cpp
index ebb10a788f8bdf65f76bf7057aa7fdb5bba0ebf7..950fe1f25926380ddc70b0ba8966599f89413517 100644
--- a/Cpp/lib/waveform.cpp
+++ b/Cpp/lib/waveform.cpp
@@ -283,10 +283,10 @@ std::pair<void*, int64_t> ArrayWaveform::getStaticWaveform() {
         + this->wfmParam.phases.array())
     ).array().colwise() * this->wfmParam.amplitudes.array();
     bindBuffer(minSampleLen * 2); // bytes
-    auto pData = (void*) this->pDataBuffer;
+    auto pData = (int16_t*) this->pDataBuffer;
     Eigen::Map<EigenVectorXi16> dataMap(pData, minSampleLen);
     dataMap = wfmMatrixrix.colwise().sum().cast<int16_t>();
-    return std::pair(pData, int64_t(minSampleLen));
+    return std::pair(this->pDataBuffer, int64_t(minSampleLen));
 }
 
 std::pair<void*, int64_t> ArrayWaveform::getTrickWaveform(
@@ -354,10 +354,10 @@ std::pair<void*, int64_t> ArrayWaveform::getTrickWaveform(
         }
     }
     bindBuffer(sampleLen * 2);
-    auto pData = (void*) this->pDataBuffer;
+    auto pData = (int16_t*) this->pDataBuffer;
     Eigen::Map<EigenVectorXi16> dataMap(pData, sampleLen);
     dataMap = wfmMatrix.rowwise().sum().cast<int16_t> ();
-    return std::pair(pData, int64_t(sampleLen));
+    return std::pair(this->pDataBuffer, int64_t(sampleLen));
 }
 
 void ArrayWaveform::saveWaveform(std::string fileName) {