//package nbtool.gui.logviews.sound2; // //import nbtool.gui.logviews.misc.ViewParent; // //public class CorrelationView extends ViewParent { // // private static final int TARGET_F = 1000; // // public CorrelationView() { // super(); // initComponents(); // // magSlider.setEnabled(false); // diffSlider.setEnabled(false); // waveScrollPane.setVisible(false); // } // // private int percentForRange(double min, double max, double val) { // assert( min < max && val >= min && val <= max); // double fraction = (val - min) / (max - min); // return (int) (100 * fraction); // } // // private double used(short val) { // return ( (double) Math.abs(val) ) / Short.MAX_VALUE; // } // // @Override // public void setLog(_Log newlog) { // // int srate = newlog.sexprForContentItem(0) // .firstValueOf("rate").valueAsInt(); // // //nyquist check // assert(srate > (TARGET_F * 2)); // // ShortBuffer buf = new ShortBuffer(); // buf.parse(newlog); // Correlator cor = new Correlator(buf.channels, // srate / TARGET_F, 1.0d); // // String useText = String.format("format usage: left [%.3f, %.3f] -- right [%.3f, %.3f]", // used(buf.min[0]), used(buf.max[0]), used(buf.min[1]), used(buf.max[1]) ); // formatUsageStats.setText(useText); // //// System.out.printf("%d %d %.3f %.3f\n", //// buf.min[0], buf.max[0], used(buf.min[0]), used(buf.max[0]) ); // // details1.setText(String.format("srate=%d target_f=%d", // srate, TARGET_F)); // details2.setText(String.format("frames=%d chnls=%d", // buf.frames, buf.channels)); // // for (int j = 0; j < buf.channels; ++j) { // for (int i = 0; i < buf.frames; ++i) { // cor.correlate(j, i, buf.get(j, i)); // } // } // // double lo = cor.offset(0) + Math.PI; // double ro = cor.offset(1) + Math.PI; // // leftLabel.setText("left " + lo); // leftBar.setValue( // percentForRange(0, Target.TAU, lo) // ); // // rightLabel.setText("right " + ro); // rightBar.setValue( // percentForRange(0, Target.TAU, ro) // ); // // double diff = ModMath.diff(lo, ro); // assert(diff >= -Math.PI && diff <= Math.PI); // // //double diff = lo - ro; // diffLabel.setText("difference " + diff); // diffSlider.setValue( // percentForRange(-Math.PI, Math.PI, diff) // ); // // double lm = cor.magnitude(0); // double rm = cor.magnitude(1); // magLabel.setText(String.format("magnitude: (%s, %s)", // String.format("%6.3e", lm), String.format("%6.3e", rm))); // int ms = (int) (100 * (lm / (lm + rm))); // magSlider.setValue(ms); // } // // private void showFirstBoxActionPerformed(java.awt.event.ActionEvent evt) { // // TODO add your handling code here: // } // // private void showTargetBoxActionPerformed(java.awt.event.ActionEvent evt) { // // TODO add your handling code here: // } // // private void showSecondBoxActionPerformed(java.awt.event.ActionEvent evt) { // // TODO add your handling code here: // } // // // @SuppressWarnings("unchecked") // // <editor-fold defaultstate="collapsed" desc="Generated Code"> // private void initComponents() { // // leftBar = new javax.swing.JProgressBar(); // rightBar = new javax.swing.JProgressBar(); // leftLabel = new javax.swing.JLabel(); // rightLabel = new javax.swing.JLabel(); // diffLabel = new javax.swing.JLabel(); // magLabel = new javax.swing.JLabel(); // DMIN_LABEL = new javax.swing.JLabel(); // DMAX_LABEL = new javax.swing.JLabel(); // magSlider = new javax.swing.JSlider(); // diffSlider = new javax.swing.JSlider(); // details1 = new javax.swing.JLabel(); // details2 = new javax.swing.JLabel(); // formatUsageStats = new javax.swing.JLabel(); // waveScrollPane = new javax.swing.JScrollPane(); // showTargetBox = new javax.swing.JCheckBox(); // showFirstBox = new javax.swing.JCheckBox(); // showSecondBox = new javax.swing.JCheckBox(); // // leftLabel.setText("left"); // // rightLabel.setText("right"); // // diffLabel.setText("difference"); // // magLabel.setText("magnitude:"); // // DMIN_LABEL.setText("-2PI"); // // DMAX_LABEL.setText("2PI"); // // magSlider.setToolTipText(""); // magSlider.setFocusable(false); // // diffSlider.setMinimum(0); // diffSlider.setFocusable(false); // // details1.setText("jLabel1"); // // details2.setText("jLabel2"); // // formatUsageStats.setText("jLabel1"); // // showTargetBox.setText("target"); // showTargetBox.addActionListener(new java.awt.event.ActionListener() { // public void actionPerformed(java.awt.event.ActionEvent evt) { // showTargetBoxActionPerformed(evt); // } // }); // // showFirstBox.setText("first"); // showFirstBox.addActionListener(new java.awt.event.ActionListener() { // public void actionPerformed(java.awt.event.ActionEvent evt) { // showFirstBoxActionPerformed(evt); // } // }); // // showSecondBox.setText("second"); // showSecondBox.addActionListener(new java.awt.event.ActionListener() { // public void actionPerformed(java.awt.event.ActionEvent evt) { // showSecondBoxActionPerformed(evt); // } // }); // // javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); // this.setLayout(layout); // layout.setHorizontalGroup( // layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) // .addGroup(layout.createSequentialGroup() // .addContainerGap() // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) // .addComponent(waveScrollPane) // .addComponent(magLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) // .addComponent(magSlider, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) // .addComponent(diffSlider, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) // .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() // .addComponent(DMIN_LABEL) // .addGap(206, 206, 206) // .addComponent(diffLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 344, Short.MAX_VALUE) // .addComponent(DMAX_LABEL)) // .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) // .addComponent(leftLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) // .addComponent(rightLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 223, Short.MAX_VALUE)) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) // .addComponent(rightBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) // .addComponent(leftBar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) // .addGroup(layout.createSequentialGroup() // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) // .addComponent(details1, javax.swing.GroupLayout.DEFAULT_SIZE, 345, Short.MAX_VALUE) // .addComponent(details2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) // .addGroup(layout.createSequentialGroup() // .addComponent(showTargetBox) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) // .addComponent(showFirstBox) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) // .addComponent(showSecondBox) // .addGap(0, 0, Short.MAX_VALUE)) // .addComponent(formatUsageStats, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) // .addContainerGap()) // ); // layout.setVerticalGroup( // layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) // .addGroup(layout.createSequentialGroup() // .addContainerGap() // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) // .addComponent(details1) // .addComponent(formatUsageStats)) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) // .addComponent(details2) // .addComponent(showTargetBox) // .addComponent(showFirstBox) // .addComponent(showSecondBox)) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) // .addComponent(waveScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 288, javax.swing.GroupLayout.PREFERRED_SIZE) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) // .addComponent(leftBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) // .addComponent(leftLabel)) // .addGap(5, 5, 5) // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) // .addComponent(rightBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) // .addComponent(rightLabel)) // .addGap(15, 15, 15) // .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) // .addComponent(diffLabel) // .addComponent(DMIN_LABEL) // .addComponent(DMAX_LABEL)) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) // .addComponent(diffSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) // .addGap(15, 15, 15) // .addComponent(magLabel) // .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) // .addComponent(magSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) // .addGap(15, 15, 15)) // ); // }// </editor-fold> // // // Variables declaration - do not modify // private javax.swing.JLabel DMAX_LABEL; // private javax.swing.JLabel DMIN_LABEL; // private javax.swing.JLabel details1; // private javax.swing.JLabel details2; // private javax.swing.JLabel diffLabel; // private javax.swing.JSlider diffSlider; // private javax.swing.JLabel formatUsageStats; // private javax.swing.JProgressBar leftBar; // private javax.swing.JLabel leftLabel; // private javax.swing.JLabel magLabel; // private javax.swing.JSlider magSlider; // private javax.swing.JProgressBar rightBar; // private javax.swing.JLabel rightLabel; // private javax.swing.JCheckBox showFirstBox; // private javax.swing.JCheckBox showSecondBox; // private javax.swing.JCheckBox showTargetBox; // private javax.swing.JScrollPane waveScrollPane; // // End of variables declaration //}