diff --git a/src/gdpd.cpp b/src/gdpd.cpp
index fbdc24c8a2f03c8e716907400ac5a1a8b95f8982..a86f988673d4a4b1257706f12495e9add04f436e 100644
--- a/src/gdpd.cpp
+++ b/src/gdpd.cpp
@@ -15,7 +15,9 @@ void Gdpd::_register_methods() {
     register_method("set_volume", &Gdpd::set_volume);
 }
 
-int Gdpd::audioCallback(void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status, void *userData){
+int Gdpd::audioCallback(void *outputBuffer, void *inputBuffer, 
+					    unsigned int nBufferFrames, double streamTime, 
+						RtAudioStreamStatus status, void *userData){
 	Gdpd* gdpd = static_cast<Gdpd*>(userData);
 	gdpd->processAudio(outputBuffer, inputBuffer, nBufferFrames, streamTime,
 					   status, userData);
@@ -32,7 +34,7 @@ void Gdpd::_init() {
 Gdpd::~Gdpd() {
 }
 
-int Gdpd::init(int nbInputs, int nbOutputs, int sampleRate) {
+int Gdpd::init(int nbInputs, int nbOutputs, int sampleRate, int bufferSize) {
 
 	if(!m_pd.init(nbInputs, nbOutputs, sampleRate, true)) {
 		Godot::print("GDPD : Error starting libpd");
@@ -62,7 +64,7 @@ int Gdpd::init(int nbInputs, int nbOutputs, int sampleRate) {
 	inParams.deviceId = m_audio.getDefaultOutputDevice();
 	outParams.nChannels = m_nbInputs = nbInputs;
 	inParams.nChannels = m_nbOutputs = nbOutputs;
-	m_bufferFrames = 128;
+	m_bufferFrames = bufferSize;
 
 	RtAudio::StreamOptions options;
 	options.streamName = "gdpd";
diff --git a/src/gdpd.hpp b/src/gdpd.hpp
index 5a24807ea0335bd7915d0c6f6c21e6bfbaf5eb5c..ef3a1dbb92f683a47b84c5975486bdddc859164f 100644
--- a/src/gdpd.hpp
+++ b/src/gdpd.hpp
@@ -38,7 +38,7 @@ public:
 	void _init();
 
 	//libpd functions
-	int init(int nbInputs, int nbOutputs, int sampleRate);
+	int init(int nbInputs, int nbOutputs, int sampleRate, int bufferSize);
 	void openfile(String basename, String dirname);
 	void closefile();
 	bool has_message();