marytts.signalproc.display
Class Spectrogram

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by marytts.signalproc.display.FunctionGraph
                      extended by marytts.signalproc.display.Spectrogram
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, CursorListener, CursorSource
Direct Known Subclasses:
Phasogram

public class Spectrogram
extends FunctionGraph

Author:
Marc Schröder
See Also:
Serialized Form

Nested Class Summary
 class Spectrogram.CepstrumAtCursor
           
 class Spectrogram.GraphAtCursor
           
 class Spectrogram.LPCAtCursor
           
 class Spectrogram.PhasogramAtCursor
           
 class Spectrogram.SpectrumAtCursor
           
 
Nested classes/interfaces inherited from class marytts.signalproc.display.FunctionGraph
FunctionGraph.DoublePoint
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int DEFAULT_FFTSIZE
           
static int DEFAULT_WINDOW
           
static int DEFAULT_WINDOWSHIFT
           
static int DEFAULT_WINDOWSIZE
           
protected  double deltaF
           
protected static double DYNAMIC_RANGE
           
protected  int fftSize
           
protected static double FREQ_MAX
           
protected  Spectrogram.GraphAtCursor[] graphsAtCursor
           
protected static double PREEMPHASIS
           
protected  int samplingRate
           
protected  double[] signal
           
protected  java.util.List spectra
           
protected  int spectra_indexmax
           
protected  double spectra_max
           
protected  double spectra_min
           
protected  Window window
           
protected  int windowShift
           
 
Fields inherited from class marytts.signalproc.display.FunctionGraph
autoYMinMax, axisColor, backgroundColor, cursorListeners, dataseries, DEFAULT_HEIGHT, DEFAULT_WIDTH, DOT_EMPTYCIRCLE, DOT_EMPTYDIAMOND, DOT_EMPTYSQUARE, DOT_FULLCIRCLE, DOT_FULLDIAMOND, DOT_FULLSQUARE, dotSize, dotStyle, DRAW_DOTS, DRAW_HISTOGRAM, DRAW_LINE, DRAW_LINEWITHDOTS, graphColor, graphImage, graphStyle, histogramBorderColor, histogramWidth, paddingBottom, paddingLeft, paddingRight, paddingTop, positionCursor, rangeCursor, showXAxis, showYAxis, x0, xStep, ymax, ymin
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Spectrogram(javax.sound.sampled.AudioInputStream ais)
           
Spectrogram(javax.sound.sampled.AudioInputStream ais, int width, int height)
           
Spectrogram(javax.sound.sampled.AudioInputStream ais, Window window, int windowShift, int fftSize)
           
Spectrogram(javax.sound.sampled.AudioInputStream ais, Window window, int windowShift, int fftSize, int width, int height)
           
Spectrogram(double[] signal, int samplingRate)
           
Spectrogram(double[] signal, int samplingRate, int width, int height)
           
Spectrogram(double[] signal, int samplingRate, Window window, int windowShift, int fftSize, int width, int height)
           
 
Method Summary
protected  void drawData(java.awt.Graphics2D g, int image_fromX, int image_toX, int image_refX, int image_refY, int startY, int image_height)
          While painting the graph, draw the actual function data.
protected  void drawSpectrum(java.awt.Graphics2D g, double[] spectrum, int image_X, int image_width, int image_refY, int image_height)
           
protected  javax.swing.JPanel getControls()
          Subclasses may provide specific controls here.
protected  java.lang.String getLabel(double x, double y)
           
 double[] getSpectrumAtTime(double t)
           
protected  int imageY2indexY(int imageY)
           
protected  void initialise(double[] signal, int samplingRate, Window window, int windowShift, int fftSize, int width, int height)
           
protected  void initialiseDependentWindows()
           
static void main(java.lang.String[] args)
           
protected  void setDependentWindowLocation(javax.swing.JFrame jf)
          Determine the next free location for a dependent and put the window there.
protected  void update()
           
protected  int Y2indexY(double y)
           
 
Methods inherited from class marytts.signalproc.display.FunctionGraph
addCursorListener, addDataSeries, createGraphImage, drawData, drawDot, drawXAxis, drawYAxis, getCursorListeners, getPositionCursor, getRangeCursor, getValueLabel, getXRange, getYRange, getZoomX, imageX2indexX, imageX2X, imageY2Y, indexX2imageX, initialise, notifyCursorListeners, paintComponent, removeCursorListener, setPrimaryDataSeriesStyle, setYMinMax, setZoomX, showInJFrame, showInJFrame, showInJFrame, showInJFrame, updateCursorPosition, updateData, X2imageX, X2indexX, y2imageY
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_WINDOWSIZE

public static final int DEFAULT_WINDOWSIZE
See Also:
Constant Field Values

DEFAULT_WINDOW

public static final int DEFAULT_WINDOW
See Also:
Constant Field Values

DEFAULT_WINDOWSHIFT

public static final int DEFAULT_WINDOWSHIFT
See Also:
Constant Field Values

DEFAULT_FFTSIZE

public static final int DEFAULT_FFTSIZE
See Also:
Constant Field Values

PREEMPHASIS

protected static final double PREEMPHASIS
See Also:
Constant Field Values

DYNAMIC_RANGE

protected static final double DYNAMIC_RANGE
See Also:
Constant Field Values

FREQ_MAX

protected static final double FREQ_MAX
See Also:
Constant Field Values

signal

protected double[] signal

samplingRate

protected int samplingRate

window

protected Window window

windowShift

protected int windowShift

fftSize

protected int fftSize

graphsAtCursor

protected Spectrogram.GraphAtCursor[] graphsAtCursor

spectra

protected java.util.List spectra

spectra_max

protected double spectra_max

spectra_min

protected double spectra_min

deltaF

protected double deltaF

spectra_indexmax

protected int spectra_indexmax
Constructor Detail

Spectrogram

public Spectrogram(javax.sound.sampled.AudioInputStream ais)

Spectrogram

public Spectrogram(javax.sound.sampled.AudioInputStream ais,
                   int width,
                   int height)

Spectrogram

public Spectrogram(javax.sound.sampled.AudioInputStream ais,
                   Window window,
                   int windowShift,
                   int fftSize)

Spectrogram

public Spectrogram(javax.sound.sampled.AudioInputStream ais,
                   Window window,
                   int windowShift,
                   int fftSize,
                   int width,
                   int height)

Spectrogram

public Spectrogram(double[] signal,
                   int samplingRate)

Spectrogram

public Spectrogram(double[] signal,
                   int samplingRate,
                   int width,
                   int height)

Spectrogram

public Spectrogram(double[] signal,
                   int samplingRate,
                   Window window,
                   int windowShift,
                   int fftSize,
                   int width,
                   int height)
Method Detail

initialise

protected void initialise(double[] signal,
                          int samplingRate,
                          Window window,
                          int windowShift,
                          int fftSize,
                          int width,
                          int height)

update

protected void update()

initialiseDependentWindows

protected void initialiseDependentWindows()

drawData

protected void drawData(java.awt.Graphics2D g,
                        int image_fromX,
                        int image_toX,
                        int image_refX,
                        int image_refY,
                        int startY,
                        int image_height)
While painting the graph, draw the actual function data.

Parameters:
g - the graphics2d object to paint in
image_fromX - first visible X coordinate of the Graph display area (= after subtracting space reserved for Y axis)
image_toX - last visible X coordinate of the Graph display area (= after subtracting space reserved for Y axis)
image_refX - X coordinate of the origin, in the display area
image_refY - Y coordinate of the origin, in the display area
xScaleFactor - conversion factor between data space and image space, image_x = xScaleFactor * data_x
yScaleFactor - conversion factor between data space and image space, image_y = yScaleFactor * data_y
startY - the start position on the Y axis (= the lower bound of the drawing area)
image_height - the height of the drawable region for the y values

drawSpectrum

protected void drawSpectrum(java.awt.Graphics2D g,
                            double[] spectrum,
                            int image_X,
                            int image_width,
                            int image_refY,
                            int image_height)

getSpectrumAtTime

public double[] getSpectrumAtTime(double t)

getLabel

protected java.lang.String getLabel(double x,
                                    double y)
Overrides:
getLabel in class FunctionGraph

imageY2indexY

protected int imageY2indexY(int imageY)

Y2indexY

protected int Y2indexY(double y)

getControls

protected javax.swing.JPanel getControls()
Description copied from class: FunctionGraph
Subclasses may provide specific controls here.

Overrides:
getControls in class FunctionGraph
Returns:
a JPanel filled with the controls, or null if none are to be provided.

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception

setDependentWindowLocation

protected void setDependentWindowLocation(javax.swing.JFrame jf)
Determine the next free location for a dependent and put the window there.

Parameters:
jf -