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