Class AudioTrack

  • java.lang.Object
    • java.awt.Component
      • java.awt.Container
        • javax.swing.JComponent
          • javax.swing.JPanel
            • uk.ac.qmul.eecs.depic.daw.gui.AudioTrack
  • All Implemented Interfaces:
    SoundWaveListener


    public class AudioTrack
    extends javax.swing.JPanel
    implements SoundWaveListener
    An audio track widget. This class has the following bound properties :
    • scaleFactor: the scale factor of each pixel of the sound wave representation. The bigger the scale factor, the lower the resolution. a scale factor ranges from 1, highest resolution supported by the SoundWave instance, to the max scale factor supported by the backing SoundWave model - int
    • cursorPos: the position of the cursor - int
    • mouseDragSelection: the range of the selection on this track as the user drags the mouse - SelectionRange
    • the preferred size - Dimension
    See Also:
    Serialized Form
    • Nested Class Summary

      • 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
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static java.awt.Color CURSOR_COLOR 
      static int MAX_TRACK_HEIGHT 
      static int MAX_TRACK_WIDTH 
      static java.awt.Color OVERLAY_BG_COLOR 
      static java.awt.Color SELECTION_COLOR 
      protected SoundWave soundWave 
      static java.awt.Color VIEW_PORT_COLOR 
      static java.awt.Color WAVE_COLOR 
      • Fields inherited from class java.awt.Component

        accessibleContext, 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
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      protected void firePropertyChange(java.lang.String property, java.lang.Object oldValue, java.lang.Object newValue)
      Makes it available to Rule class to notify listeners after changing the mouseDragSelection.
      static java.awt.geom.Point2D.Float getAutomationCoord(AudioTrack track, int mouseX, int mouseY)
      Returns a point in the Automation coordinates - x = length in millis, y = range of the automation - corresponding to the point on track which has coordinates (mouseX, mouseY)
      SequenceGraph getAutomationGraph() 
      int getCursorPos() 
      HapticViewPort getHapticViewPort() 
      SequenceGraph getPeakLevelGraph() 
      int getScaleFactor() 
      float getSecondsPerPixel() 
      Selection getSelection() 
      SoundWave getSoundWave() 
      int normToHeightConvert(float f) 
      int normToWidthconvert(float f) 
      void paintComponent(java.awt.Graphics g) 
      protected void paintHapticViewPort(java.awt.Graphics g2, int width, int height) 
      void setCursorPos(int position)
      Doesn't change the cursor position of the underlying soundwave
      void setScaleFactor(int factor) 
      void showAutomationSound(boolean show) 
      void showDbWave(boolean show) 
      void showHapticViewPort(boolean show) 
      void showPeakLevelSound(boolean show) 
      void update(SoundWaveEvent evt) 
      • 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, transferFocusBackward, transferFocusUpCycle
      • 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, transferFocusDownCycle, validate, validateTree
      • 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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 javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • CURSOR_COLOR

        public static final java.awt.Color CURSOR_COLOR
      • OVERLAY_BG_COLOR

        public static final java.awt.Color OVERLAY_BG_COLOR
      • SELECTION_COLOR

        public static final java.awt.Color SELECTION_COLOR
      • VIEW_PORT_COLOR

        public static final java.awt.Color VIEW_PORT_COLOR
      • WAVE_COLOR

        public static final java.awt.Color WAVE_COLOR
    • Constructor Detail

      • AudioTrack

        public AudioTrack(SoundWave soundWave)
    • Method Detail

      • paintComponent

        public void paintComponent(java.awt.Graphics g)
        Overrides:
        paintComponent in class javax.swing.JComponent
      • paintHapticViewPort

        protected void paintHapticViewPort(java.awt.Graphics g2,
                                           int width,
                                           int height)
      • getSoundWave

        public SoundWave getSoundWave()
      • getScaleFactor

        public int getScaleFactor()
      • setScaleFactor

        public void setScaleFactor(int factor)
      • getSelection

        public Selection getSelection()
      • setCursorPos

        public void setCursorPos(int position)
        Doesn't change the cursor position of the underlying soundwave
        Parameters:
        position -
      • getCursorPos

        public int getCursorPos()
      • getSecondsPerPixel

        public float getSecondsPerPixel()
      • firePropertyChange

        protected void firePropertyChange(java.lang.String property,
                                          java.lang.Object oldValue,
                                          java.lang.Object newValue)
        Makes it available to Rule class to notify listeners after changing the mouseDragSelection.
        Overrides:
        firePropertyChange in class java.awt.Component
        Parameters:
        property - the programmatic name of the property that was changed
        oldValue - the old value of the property
        newValue - the new value of the property
      • showHapticViewPort

        public void showHapticViewPort(boolean show)
      • showAutomationSound

        public void showAutomationSound(boolean show)
      • showPeakLevelSound

        public void showPeakLevelSound(boolean show)
      • showDbWave

        public void showDbWave(boolean show)
      • normToWidthconvert

        public int normToWidthconvert(float f)
      • normToHeightConvert

        public int normToHeightConvert(float f)
        Parameters:
        s - a value sample value ranging from Short.MIN_VALUE to Short.MAX_VALUE
        height - the height of the graphic component where the track is to be drawn
        Returns:
        the Y value in the graphic component resulted from mapping the sample to the graphic component height
      • getAutomationCoord

        public static java.awt.geom.Point2D.Float getAutomationCoord(AudioTrack track,
                                                                     int mouseX,
                                                                     int mouseY)
        Returns a point in the Automation coordinates - x = length in millis, y = range of the automation - corresponding to the point on track which has coordinates (mouseX, mouseY)
        Parameters:
        track -
        mouseX - the x coordinate of the point on track
        mouseY - the y coordinate of the point on track
        Returns:
        the point in the Automation coordinates corresponding to (mouseX,mouseY) or null if mouseX is bigger than the automation length (in chunks of the track's SoundWave) or mouseY is bigger than the track's height, or if either is lower than zero.