Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

28
LINES

< > BotCompany Repo | #1032979 // SumOfVibrations

JavaX fragment (include)

1  
// This looks at a number of periods of a given frequency starting at a certain time in the audio
2  
// and returns an intensity value.
3  
// No phase adjustment here, so you have to call this twice to get meaningful (complex) results.
4  
srecord noeq SumOfVibrations(IAudioSample sample, int channel, double start, double freq, int periods) {
5  
  double period, end;
6  
  
7  
  double rawSum() {
8  
    period = sample.sampleRate()/freq;
9  
    double sum = 0, t = start;
10  
    for p to periods: {
11  
      // Subtract an expected trough from an expected neighboring peak and add to overall sum.
12  
      // Nota bene: Trough and peak have the same area (=length), so this is basically a Haar-like feature!
13  
      // By the use of which we automatically get around nasty complications like DC offsets in the input data.
14  
      
15  
      sum += sample.sampleSum(channel, t, t+period/2)
16  
           - sample.sampleSum(channel, t+period/2, t+period);
17  
        
18  
      t += period;
19  
    }
20  
    end = t;
21  
    ret sum;
22  
  }
23  
  
24  
  // alternate calculation adjusted for duration
25  
  double sumDividedByDuration() {
26  
    ret rawSum()/(end-start);
27  
  }
28  
}

Author comment

Began life as a copy of #1032977

download  show line numbers  debug dex  old transpilations   

Travelled to 3 computer(s): bhatertpkbcr, mowyntqkapby, mqqgnosmbjvj

No comments. add comment

Snippet ID: #1032979
Snippet name: SumOfVibrations
Eternal ID of this version: #1032979/1
Text MD5: ac47bcb9d7459181a1f1bce61f9be28b
Author: stefan
Category: javax / audio analysis
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2021-10-11 07:03:08
Source code size: 1124 bytes / 28 lines
Pitched / IR pitched: No / No
Views / Downloads: 141 / 166
Referenced in: [show references]