Package eu.bandm.music.applications.harm
Class FnGui
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
eu.bandm.music.applications.harm.FnGui
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,RootPaneContainer,WindowConstants
+-----------+ +---------+ +---------+ +----------+ +--------+
|uNn 3 4 -2 | = |27*625/49| = | 30625/49| = | 344.38776| = | 456.342| Cent
+-----------+ +---------+ +---------+ +----------+ +--------+
(-20)
+-----------+ +--------------+ +----------+ +--------------+
|uNn 3 4 -2 | = | 27 * 625 / 49| = | 344.38776| = | 120456.342...| Cent
+-----------+ +--------------+ +----------+ +--------------+
(-20)
+-----------+ +--------------+ +----------+ +--------------+
|uNn 3 4 -2 | = | 27 * 625 / 49| = | 344.38776| = | 120456.342...| Cent
+-----------+ +--------------+ +----------+ +--------------+
(-20)
+---------+
1 ≡ | 55 | Hz
+---------+
Time structure is as follows:
play = false play = true
subaudio waitDt
-----> retrigger all K+Ss ----> switch phase
----> retrigger all K+Ss
----> restart envelope
audio network ---> all synthesizers which have current phase
are producing sound
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) classMaster controls: pitch, timbre, volume, and transport.(package private) classOne frequency row: displays a value and assigns phases.Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrameNested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrameNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final BorderShared inset border for titled sub-panels.static final BitSetBitSetwith allNUMBER_OF_SEQUENCER_SLOTSbits set.static final BitSetBitSetwith only bit 0; default when no phases are defined.static final ColorBackground colour for fields in error state.(package private) final ColorBackground colour for fields in normal state.(package private) final ColorBackground colour while the row is sounding.(package private) final FnGui.ControlPanelShared controls (pitch, timbre, volume, transport).(package private) final FnSoundAudio back-end.(package private) final JPanelFooter panel for master controls (pitch, timbre, volume).(package private) final JPanelFooter panel for transport and tempo controls.(package private) final JPanelFooter panel for the mute and pause-mode buttons.(package private) final JPanelMain grid panel holding the per-frequency rows.(package private) final JCheckBoxMutes all audio output when selected.(package private) static final intNumber of phase slots in the sequencer.(package private) final List<FnGui.NumberPanel> All constructed frequency rows.(package private) final JRadioButton[]Phase selector radio buttons placed as the last row of the main panel, aligned with the soundline checkboxes.(package private) final ButtonGroupGroupsseqPhaseButtonsfor single selection.intSubclassing parameter.(package private) final JCheckBoxInserts pauses when selected.Fields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSORFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidLaunches the application.(package private) JTextFieldmakeTextField(boolean editable) Creates an output text field.(package private) JTextFieldmakeTextField(boolean editable, int width) Creates an output text field with a maximum width.(package private) boolean(package private) static BitSetphaseSet(int... bits) Returns aBitSetwith exactly the given bits set.(package private) voidprepareDemo(String select) Loads a named demo preset.(package private) voidRecomputes active phases from all rows; updates seqPhaseButtons.(package private) voidRecomputes the selected-phase set from the footer seqPhaseButtons.(package private) voidresetAll()Resets all rows toFf.ONEwith no phases selected.(package private) voidReflects the current phase back into the footer seqPhaseButtons.Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, updateMethods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecoratedMethods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFrontMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Field Details
-
TEXT_COLUMNS
public int TEXT_COLUMNSSubclassing parameter. Used for all text input widgets. -
baseBorder
Shared inset border for titled sub-panels. -
mainPanel
Main grid panel holding the per-frequency rows. -
controlPanel
Shared controls (pitch, timbre, volume, transport). -
numberPanels
All constructed frequency rows. -
NUMBER_OF_SEQUENCER_SLOTS
static final int NUMBER_OF_SEQUENCER_SLOTSNumber of phase slots in the sequencer.- See Also:
-
seqPhaseButtons
Phase selector radio buttons placed as the last row of the main panel, aligned with the soundline checkboxes. -
seqPhaseGroup
GroupsseqPhaseButtonsfor single selection. -
muteButton
Mutes all audio output when selected. -
withPauseButton
Inserts pauses when selected. -
fnSound
Audio back-end. -
COLOR_ERROR
Background colour for fields in error state. -
COLOR_OK
Background colour for fields in normal state. -
COLOR_PLAYING
Background colour while the row is sounding. -
BITSET_ALL
BitSetwith allNUMBER_OF_SEQUENCER_SLOTSbits set. -
BITSET_ONE
BitSetwith only bit 0; default when no phases are defined.
-
-
Constructor Details
-
FnGui
public FnGui()Builds and wires the complete GUI.
-
-
Method Details
-
makeTextField
Creates an output text field.- Parameters:
editable- whether the field accepts user input- Returns:
- the configured text field
-
makeTextField
Creates an output text field with a maximum width.- Parameters:
editable- whether the field accepts user inputwidth- maximum pixel width- Returns:
- the configured text field
-
pausesSelected
boolean pausesSelected() -
phaseSet
Returns aBitSetwith exactly the given bits set.- Parameters:
bits- bit indices to set- Returns:
- a BitSet of size
NUMBER_OF_SEQUENCER_SLOTS
-
resetAll
void resetAll()Resets all rows toFf.ONEwith no phases selected. -
prepareDemo
Loads a named demo preset.- Parameters:
select- one of"---","tritones","triads", or"rheingold"
-
rescanSelectedPhases
void rescanSelectedPhases()Recomputes the selected-phase set from the footer seqPhaseButtons. -
showSelectedPhases
void showSelectedPhases()Reflects the current phase back into the footer seqPhaseButtons. -
rescanPlaying
void rescanPlaying()Recomputes active phases from all rows; updates seqPhaseButtons. -
main
Launches the application.- Parameters:
args- ignored
-