Ich benutze einen Patch, um einen Peaking-Filter zu implementieren (mit Biquad ~) gegeben Freq/q/Gain.libpd mit Android - Patch spielt keinen Ton bei der Verwendung von Ausdruck in Patch
Der Patch funktioniert gut in Pd, aber wenn ich es mit Android Studio verwende, bekomme ich keinen Ton. In Android Studio werden keine Fehler angezeigt, der Patch lädt einwandfrei, nur kein Ton.
Wenn ich den Abschnitt des Patches wegnehmen, der die f/q/g-Parameter in Filterkoeffizienten umwandelt und einfach 5 Zufallskoeffizienten gibt, funktioniert das Patch gut.
Daher nehme ich an, dass das Problem mit dem expr-Objekt ist, außer dass es sonst nicht viel mehr gibt. Gibt es etwas Spezifisches, das ich meinem Android Studio-Projekt aufgrund der Verwendung von Ausdruck hinzufügen müsste?
Dieser Patch funktioniert nicht.
Dieser Patch funktioniert.
Meine Java-Datei sieht wie folgt aus:
package com.example.mark.pdaudioio;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.SeekBar;
import android.widget.Switch;
import android.widget.TextView;
import org.puredata.android.io.AudioParameters;
import org.puredata.android.io.PdAudio;
import org.puredata.android.utils.PdUiDispatcher;
import org.puredata.core.PdBase;
import org.puredata.core.utils.IoUtils;
import java.io.File;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
TextView volumeTextViewJava;
SeekBar volumeSeekBarJava;
int volume = 0;
private PdUiDispatcher dispatcher;
private void initPD() throws IOException{
int sampleRate = AudioParameters.suggestSampleRate();
int inpch = AudioParameters.suggestInputChannels();
PdAudio.initAudio(sampleRate, inpch, 2, 8, true);
dispatcher = new PdUiDispatcher();
PdBase.setReceiver(dispatcher);
}
private void initGUI(){
Switch onOffSwitch = (Switch) findViewById(R.id.onOffSwitch);
onOffSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
float val = (isChecked) ? 1.0f : 0.0f;
PdBase.sendFloat("onOffPD",val);
}
});
volumeTextViewJava = (TextView) findViewById(R.id.volumeTextView);
volumeSeekBarJava = (SeekBar) findViewById(R.id.volumeSeekBar);
volumeSeekBarJava.setMax(100);
volumeSeekBarJava.incrementProgressBy(1);
volumeSeekBarJava.setProgress(0);
volumeSeekBarJava.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int volProgress, boolean fromUser) {
volume = volProgress;
float volumeFloat = (float) volume;
PdBase.sendFloat("volumePD", volumeFloat);
volumeTextViewJava.setText("vol: " + volProgress);
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
private void loadPDPatch() throws IOException{
File dir = getFilesDir();
IoUtils.extractZipResource(getResources().openRawResource(R.raw.simplepatch),dir,true);
File pdPatch = new File(dir, "Biquad_WithExpr.pd");
PdBase.openPatch(pdPatch.getAbsolutePath());
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try{
initPD();
loadPDPatch();
}catch (IOException e){
finish();
}
initGUI();
}
@Override
protected void onResume(){
super.onResume();
PdAudio.startAudio(this);
}
@Override
protected void onPause(){
super.onPause();
PdAudio.stopAudio();
}
}
Hier ist ein Link zu meiner vollen Projekt Android Studio. https://www.dropbox.com/s/aorji4heum8jvbc/PDAudioIO.zip?dl=0
Jede Hilfe wird sehr geschätzt !!