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

39
LINES

< > BotCompany Repo | #1032980 // StaticAudioSample - a sample that just exists in time

JavaX fragment (include) [tags: use-pretranspiled]

Libraryless. Click here for Pure Java version (6307L/37K).

// The core integral 1D image.
sclass StaticAudioSample implements IAudioSample {
  int channels;
  double sampleRate;
  int length;
  
  // Here they are: the partial sums of the 16 bit audio samples
  // in an array of 6-byte integers. Channels are stored interleaved.
  HalfLongs data;
  
  public double sampleRate() { ret sampleRate; }
  public int channels() { ret channels; }
  public DoubleRange bounds() { ret DoubleRange(0, length); }
  
  // Get an entry of the sum table - allow for out-of-bounds
  // requests (those just default to silence).
  public double readSumTable(int channel, int i) {
    if (i < 0) ret 0;
    i = min(i, length-1);
    ret data.get(i*channels+channel);
  }
  
  // perform the integration of the raw audio data
  *(L<short[]> samples, int *channels, double *sampleRate) {
    length = lengthLevel2_shortArrays(samples);
    data = new HalfLongs(length*channels);
    long[] sums = new[channels];
    int iSample = 0, iChunk = 0, iInArray = 0;
    short[] chunk = null;
    for i to length:
      for c to channels: {
        if (chunk == null || iInArray >= chunk.length) {
          chunk = samples.get(iChunk++);
          iInArray = 0;
        }
        data.set(iSample++, sums[c] += chunk[iInArray++]);
      }
  }
}

download  show line numbers  debug dex  old transpilations   

Travelled to 4 computer(s): bhatertpkbcr, ekrmjmnbrukm, mowyntqkapby, mqqgnosmbjvj

No comments. add comment

Snippet ID: #1032980
Snippet name: StaticAudioSample - a sample that just exists in time
Eternal ID of this version: #1032980/6
Text MD5: 800ddc12dec404d1f512afc6a3a9fc71
Transpilation MD5: 23c23e1a161580285d18f6877cc8409d
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-18 04:01:48
Source code size: 1299 bytes / 39 lines
Pitched / IR pitched: No / No
Views / Downloads: 99 / 198
Version history: 5 change(s)
Referenced in: [show references]