Skip to content

Commit cde6050

Browse files
committed
effects can be passed to analyzers. started on making inputs modulatable
1 parent 00ee473 commit cde6050

File tree

14 files changed

+227
-77
lines changed

14 files changed

+227
-77
lines changed
File renamed without changes.

java/libraries/sound/src/cpp/include/processing_sound_MethClaInterface.h

Lines changed: 20 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/libraries/sound/src/cpp/processing_sound_MethClaInterface.cpp

Lines changed: 123 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,75 @@ JNIEXPORT void JNICALL Java_processing_sound_MethClaInterface_oscSet (JNIEnv *en
140140
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
141141
};
142142

143+
JNIEXPORT void JNICALL Java_processing_sound_MethClaInterface_oscAudioSet(JNIEnv *env, jobject object, jintArray freq, jintArray amp, jintArray add, jintArray pos, jintArray nodeId){
144+
145+
jint* m_freq = env->GetIntArrayElements(freq, 0);
146+
jint* m_amp = env->GetIntArrayElements(amp, 0);
147+
jint* m_add = env->GetIntArrayElements(add, 0);
148+
jint* m_pos = env->GetIntArrayElements(pos, 0);
149+
jint* m_nodeId = env->GetIntArrayElements(nodeId, 0);
150+
151+
Methcla::Request request(engine());
152+
request.openBundle(Methcla::immediately);
153+
154+
if (m_freq[0] != -1)
155+
{
156+
Methcla::AudioBusId freq_bus = m_engine->audioBusId().alloc();
157+
request.set(m_nodeId[0], 0 , 0);
158+
request.free(m_freq[1]);
159+
request.mapOutput(m_freq[0], 0, freq_bus);
160+
request.mapInput(m_nodeId[0], 0, freq_bus);
161+
162+
std::cout << "freq" << std::endl;
163+
}
164+
165+
if (m_amp[0] != -1)
166+
{
167+
168+
Methcla::AudioBusId amp_bus = m_engine->audioBusId().alloc();
169+
//request.set(m_nodeId[0], 1 , 0);
170+
//request.free(m_amp[1]);
171+
request.mapOutput(m_amp[0], 0, amp_bus);
172+
std::cout << m_amp[0] << std::endl;
173+
request.set(m_amp[0], 0, 200);
174+
175+
request.mapInput(m_nodeId[0], 1, amp_bus);
176+
177+
std::cout << "amp" << std::endl;
178+
}
179+
180+
if (m_add[0] != -1)
181+
{
182+
Methcla::AudioBusId add_bus = m_engine->audioBusId().alloc();
183+
request.set(m_nodeId[0], 2 , 0);
184+
request.free(m_add[1]);
185+
request.mapOutput(m_add[0], 0, add_bus);
186+
request.mapInput(m_nodeId[0], 2, add_bus);
187+
188+
std::cout << "add" << std::endl;
189+
}
190+
191+
if (m_pos[0] != -1)
192+
{
193+
Methcla::AudioBusId pos_bus = m_engine->audioBusId().alloc();
194+
request.set(m_nodeId[1], 0 , 0);
195+
request.free(m_pos[1]);
196+
request.mapOutput(m_pos[0], 0, pos_bus);
197+
request.mapInput(m_nodeId[1], 0, pos_bus);
198+
199+
std::cout << "pos" << std::endl;
200+
}
201+
202+
request.closeBundle();
203+
request.send();
204+
205+
env->ReleaseIntArrayElements(freq, m_freq, 0);
206+
env->ReleaseIntArrayElements(amp, m_amp, 0);
207+
env->ReleaseIntArrayElements(add, m_add, 0);
208+
env->ReleaseIntArrayElements(pos, m_pos, 0);
209+
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
210+
};
211+
143212
// SineOsc
144213

145214
JNIEXPORT jintArray JNICALL Java_processing_sound_MethClaInterface_sinePlay(JNIEnv *env, jobject object, jfloat freq, jfloat amp, jfloat add, jfloat pos){
@@ -316,6 +385,7 @@ JNIEXPORT void JNICALL Java_processing_sound_MethClaInterface_sqrSet(JNIEnv *env
316385
Methcla::Request request(engine());
317386
request.openBundle(Methcla::immediately);
318387
request.set(m_nodeId[0], 0 , freq);
388+
request.set(m_nodeId[0], 0 , 0.5f);
319389
request.set(m_nodeId[0], 2 , amp);
320390
request.set(m_nodeId[1], 0 , pos);
321391
request.closeBundle();
@@ -780,9 +850,11 @@ JNIEXPORT void JNICALL Java_processing_sound_MethClaInterface_brownNoiseSet(JNIE
780850
};
781851

782852

783-
JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_envelopePlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat attackTime, jfloat sustainTime, jfloat sustainLevel, jfloat releaseTime){
853+
JNIEXPORT jintArray JNICALL Java_processing_sound_MethClaInterface_envelopePlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat attackTime, jfloat sustainTime, jfloat sustainLevel, jfloat releaseTime){
784854

785855
jint* m_nodeId = env->GetIntArrayElements(nodeId, 0);
856+
jintArray returnId = env->NewIntArray(2);
857+
jint *m_returnId = env->GetIntArrayElements(returnId, NULL);
786858

787859
Methcla::AudioBusId in_bus = m_engine->audioBusId().alloc();
788860
Methcla::AudioBusId out_bus = m_engine->audioBusId().alloc();
@@ -813,15 +885,21 @@ JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_envelopePlay(JNIEn
813885

814886
request.closeBundle();
815887
request.send();
816-
888+
889+
m_returnId[0]=synth.id();
890+
m_returnId[1]=m_nodeId[1];
891+
892+
env->ReleaseIntArrayElements(returnId, m_returnId, 0);
817893
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
818894

819-
return synth.id();
895+
return returnId;
820896
};
821897

822-
JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_highPassPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat freq, jfloat res){
898+
JNIEXPORT jintArray JNICALL Java_processing_sound_MethClaInterface_highPassPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat freq, jfloat res){
823899

824900
jint* m_nodeId = env->GetIntArrayElements(nodeId, 0);
901+
jintArray returnId = env->NewIntArray(2);
902+
jint *m_returnId = env->GetIntArrayElements(returnId, NULL);
825903

826904
Methcla::AudioBusId in_bus = m_engine->audioBusId().alloc();
827905
Methcla::AudioBusId out_bus = m_engine->audioBusId().alloc();
@@ -845,14 +923,20 @@ JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_highPassPlay(JNIEn
845923
request.closeBundle();
846924
request.send();
847925

848-
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
926+
m_returnId[0]=synth.id();
927+
m_returnId[1]=m_nodeId[1];
849928

850-
return synth.id();
929+
env->ReleaseIntArrayElements(returnId, m_returnId, 0);
930+
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
931+
932+
return returnId;
851933
};
852934

853-
JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_lowPassPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat freq, jfloat res){
935+
JNIEXPORT jintArray JNICALL Java_processing_sound_MethClaInterface_lowPassPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat freq, jfloat res){
854936

855937
jint* m_nodeId = env->GetIntArrayElements(nodeId, 0);
938+
jintArray returnId = env->NewIntArray(2);
939+
jint *m_returnId = env->GetIntArrayElements(returnId, NULL);
856940

857941
Methcla::AudioBusId in_bus = m_engine->audioBusId().alloc();
858942
Methcla::AudioBusId out_bus = m_engine->audioBusId().alloc();
@@ -876,14 +960,20 @@ JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_lowPassPlay(JNIEnv
876960
request.closeBundle();
877961
request.send();
878962

879-
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
963+
m_returnId[0]=synth.id();
964+
m_returnId[1]=m_nodeId[1];
880965

881-
return synth.id();
966+
env->ReleaseIntArrayElements(returnId, m_returnId, 0);
967+
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
968+
969+
return returnId;
882970
};
883971

884-
JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_bandPassPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat freq, jfloat res){
972+
JNIEXPORT jintArray JNICALL Java_processing_sound_MethClaInterface_bandPassPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat freq, jfloat res){
885973

886974
jint* m_nodeId = env->GetIntArrayElements(nodeId, 0);
975+
jintArray returnId = env->NewIntArray(2);
976+
jint *m_returnId = env->GetIntArrayElements(returnId, NULL);
887977

888978
Methcla::AudioBusId in_bus = m_engine->audioBusId().alloc();
889979
Methcla::AudioBusId out_bus = m_engine->audioBusId().alloc();
@@ -907,9 +997,13 @@ JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_bandPassPlay(JNIEn
907997
request.closeBundle();
908998
request.send();
909999

1000+
m_returnId[0]=synth.id();
1001+
m_returnId[1]=m_nodeId[1];
1002+
1003+
env->ReleaseIntArrayElements(returnId, m_returnId, 0);
9101004
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
9111005

912-
return synth.id();
1006+
return returnId;
9131007
};
9141008

9151009
JNIEXPORT void JNICALL Java_processing_sound_MethClaInterface_filterSet(JNIEnv *env, jobject object, jfloat freq, jfloat res, jint nodeId){
@@ -922,9 +1016,11 @@ JNIEXPORT void JNICALL Java_processing_sound_MethClaInterface_filterSet(JNIEnv *
9221016
request.send();
9231017
};
9241018

925-
JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_delayPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat maxDelayTime, jfloat delayTime, jfloat feedBack){
1019+
JNIEXPORT jintArray JNICALL Java_processing_sound_MethClaInterface_delayPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat maxDelayTime, jfloat delayTime, jfloat feedBack){
9261020

927-
jint* m_nodeId = env->GetIntArrayElements(nodeId, 0);
1021+
jint* m_nodeId = env->GetIntArrayElements(nodeId, 0);
1022+
jintArray returnId = env->NewIntArray(2);
1023+
jint *m_returnId = env->GetIntArrayElements(returnId, NULL);
9281024

9291025
Methcla::AudioBusId in_bus = m_engine->audioBusId().alloc();
9301026
Methcla::AudioBusId out_bus = m_engine->audioBusId().alloc();
@@ -947,10 +1043,14 @@ JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_delayPlay(JNIEnv *
9471043

9481044
request.closeBundle();
9491045
request.send();
950-
1046+
1047+
m_returnId[0]=synth.id();
1048+
m_returnId[1]=m_nodeId[1];
1049+
1050+
env->ReleaseIntArrayElements(returnId, m_returnId, 0);
9511051
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
9521052

953-
return synth.id();
1053+
return returnId;
9541054
};
9551055

9561056

@@ -963,9 +1063,11 @@ JNIEXPORT void JNICALL Java_processing_sound_MethClaInterface_delaySet(JNIEnv *e
9631063
request.send();
9641064
};
9651065

966-
JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_reverbPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat room, jfloat damp, jfloat wet){
1066+
JNIEXPORT jintArray JNICALL Java_processing_sound_MethClaInterface_reverbPlay(JNIEnv *env, jobject object, jintArray nodeId, jfloat room, jfloat damp, jfloat wet){
9671067

9681068
jint* m_nodeId = env->GetIntArrayElements(nodeId, 0);
1069+
jintArray returnId = env->NewIntArray(2);
1070+
jint *m_returnId = env->GetIntArrayElements(returnId, NULL);
9691071

9701072
Methcla::AudioBusId in_bus = m_engine->audioBusId().alloc();
9711073
Methcla::AudioBusId out_bus = m_engine->audioBusId().alloc();
@@ -991,9 +1093,13 @@ JNIEXPORT jint JNICALL Java_processing_sound_MethClaInterface_reverbPlay(JNIEnv
9911093
request.closeBundle();
9921094
request.send();
9931095

1096+
m_returnId[0]=synth.id();
1097+
m_returnId[1]=m_nodeId[1];
1098+
1099+
env->ReleaseIntArrayElements(returnId, m_returnId, 0);
9941100
env->ReleaseIntArrayElements(nodeId, m_nodeId, 0);
9951101

996-
return synth.id();
1102+
return returnId;
9971103
};
9981104

9991105
JNIEXPORT void JNICALL Java_processing_sound_MethClaInterface_reverbSet(JNIEnv *env, jobject object, jfloat room, jfloat damp, jfloat wet, jint nodeId){

java/libraries/sound/src/processing/sound/BandPass.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ public class BandPass implements SoundObject{
66

77
PApplet parent;
88
private Engine m_engine;
9-
private int m_nodeId;
10-
private int[] m_m = {0,0};
9+
private int[] m_nodeId = {-1,-1};
1110
private float m_freq = 100;
1211
private float m_res = 1;
1312

@@ -29,7 +28,7 @@ public void process(SoundObject input, float freq){
2928
}
3029

3130
private void set(){
32-
m_engine.filterSet(m_freq, m_res, m_nodeId);
31+
m_engine.filterSet(m_freq, m_res, m_nodeId[0]);
3332
}
3433

3534
public void set(float freq, float res){
@@ -48,14 +47,14 @@ public void res(float res){
4847
}
4948

5049
public int[] returnId(){
51-
return m_m;
50+
return m_nodeId;
5251
}
5352

5453
public void stop(){
55-
//m_engine.synthStop(m_nodeId);
54+
m_engine.synthStop(m_nodeId);
5655
}
5756

5857
public void dispose() {
59-
//m_engine.synthStop(m_nodeId);
58+
m_engine.synthStop(m_nodeId);
6059
}
6160
}

0 commit comments

Comments
 (0)