In Java: convert an array of floats to bytes and vice versa
Welcome again to Code Review, not my field but from a not so clear documentation it seems that you can rewrite your bytesToFloats method using the FloatBuffer class like below, using the asFloatBuffer method from ByteBuffer class:
ByteBuffer buffer = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN);
FloatBuffer fb = buffer.asFloatBuffer();

After you have to back the FloatBuffer buffer allocating a new float array like below:
float[] floats = new float[bytes.length / BYTES_PER_FLOAT];
fb.get(floats);

Then your method can be rewritten like below:
protected static float[] bytesToFloats(byte[] bytes) {

    if (bytes.length % BYTES_PER_FLOAT != 0) {
        throw new RuntimeException(&quot;Illegal length&quot;);
    }
    
    ByteBuffer buffer = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN);
    FloatBuffer fb = buffer.asFloatBuffer();
    float[] floats = new float[bytes.length / BYTES_PER_FLOAT]; 
    
    fb.get(floats);

    return floats;

}

In alternative to the bytes.length / BYTES_PER_FLOAT the fb.limit() method seems returning the same result, moreover it is bound directly to the FloatBuffer fb used.