diff --git a/app/src/main/assets/lv2/neural_amp_modeler.so/neural-amp-modeler-lv2.json b/app/src/main/assets/lv2/neural_amp_modeler.so/neural-amp-modeler-lv2.json
new file mode 100644
index 00000000..cbe2559a
--- /dev/null
+++ b/app/src/main/assets/lv2/neural_amp_modeler.so/neural-amp-modeler-lv2.json
@@ -0,0 +1,46 @@
+{
+ "-1": {
+ "Plugin": true,
+ "AmplifierPlugin": true,
+ "optionalFeature": "http://lv2plug.in/ns/lv2core#hardRTCapable",
+ "port": "_:n62c4bb580b1c42edb579f4b1e2d6cc04b8",
+ "project": "http://lv2plug.in/ns/lv2",
+ "http://usefulinc.com/ns/doap#license": "http://opensource.org/licenses/isc",
+ "http://usefulinc.com/ns/doap#name": "Looper Plugin",
+ "pluginName": "Neural Amp Modeler"
+ },
+ "0": {
+ "InputPort": true,
+ "ControlPort": true,
+ "default": "1.0",
+ "index": 2,
+ "maximum": 6,
+ "minimum": 0,
+ "name": "Input Level",
+ "symbol": "input_level"
+ },
+ "1": {
+ "InputPort": true,
+ "ControlPort": true,
+ "default": "1.0",
+ "index": 3,
+ "maximum": 6,
+ "minimum": 0,
+ "name": "Output Level",
+ "symbol": "output_level"
+ },
+ "2": {
+ "AudioPort": true,
+ "InputPort": true,
+ "index": 0,
+ "name": "In",
+ "symbol": "audio_in"
+ },
+ "3": {
+ "AudioPort": true,
+ "OutputPort": true,
+ "index": 1,
+ "name": "Out",
+ "symbol": "audio_out"
+ }
+}
diff --git a/app/src/main/assets/lv2_plugins.json b/app/src/main/assets/lv2_plugins.json
index 2968ca01..e5a00aab 100644
--- a/app/src/main/assets/lv2_plugins.json
+++ b/app/src/main/assets/lv2_plugins.json
@@ -1336,5 +1336,11 @@
"id": 8100,
"index": 0,
"library": "liblooper.so"
+ },
+ "33000": {
+ "name": "Neural Amp Modeler",
+ "id": 8101,
+ "index": 0,
+ "library": "neural_amp_modeler.so"
}
}
diff --git a/app/src/main/assets/plugins.json b/app/src/main/assets/plugins.json
index a364a650..e622031d 100644
--- a/app/src/main/assets/plugins.json
+++ b/app/src/main/assets/plugins.json
@@ -18,6 +18,9 @@
"Looper": [
8100
],
+ "Neural Amp Modelling": [
+ 8101
+ ],
"Cabinet": [
2592, 2601, 2606, 2589, 15012, 8095, 8018, 24700, 7037, 5006, 5004,
6004,5033,4065,2603,2607,7033,7035,8027,8060,8092,7038,8029
diff --git a/app/src/main/cpp/SharedLibrary.h b/app/src/main/cpp/SharedLibrary.h
index 237869b5..b21b6abf 100644
--- a/app/src/main/cpp/SharedLibrary.h
+++ b/app/src/main/cpp/SharedLibrary.h
@@ -83,7 +83,6 @@ class SharedLibrary {
unsigned long sampleRate ;
LADSPA_Descriptor_Function descriptorFunction ;
LV2_Descriptor_Function lv2DescriptorFunction ;
- (void)(LV2_Handle, )
void setSampleRate(unsigned long _sampleRate);
char *load();
diff --git a/app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java b/app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java
index c77bd292..8ea40c44 100644
--- a/app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java
+++ b/app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java
@@ -629,7 +629,7 @@ public boolean onTouch(View v, MotionEvent event) {
}
Button fileChooser = null;
- if (pluginName .equals( "Looper")) {
+ if (pluginName .equals( "Looper") || pluginName.equals("Neural Amp Modeler")) {
fileChooser = new Button(mainActivity);
fileChooser.setText("Load file");
if (mainActivity.useTheme)
@@ -647,7 +647,10 @@ public boolean onTouch(View v, MotionEvent event) {
@Override
public void onClick(View v) {
Intent intent_upload = new Intent();
- intent_upload.setType("audio/*");
+ if (pluginName.equals("Looper"))
+ intent_upload.setType("audio/*");
+ else
+ intent_upload.setType("*/*");
intent_upload.setAction(Intent.ACTION_OPEN_DOCUMENT);
intent_upload.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
intent_upload.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
diff --git a/app/src/main/java/com/shajikhan/ladspa/amprack/MainActivity.java b/app/src/main/java/com/shajikhan/ladspa/amprack/MainActivity.java
index 50f1cd89..234a7d2b 100644
--- a/app/src/main/java/com/shajikhan/ladspa/amprack/MainActivity.java
+++ b/app/src/main/java/com/shajikhan/ladspa/amprack/MainActivity.java
@@ -1681,7 +1681,23 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
4. maybe a switch here, if NAM do this, if Looper do that
*/
+
int plugin = requestCode - 5000 ;
+ Uri returnUri = data.getData();
+ if (returnUri != null) {
+ String mimeType = getContentResolver().getType(returnUri);
+ if (!mimeType.startsWith("audio")) {
+ String path = returnUri.getPath();
+ if (path != null) {
+ Log.d(TAG, String.format ("setFileName: %s", returnUri.getPath()));
+ String s = getFileContent(returnUri);
+ Log.d(TAG, String.format ("[content]: %s", s));
+ AudioEngine.setPluginFilename(s, plugin);
+ }
+ return;
+ }
+ }
+
AudioDecoder audioDecoder = new AudioDecoder(this);
MediaCodecList supported = new MediaCodecList(MediaCodecList.ALL_CODECS);
int numCodecs = MediaCodecList.getCodecCount();
@@ -3660,4 +3676,30 @@ public static abstract class OnEngineStartListener {
engineStartListeners.add(this);
}
}
+
+ public String getFileContent(Uri uri) {
+ InputStreamReader inputStreamReader = null;
+ try {
+ inputStreamReader = new InputStreamReader(getContentResolver().openInputStream(uri));
+ } catch (FileNotFoundException e) {
+ Log.e(TAG, "getFileContent: ", e);
+ throw new RuntimeException(e);
+ }
+
+ BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
+ StringBuilder sb = new StringBuilder();
+ String s;
+ while (true) {
+ try {
+ if (!((s = bufferedReader.readLine()) != null)) break;
+ } catch (IOException e) {
+ Log.e(TAG, "getFileContent: ", e);
+ throw new RuntimeException(e);
+ }
+
+ sb.append(s);
+ }
+ String fileContent = sb.toString();
+ return fileContent;
+ }
}
\ No newline at end of file
diff --git a/app/src/main/jniLibs/arm64-v8a/neural_amp_modeler.so b/app/src/main/jniLibs/arm64-v8a/neural_amp_modeler.so
new file mode 100755
index 00000000..fefe766a
Binary files /dev/null and b/app/src/main/jniLibs/arm64-v8a/neural_amp_modeler.so differ
diff --git a/app/src/main/jniLibs/armeabi-v7a/neural_amp_modeler.so b/app/src/main/jniLibs/armeabi-v7a/neural_amp_modeler.so
new file mode 100755
index 00000000..1d99978a
Binary files /dev/null and b/app/src/main/jniLibs/armeabi-v7a/neural_amp_modeler.so differ
diff --git a/app/src/main/jniLibs/x86/neural_amp_modeler.so b/app/src/main/jniLibs/x86/neural_amp_modeler.so
new file mode 100755
index 00000000..df759bf1
Binary files /dev/null and b/app/src/main/jniLibs/x86/neural_amp_modeler.so differ
diff --git a/app/src/main/jniLibs/x86_64/neural_amp_modeler.so b/app/src/main/jniLibs/x86_64/neural_amp_modeler.so
new file mode 100755
index 00000000..3efc3edc
Binary files /dev/null and b/app/src/main/jniLibs/x86_64/neural_amp_modeler.so differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 372b4c54..8a3059d0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -497,6 +497,7 @@
- libgnuitar-distort.lv2.so
- libgnuitar-distort2.lv2.so
- liblooper.so
+ - neural_amp_modeler.so
Settings