Skip to content

Commit

Permalink
AIDA-X plugin
Browse files Browse the repository at this point in the history
Minor bug fixed that prevented NAM plugin from
loading files
  • Loading branch information
Shaji Khan committed May 19, 2024
1 parent 642a81d commit 2059822
Show file tree
Hide file tree
Showing 20 changed files with 299 additions and 13 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ android {
applicationId "com.shajikhan.ladspa.amprack"
minSdk 24
targetSdk 33
versionCode 93
versionName '4.20'
versionCode 94
versionName '4.30'

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
Expand Down
272 changes: 272 additions & 0 deletions app/src/main/assets/lv2/rt-neural-generic.so/rt-neural-generic.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,272 @@
{
"-1": {
"http://aidadsp.cc/plugins/aidadsp-bundle/rt-neural-generic#json": "file:///home/djshaji/projects/aidadsp-lv2-amprack/rt-neural-generic/ttl/models/deer%20ink%20studios/tw40_california_clean_deerinkstudios.json",
"pluginName": "AIDA-X"
},
"0": {
"AudioPort": true,
"InputPort": true,
"index": 0,
"name": "IN",
"symbol": "IN"
},
"1": {
"AudioPort": true,
"OutputPort": true,
"index": 1,
"name": "OUT",
"symbol": "OUT"
},
"2": {
"InputPort": true,
"http://lv2plug.in/ns/ext/atom#AtomPort": true,
"http://lv2plug.in/ns/ext/atom#bufferType": "http://lv2plug.in/ns/ext/atom#Sequence",
"http://lv2plug.in/ns/ext/atom#supports": "http://lv2plug.in/ns/ext/patch#Message",
"designation": "http://lv2plug.in/ns/lv2core#control",
"index": 2,
"name": "CONTROL",
"symbol": "CONTROL"
},
"3": {
"OutputPort": true,
"http://lv2plug.in/ns/ext/atom#AtomPort": true,
"http://lv2plug.in/ns/ext/atom#bufferType": "http://lv2plug.in/ns/ext/atom#Sequence",
"http://lv2plug.in/ns/ext/atom#supports": "http://lv2plug.in/ns/ext/patch#Message",
"designation": "http://lv2plug.in/ns/lv2core#control",
"index": 3,
"name": "NOTIFY",
"symbol": "NOTIFY"
},
"4": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#pc",
"default": "66.216",
"index": 4,
"maximum": "100.0",
"minimum": 0,
"name": "ANTIALIASING",
"scalePoint": "_:n477cfa8d4e6f474eab1538e1f9ccbbbeb8",
"symbol": "ANTIALIASING"
},
"5": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#db",
"default": 0,
"index": 5,
"maximum": "12.0",
"minimum": "-12.0",
"name": "INPUT",
"symbol": "PREGAIN"
},
"6": {
"ControlPort": true,
"InputPort": true,
"default": 0,
"index": 6,
"maximum": 1,
"minimum": 0,
"name": "NETBYPASS",
"portProperty": "http://lv2plug.in/ns/lv2core#toggled",
"symbol": "NETBYPASS"
},
"7": {
"ControlPort": true,
"InputPort": true,
"default": 0,
"index": 7,
"maximum": "1.0",
"minimum": 0,
"name": "PARAM1",
"symbol": "PARAM1"
},
"8": {
"ControlPort": true,
"InputPort": true,
"default": 0,
"index": 8,
"maximum": "1.0",
"minimum": 0,
"name": "PARAM2",
"symbol": "PARAM2"
},
"9": {
"ControlPort": true,
"InputPort": true,
"default": 0,
"index": 9,
"maximum": 1,
"minimum": 0,
"name": "EQBYPASS",
"portProperty": "http://lv2plug.in/ns/lv2core#toggled",
"symbol": "EQBYPASS"
},
"10": {
"ControlPort": true,
"InputPort": true,
"default": 0,
"index": 10,
"maximum": 1,
"minimum": 0,
"name": "EQPOS",
"portProperty": "http://lv2plug.in/ns/lv2core#enumeration",
"scalePoint": "_:n477cfa8d4e6f474eab1538e1f9ccbbbeb16",
"symbol": "EQPOS"
},
"11": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#db",
"default": 0,
"index": 11,
"maximum": 8,
"minimum": "-8.0",
"name": "BASS",
"symbol": "BASS"
},
"12": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#hz",
"default": "305.0",
"index": 12,
"maximum": "600.0",
"minimum": "75.0",
"name": "BFREQ",
"symbol": "BFREQ"
},
"13": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#db",
"default": 0,
"index": 13,
"maximum": 8,
"minimum": "-8.0",
"name": "MID",
"symbol": "MID"
},
"14": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#hz",
"default": "750.0",
"index": 14,
"maximum": "5000.0",
"minimum": "150.0",
"name": "MFREQ",
"symbol": "MFREQ"
},
"15": {
"ControlPort": true,
"InputPort": true,
"default": "0.707",
"index": 15,
"maximum": "5.0",
"minimum": "0.2",
"name": "MIDQ",
"symbol": "MIDQ"
},
"16": {
"ControlPort": true,
"InputPort": true,
"default": 0,
"index": 16,
"maximum": 1,
"minimum": 0,
"name": "MTYPE",
"portProperty": "http://lv2plug.in/ns/lv2core#enumeration",
"scalePoint": "_:n477cfa8d4e6f474eab1538e1f9ccbbbeb24",
"symbol": "MTYPE"
},
"17": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#db",
"default": 0,
"index": 17,
"maximum": 8,
"minimum": "-8.0",
"name": "TREBLE",
"symbol": "TREBLE"
},
"18": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#hz",
"default": "2000.0",
"index": 18,
"maximum": "4000.0",
"minimum": "1000.0",
"name": "TFREQ",
"symbol": "TFREQ"
},
"19": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#db",
"default": 0,
"index": 19,
"maximum": 8,
"minimum": "-8.0",
"name": "DEPTH",
"symbol": "DEPTH"
},
"20": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#db",
"default": 0,
"index": 20,
"maximum": 8,
"minimum": "-8.0",
"name": "PRESENCE",
"symbol": "PRESENCE"
},
"21": {
"ControlPort": true,
"InputPort": true,
"default": 1,
"index": 21,
"maximum": 1,
"minimum": 0,
"name": "DCBLOCKER",
"portProperty": "http://lv2plug.in/ns/lv2core#toggled",
"symbol": "DCBLOCKER"
},
"22": {
"ControlPort": true,
"InputPort": true,
"http://lv2plug.in/ns/extensions/units#unit": "http://lv2plug.in/ns/extensions/units#db",
"default": 0,
"index": 22,
"maximum": 15,
"minimum": "-15.0",
"name": "OUTPUT",
"symbol": "MASTER"
},
"23": {
"ControlPort": true,
"OutputPort": true,
"default": 0,
"index": 23,
"maximum": 3,
"minimum": 0,
"name": "Model Input Size",
"portProperty": "http://lv2plug.in/ns/lv2core#enumeration",
"scalePoint": "_:n477cfa8d4e6f474eab1538e1f9ccbbbeb35",
"symbol": "ModelInSize"
},
"24": {
"ControlPort": true,
"InputPort": true,
"default": 1,
"designation": "http://lv2plug.in/ns/lv2core#enabled",
"index": 24,
"maximum": 1,
"minimum": 0,
"name": "Enabled",
"symbol": "enabled"
}
}
6 changes: 6 additions & 0 deletions app/src/main/assets/lv2_plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -1354,5 +1354,11 @@
"id": 8103,
"index": 0,
"library": "libconvoLV2.so"
},
"33300": {
"name": "AIDA-X",
"id": 8104,
"index": 0,
"library": "rt-neural-generic.so"
}
}
2 changes: 1 addition & 1 deletion app/src/main/assets/plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
8100
],
"Neural Amp Modelling": [
8101
8101, 8104
],
"Impulse Response": [1885],
"Cabinet": [
Expand Down
10 changes: 7 additions & 3 deletions app/src/main/cpp/Plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,8 +300,8 @@ void Plugin::setBuffer (float * buffer, int read_bytes) {
// dont try this at home
if (type == SharedLibrary::LV2) {
LOGD("setting buffer for LV2 plugin") ;
lv2Descriptor->connect_port(handle, 9, &read_bytes);
lv2Descriptor->connect_port(handle, 2, buffer);
lv2Descriptor->connect_port(handle, 99, &read_bytes);
lv2Descriptor->connect_port(handle, 100, buffer);
} else {
LOGD("setting buffer for LADSPA plugin");
descriptor->connect_port(handle, 99, reinterpret_cast<LADSPA_Data *>(&read_bytes));
Expand All @@ -311,7 +311,11 @@ void Plugin::setBuffer (float * buffer, int read_bytes) {
}

void Plugin::setFileName (std::string filename) {
lv2Descriptor->connect_port(handle, 4, (void *) filename.c_str());
IN
float s = filename.size() ;
lv2Descriptor->connect_port(handle, 99, (void *) &s);
lv2Descriptor->connect_port(handle, 100, (void *) filename.c_str());
OUT
}

void Plugin::lv2FeaturesURID () {
Expand Down
1 change: 1 addition & 0 deletions app/src/main/cpp/native-lib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -810,6 +810,7 @@ data,
jint plugin
) {
if (engine == nullptr) return ;
if (data == nullptr) return;
jsize len = env->GetArrayLength( data);
jfloat *body = env->GetFloatArrayElements( data, 0);

Expand Down
14 changes: 8 additions & 6 deletions app/src/main/java/com/shajikhan/ladspa/amprack/DataAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -638,7 +638,7 @@ public boolean onTouch(View v, MotionEvent event) {
}

Button fileChooser = null;
if (pluginName .equals( "Looper") || pluginName.equals("Neural Amp Modeler") || pluginName.equals("TAP IR") || hasFilePort) {
if (pluginName.equals("AIDA-X") || pluginName .equals( "Looper") || pluginName.equals("Neural Amp Modeler") || pluginName.equals("TAP IR")|| hasFilePort) {
fileChooser = new Button(mainActivity);
fileChooser.setText("Load file");
if (mainActivity.useTheme)
Expand All @@ -662,7 +662,7 @@ public boolean onTouch(View v, MotionEvent event) {
@Override
public void onClick(View v) {
Intent intent_upload = new Intent();
if (pluginName.equals("Looper") || hasFilePort)
if (pluginName.equals("Looper"))
intent_upload.setType("audio/*");
else
intent_upload.setType("*/*");
Expand All @@ -675,7 +675,7 @@ public void onClick(View v) {
}
});

if (pluginName.equals("Neural Amp Modeler")) {
if (pluginName.equals("Neural Amp Modeler") || pluginName.equals("AIDA-X")) {
String dir = context.getExternalFilesDir(
Environment.DIRECTORY_DOWNLOADS) + "/" + pluginName + "/";

Expand Down Expand Up @@ -758,25 +758,27 @@ public void onItemSelected(AdapterView<?> parent, View view, int _position, long
String m = spinner.getAdapter().getItem(_position).toString();

Uri ri = Uri.parse("file://" + dir + m);
/*
if (hasFilePort) {
// AudioEngine.setFilePortValue(holder.getAdapterPosition(), ri.getPath());
AudioDecoder audioDecoder = new AudioDecoder(mainActivity);
try {
int samplerate = AudioEngine.getSampleRate() ;
if (samplerate < 44100 /*aaaaaaaarghhh*/)
if (samplerate < 44100 )
samplerate = 48000 ;
String p = ri.getPath() ;
Log.d(TAG, "onItemSelected: loading file " + ri.toString());
float [] samples = audioDecoder.decode(ri, null, samplerate);
AudioEngine.setPluginBuffer(samples, holder.getAdapterPosition());
Log.d(TAG, String.format ("[decoder]: %d", samples.length));
// Log.d(TAG, String.format ("[decoder]: %d", samples.length));
} catch (IOException e) {
MainActivity.toast(e.getMessage());
Log.e(TAG, "onActivityResult: ", e);
}
}
else {
else */
{
String s = mainActivity.getFileContent(ri);
// Log.d(TAG, String.format("[content]: %s", s));
AudioEngine.setPluginFilename(s, holder.getAdapterPosition());
Expand Down
Binary file modified app/src/main/jniLibs/arm64-v8a/liblooper.so
Binary file not shown.
Binary file modified app/src/main/jniLibs/arm64-v8a/neural_amp_modeler.so
Binary file not shown.
Binary file not shown.
Binary file modified app/src/main/jniLibs/armeabi-v7a/liblooper.so
Binary file not shown.
Binary file modified app/src/main/jniLibs/armeabi-v7a/neural_amp_modeler.so
Binary file not shown.
Binary file not shown.
Binary file modified app/src/main/jniLibs/x86/liblooper.so
Binary file not shown.
Binary file modified app/src/main/jniLibs/x86/neural_amp_modeler.so
Binary file not shown.
Binary file added app/src/main/jniLibs/x86/rt-neural-generic.so
Binary file not shown.
Binary file modified app/src/main/jniLibs/x86_64/liblooper.so
Binary file not shown.
Binary file modified app/src/main/jniLibs/x86_64/neural_amp_modeler.so
Binary file not shown.
Binary file added app/src/main/jniLibs/x86_64/rt-neural-generic.so
Binary file not shown.
Loading

0 comments on commit 2059822

Please sign in to comment.