AnalyserForm

gui

## Class AnalyserForm

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - java.awt.Window
      - - java.awt.Frame
        - - javax.swing.JFrame
          - - gui.AnalyserForm

- All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

      public class AnalyserForm
      extends javax.swing.JFrame

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.JFrame

      `javax.swing.JFrame.AccessibleJFrame`

    - ### Nested classes/interfaces inherited from class java.awt.Frame

      `java.awt.Frame.AccessibleAWTFrame`

    - ### Nested classes/interfaces inherited from class java.awt.Window

      `java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type`

    - ### 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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private AllInOneStatusDialog` | `aiosd`
    `private boolean` | `AllInOne`
    `private int` | `AllKrebs`
    `private int` | `AllMirror`
    `private int` | `allowedInterval`
    `private int` | `AllPolyKrebs`
    `private int` | `AllPolyMirror`
    `private int` | `AllPolyRep`
    `private int` | `AllPolySeq`
    `private int` | `AllRep`
    `private int` | `AllSeq`
    `private java.util.ArrayList<MIDIFileData>` | `almfd`
    `private int` | `ascending`
    `private java.util.ArrayList<AverageMIDIFileData>` | `avgData`
    `private int[][]` | `beatTransitions`
    `private boolean` | `bSubmotifs`
    `private javax.swing.JButton` | `btnAnalyse`
    `private javax.swing.JButton` | `btnClear`
    `private javax.swing.JButton` | `btnDatabaseAdd`
    `private javax.swing.JButton` | `btnInstruments`
    `private javax.swing.JButton` | `btnNotes`
    `private javax.swing.JButton` | `btnPlay`
    `private javax.swing.JButton` | `btnSheet`
    `private javax.swing.JButton` | `btnStop`
    `private int` | `categoryId`
    `private java.lang.String` | `categoryName`
    `private javax.swing.JMenuItem` | `clear`
    `private int` | `currentFileCount`
    `private java.util.Calendar` | `curTime`
    `static java.lang.String` | `DB_PASSWORD`
    `static java.lang.String` | `DB_URL`
    `static java.lang.String` | `DB_USER`
    `private int` | `descending`
    `private int` | `fileCount`
    `private boolean` | `goOn`
    `private int` | `highNote`
    `private IScore` | `iScore`
    `private javax.swing.JMenuBar` | `jMenuBar1`
    `private javax.swing.JScrollPane` | `jScrollPane1`
    `private javax.swing.JScrollPane` | `jScrollPane2`
    `private javax.swing.JScrollPane` | `jScrollPane3`
    `private javax.swing.JScrollPane` | `jScrollPane4`
    `private javax.swing.JScrollPane` | `jScrollPane5`
    `private javax.swing.JPopupMenu.Separator` | `jSeparator1`
    `private javax.swing.JToolBar.Separator` | `jSeparator5`
    `private javax.swing.JToolBar.Separator` | `jSeparator6`
    `private javax.swing.JToolBar` | `jToolBar1`
    `static boolean` | `loggedIn`
    `private double` | `longestNote`
    `private int` | `lowNote`
    `private javax.swing.JMenuItem` | `mAdd`
    `private javax.swing.JMenu` | `mAnalyse`
    `private int` | `maxMotifExtention`
    `private int` | `maxMotifSize`
    `private javax.swing.JCheckBoxMenuItem` | `mChkLog`
    `private javax.swing.JMenuItem` | `mChoose`
    `private javax.swing.JMenuItem` | `mClose`
    `private javax.swing.JMenuItem` | `mCompose`
    `private javax.swing.JMenu` | `mComposer`
    `private javax.swing.JMenuItem` | `mConvert`
    `private javax.swing.JMenu` | `mFile`
    `private javax.swing.JMenuItem` | `mHelp`
    `private MIDIAnalyser` | `midiAnalyser`
    `private int` | `minMotifSize`
    `private javax.swing.JMenuItem` | `mInstruments`
    `private javax.swing.JMenu` | `mLog`
    `private javax.swing.JMenu` | `mMotifs`
    `private javax.swing.JMenuItem` | `mMotifViewer`
    `private javax.swing.JMenuItem` | `mNewCategory`
    `private javax.swing.JMenuItem` | `mNotes`
    `private javax.swing.JMenuItem` | `mNoteSheet`
    `private javax.swing.JMenu` | `mnuHelp`
    `private double[]` | `noteDurations`
    `private int` | `other`
    `private javax.swing.JPanel` | `panData`
    `static java.lang.String` | `password`
    `static java.lang.String` | `path`
    `private int` | `prev`
    `private javax.swing.JProgressBar` | `proBar`
    `static boolean` | `saveLogin`
    `private static jm.music.data.Score` | `scr`
    `private java.text.SimpleDateFormat` | `sdf`
    `private java.text.SimpleDateFormat` | `sdf2`
    `private double` | `shortestNote`
    `private javax.swing.JMenuItem` | `start`
    `private boolean` | `startDetect`
    `private java.util.Calendar` | `startTime`
    `private javax.swing.JTabbedPane` | `tabData`
    `private javax.swing.table.DefaultTableModel` | `tableModel`
    `private javax.swing.JTable` | `tAnalyse`
    `private javax.swing.JTable` | `tAverage`
    `private javax.swing.JTable` | `tConsole`
    `private javax.swing.JTree` | `tFiles`
    `private java.lang.Thread` | `thread`
    `private javax.swing.JTextPane` | `txtLog`
    `private int` | `userId`
    `static java.lang.String` | `username`

    - ### Fields inherited from class javax.swing.JFrame

      `accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled`

    - ### Fields 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_CURSOR`

    - ### Fields inherited from class java.awt.Component

      `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface javax.swing.WindowConstants

      `DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AnalyserForm()` Creates new form AnalyserForm

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `private javax.swing.tree.DefaultMutableTreeNode` | `addNodes(javax.swing.tree.DefaultMutableTreeNode curTop, java.io.File dir)` Add nodes from under "curTop" into a TreeNode.
    `private void` | `analyseFiles()` analysiert die im JTree ausgewaehlten MIDI-Dateien
    `private void` | `analyseMIDI(java.lang.String mPath)` simple Analyse von MIDI-Dateien Quelle: http://explodingart.com/jmusic/jmtutorial/SimpleAnalysis.html
    `private void` | `btnAnalyseActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `btnClearActionPerformed(java.awt.event.ActionEvent evt)` leert die Tabelle des zur Zeit ausgewaehlten Tabs
    `private void` | `btnDatabaseAddActionPerformed(java.awt.event.ActionEvent evt)` speichert die detektierten Motive aller gewaehlten MIDI-Dateien in der DB
    `private void` | `btnInstrumentsActionPerformed(java.awt.event.ActionEvent evt)` oeffnet einen Dialog und zeigt die Instrumente der ausgewaehlten MIDI-Files an
    `private void` | `btnNotesActionPerformed(java.awt.event.ActionEvent evt)` oeffnet ein Fenster pro gewaehlter Zeile und zeigt die verwendeten Noten/Pitches an
    `private void` | `btnPlayActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `btnSheetActionPerformed(java.awt.event.ActionEvent evt)` oeffnet pro ausgewaehlter Zeile in Tabelle tAnalyse ein Fenster mit dem dazugehoerigen Notenblatt ist der Menuepunkt "Log" aktiviert, werden die Notendaten jedes Midifiles im Log ausgegeben
    `private void` | `btnStopActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `calculateAvgData(java.lang.String _name)` berechnet die Durchschnitte der Elemente des Typs MIDIFileData, welche sich in der Tabelle tAnalyse befinden
    `private void` | `clearActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `clearFileTreeView()` leert den Treeview der MIDIs
    `private void` | `clearTableView(javax.swing.JTable t)` loescht alle Zeilen der Tabelle
    `private void` | `countFiles()` zaehlt die Dateien des aktuellen Ordners und seiner Unterordner
    `private void` | `detectAndStoreMIDI(java.lang.String mPath)` Detektiert die Motive der MIDI-Datei und speichert sie in der Datenbank
    `private void` | `formWindowClosing(java.awt.event.WindowEvent evt)` aktualisiert die Properties-Datei, stoppt den MIDIPlayer und stoppt gegebenenfalls den Thread
    `private void` | `getFolderFileCount(javax.swing.tree.DefaultMutableTreeNode tn)` zaehlt alle im Ordner befindlicher Dateien (inklusive Unterordner)
    `private int` | `getIntForNote(java.lang.String note)` liefert den Index einer Note im Array der Taktuebergaenge
    `java.lang.String` | `getLoggedInUsername()` liefert den Benutzernamen des eingeloggten Benutzers
    `private int` | `getNoteCount(MIDIFileData mf)` gibt die Anzahl der Noten des MIDIFiles zurueck
    `private java.lang.String` | `getNoteForInt(int id)` liefert zu einem Index im Array der Taktuebergaenge eine Note
    `private java.lang.String` | `getPathFromFile(javax.swing.tree.TreeNode[] tpath)` Erzeugt einen vollstaendigen Dateipfad des uebergebenen TreeNodesArrays
    `private java.lang.String` | `getPathFromFile(javax.swing.tree.TreePath tpath)` Erzeugt einen vollstaendigen Dateipfad des uebergebenen TreePaths
    `private void` | `getSelectedFolder(javax.swing.tree.DefaultMutableTreeNode tn, boolean analyse)` Durchsucht rekursiv den aktuellen Knoten und verwendet alle Subknoten und die darin befindlichen MIDI-Dateien
    `private void` | `initComponents()` This method is called from within the constructor to initialize the form.
    `private void` | `initMIDIData()` initialisiert die Werte der MIDI-Auswertung
    `private void` | `mAddActionPerformed(java.awt.event.ActionEvent evt)`
    `static void` | `main(java.lang.String[] args)`
    `private void` | `mChkLogActionPerformed(java.awt.event.ActionEvent evt)` aktiviert/deaktiviert den Tab mit den Logausgaben
    `private void` | `mChooseActionPerformed(java.awt.event.ActionEvent evt)` Befuellt den JTree mit allen Ordnern und MIDIs des gewaehlten Pfads
    `private void` | `mCloseActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `mComposeActionPerformed(java.awt.event.ActionEvent evt)` oeffnet den Dialog zum Erstellen einer neuen Komposition
    `private void` | `mConvertActionPerformed(java.awt.event.ActionEvent evt)` oeffnet den Dialog zum Konvertieren eines MIDI-Files in ein anderes Genre
    `private void` | `mHelpActionPerformed(java.awt.event.ActionEvent evt)` zeigt die Hilfe an
    `private void` | `mInstrumentsActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `mMotifViewerActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `mNewCategoryActionPerformed(java.awt.event.ActionEvent evt)` All in one Feature Analysiert eine neue Kategorie (Notenhaeufigkeiten, Instrumente, Tonarten) detektiert alle Motife der Lieder bestimmt die Taktuebergaenge und bewertet die Takte nach Tempo und Interessantheit
    `private void` | `mNotesActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `mNoteSheetActionPerformed(java.awt.event.ActionEvent evt)`
    `private void` | `mnuHelpMenuSelected(javax.swing.event.MenuEvent evt)`
    `private void` | `mnuHelpMouseClicked(java.awt.event.MouseEvent evt)`
    `private void` | `noteLength(double duration)` zugehoerige Funktionen fuer analyseMIDI(String mPath) Quelle: http://explodingart.com/jmusic/jmtutorial/SimpleAnalysis.html
    `private void` | `pitchRange(int pitch)` zugehoerige Funktionen fuer analyseMIDI(String mPath) Quelle: http://explodingart.com/jmusic/jmtutorial/SimpleAnalysis.html
    `private void` | `play()` spielt das MIDI ab, welches zuerst in der Liste markiert wurde
    `private void` | `saveInDB()` speichert die Durchschnittsdaten in der Datenbank
    `void` | `setAllowedInterval(int interval)`
    `private void` | `setButtons(boolean b)` enabled/disabled alle Buttons und Menuepunkte
    `void` | `setCategoryID(int id)`
    `void` | `setCategoryName(java.lang.String category_name)`
    `void` | `setLoginData(boolean successful, java.lang.String user, java.lang.String pass, boolean save)` setzt die Logindaten
    `void` | `setMaxMotifExtention(int max)`
    `void` | `setMaxMotifSize(int max)`
    `void` | `setMinMotifSize(int min)`
    `void` | `setStartDetect(boolean b)`
    `void` | `setSubmotifs(boolean b)`
    `private void` | `startActionPerformed(java.awt.event.ActionEvent evt)` Startet die Analyse der gewählten MIDI-Dateien in einem eigenen Thread
    `void` | `startWork()` detektiert Motive und speichert sie in der DB
    `private void` | `stop()` stoppt das Abspielen des MIDIs
    `private void` | `storeMonophonMotifs(MotifData md)` speichert ein monphones Motiv in der Datenbank
    `private void` | `storePolyphonMotifs(MultiMotifData mmd)` speichert ein polyphones Motiv in der Datenbank
    `private void` | `tAnalyseMouseClicked(java.awt.event.MouseEvent evt)` zeigt die verwendeten Instrumente des MIDI-Files an, wenn ein Linksklick auf eine Zeile gemacht wird
    `private void` | `tAnalyseMouseExited(java.awt.event.MouseEvent evt)`
    `private void` | `updateTable(java.lang.String _name)` schreibt die Analyseergebnisse der MIDI-Dateien in die Tabelle pro Zeile 1 MIDI-File
    `private void` | `upOrDown(int pitch)` zugehoerige Funktionen fuer analyseMIDI(String mPath) Quelle: http://explodingart.com/jmusic/jmtutorial/SimpleAnalysis.html

    - ### 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, update`

    - ### Methods 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, setUndecorated`

    - ### Methods 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, toFront`

    - ### Methods 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, validateTree`

    - ### Methods 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, getPeer, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.awt.MenuContainer

      `getFont, postEvent`

- - ### Field Detail

    - #### bSubmotifs

          private boolean bSubmotifs

    - #### path

          public static java.lang.String path

    - #### scr

          private static jm.music.data.Score scr

    - #### other

          private int other

    - #### almfd

          private java.util.ArrayList<MIDIFileData> almfd

    - #### avgData

          private java.util.ArrayList<AverageMIDIFileData> avgData

    - #### highNote

          private int highNote

    - #### lowNote

          private int lowNote

    - #### longestNote

          private double longestNote

    - #### shortestNote

          private double shortestNote

    - #### ascending

          private int ascending

    - #### descending

          private int descending

    - #### prev

          private int prev

    - #### minMotifSize

          private int minMotifSize

    - #### maxMotifSize

          private int maxMotifSize

    - #### allowedInterval

          private int allowedInterval

    - #### maxMotifExtention

          private int maxMotifExtention

    - #### categoryId

          private int categoryId

    - #### categoryName

          private java.lang.String categoryName

    - #### startDetect

          private boolean startDetect

    - #### fileCount

          private int fileCount

    - #### currentFileCount

          private int currentFileCount

    - #### thread

          private java.lang.Thread thread

    - #### userId

          private int userId

    - #### midiAnalyser

          private MIDIAnalyser midiAnalyser

    - #### tableModel

          private javax.swing.table.DefaultTableModel tableModel

    - #### iScore

          private IScore iScore

    - #### sdf

          private java.text.SimpleDateFormat sdf

    - #### sdf2

          private java.text.SimpleDateFormat sdf2

    - #### curTime

          private java.util.Calendar curTime

    - #### startTime

          private java.util.Calendar startTime

    - #### noteDurations

          private double[] noteDurations

    - #### AllRep

          private int AllRep

    - #### AllSeq

          private int AllSeq

    - #### AllKrebs

          private int AllKrebs

    - #### AllMirror

          private int AllMirror

    - #### AllPolyRep

          private int AllPolyRep

    - #### AllPolySeq

          private int AllPolySeq

    - #### AllPolyKrebs

          private int AllPolyKrebs

    - #### AllPolyMirror

          private int AllPolyMirror

    - #### beatTransitions

          private int[][] beatTransitions

    - #### goOn

          private boolean goOn

    - #### AllInOne

          private boolean AllInOne

    - #### aiosd

          private AllInOneStatusDialog aiosd

    - #### username

          public static java.lang.String username

    - #### password

          public static java.lang.String password

    - #### DB_USER

          public static java.lang.String DB_USER

    - #### DB_PASSWORD

          public static java.lang.String DB_PASSWORD

    - #### DB_URL

          public static java.lang.String DB_URL

    - #### saveLogin

          public static boolean saveLogin

    - #### loggedIn

          public static boolean loggedIn

    - #### btnAnalyse

          private javax.swing.JButton btnAnalyse

    - #### btnClear

          private javax.swing.JButton btnClear

    - #### btnDatabaseAdd

          private javax.swing.JButton btnDatabaseAdd

    - #### btnInstruments

          private javax.swing.JButton btnInstruments

    - #### btnNotes

          private javax.swing.JButton btnNotes

    - #### btnPlay

          private javax.swing.JButton btnPlay

    - #### btnSheet

          private javax.swing.JButton btnSheet

    - #### btnStop

          private javax.swing.JButton btnStop

    - #### clear

          private javax.swing.JMenuItem clear

    - #### jMenuBar1

          private javax.swing.JMenuBar jMenuBar1

    - #### jScrollPane1

          private javax.swing.JScrollPane jScrollPane1

    - #### jScrollPane2

          private javax.swing.JScrollPane jScrollPane2

    - #### jScrollPane3

          private javax.swing.JScrollPane jScrollPane3

    - #### jScrollPane4

          private javax.swing.JScrollPane jScrollPane4

    - #### jScrollPane5

          private javax.swing.JScrollPane jScrollPane5

    - #### jSeparator1

          private javax.swing.JPopupMenu.Separator jSeparator1

    - #### jSeparator5

          private javax.swing.JToolBar.Separator jSeparator5

    - #### jSeparator6

          private javax.swing.JToolBar.Separator jSeparator6

    - #### jToolBar1

          private javax.swing.JToolBar jToolBar1

    - #### mAdd

          private javax.swing.JMenuItem mAdd

    - #### mAnalyse

          private javax.swing.JMenu mAnalyse

    - #### mChkLog

          private javax.swing.JCheckBoxMenuItem mChkLog

    - #### mChoose

          private javax.swing.JMenuItem mChoose

    - #### mClose

          private javax.swing.JMenuItem mClose

    - #### mCompose

          private javax.swing.JMenuItem mCompose

    - #### mComposer

          private javax.swing.JMenu mComposer

    - #### mConvert

          private javax.swing.JMenuItem mConvert

    - #### mFile

          private javax.swing.JMenu mFile

    - #### mHelp

          private javax.swing.JMenuItem mHelp

    - #### mInstruments

          private javax.swing.JMenuItem mInstruments

    - #### mLog

          private javax.swing.JMenu mLog

    - #### mMotifViewer

          private javax.swing.JMenuItem mMotifViewer

    - #### mMotifs

          private javax.swing.JMenu mMotifs

    - #### mNewCategory

          private javax.swing.JMenuItem mNewCategory

    - #### mNoteSheet

          private javax.swing.JMenuItem mNoteSheet

    - #### mNotes

          private javax.swing.JMenuItem mNotes

    - #### mnuHelp

          private javax.swing.JMenu mnuHelp

    - #### panData

          private javax.swing.JPanel panData

    - #### proBar

          private javax.swing.JProgressBar proBar

    - #### start

          private javax.swing.JMenuItem start

    - #### tAnalyse

          private javax.swing.JTable tAnalyse

    - #### tAverage

          private javax.swing.JTable tAverage

    - #### tConsole

          private javax.swing.JTable tConsole

    - #### tFiles

          private javax.swing.JTree tFiles

    - #### tabData

          private javax.swing.JTabbedPane tabData

    - #### txtLog

          private javax.swing.JTextPane txtLog

  - ### Constructor Detail

    - #### AnalyserForm

          public AnalyserForm()

      Creates new form AnalyserForm

  - ### Method Detail

    - #### initComponents

          private void initComponents()

      This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor.

    - #### setLoginData

          public void setLoginData(boolean successful,
                          java.lang.String user,
                          java.lang.String pass,
                          boolean save)

      setzt die Logindaten
      Parameters:
        `successful` - true, wenn erfolgreich
        `user` - Benutzername
        `pass` - Passwort
        `save` - true, wenn der Login gespeichert werden soll

    - #### getLoggedInUsername

          public java.lang.String getLoggedInUsername()

      liefert den Benutzernamen des eingeloggten Benutzers
      Returns:
        Benutzername des zur Zeit eingeloggten Benutzers

    - #### mChooseActionPerformed

          private void mChooseActionPerformed(java.awt.event.ActionEvent evt)

      Befuellt den JTree mit allen Ordnern und MIDIs des gewaehlten Pfads
      Parameters:
        `evt` -

    - #### mCloseActionPerformed

          private void mCloseActionPerformed(java.awt.event.ActionEvent evt)

    - #### startActionPerformed

          private void startActionPerformed(java.awt.event.ActionEvent evt)

      Startet die Analyse der gewählten MIDI-Dateien in einem eigenen Thread
      Parameters:
        `evt` -

    - #### analyseFiles

          private void analyseFiles()

      analysiert die im JTree ausgewaehlten MIDI-Dateien

    - #### clearActionPerformed

          private void clearActionPerformed(java.awt.event.ActionEvent evt)

    - #### btnPlayActionPerformed

          private void btnPlayActionPerformed(java.awt.event.ActionEvent evt)

    - #### btnStopActionPerformed

          private void btnStopActionPerformed(java.awt.event.ActionEvent evt)

    - #### btnAnalyseActionPerformed

          private void btnAnalyseActionPerformed(java.awt.event.ActionEvent evt)

    - #### btnSheetActionPerformed

          private void btnSheetActionPerformed(java.awt.event.ActionEvent evt)

      oeffnet pro ausgewaehlter Zeile in Tabelle tAnalyse ein Fenster mit dem dazugehoerigen Notenblatt ist der Menuepunkt "Log" aktiviert, werden die Notendaten jedes Midifiles im Log ausgegeben
      Parameters:
        `evt` -

    - #### btnClearActionPerformed

          private void btnClearActionPerformed(java.awt.event.ActionEvent evt)

      leert die Tabelle des zur Zeit ausgewaehlten Tabs
      Parameters:
        `evt` -

    - #### formWindowClosing

          private void formWindowClosing(java.awt.event.WindowEvent evt)

      aktualisiert die Properties-Datei, stoppt den MIDIPlayer und stoppt gegebenenfalls den Thread
      Parameters:
        `evt` -

    - #### mNoteSheetActionPerformed

          private void mNoteSheetActionPerformed(java.awt.event.ActionEvent evt)

    - #### countFiles

          private void countFiles()

      zaehlt die Dateien des aktuellen Ordners und seiner Unterordner

    - #### getFolderFileCount

          private void getFolderFileCount(javax.swing.tree.DefaultMutableTreeNode tn)

      zaehlt alle im Ordner befindlicher Dateien (inklusive Unterordner)
      Parameters:
        `tn` - Der aktuelle TreeNode

    - #### btnDatabaseAddActionPerformed

          private void btnDatabaseAddActionPerformed(java.awt.event.ActionEvent evt)

      speichert die detektierten Motive aller gewaehlten MIDI-Dateien in der DB
      Parameters:
        `evt` -

    - #### btnNotesActionPerformed

          private void btnNotesActionPerformed(java.awt.event.ActionEvent evt)

      oeffnet ein Fenster pro gewaehlter Zeile und zeigt die verwendeten Noten/Pitches an

    - #### mNotesActionPerformed

          private void mNotesActionPerformed(java.awt.event.ActionEvent evt)

    - #### mAddActionPerformed

          private void mAddActionPerformed(java.awt.event.ActionEvent evt)

    - #### tAnalyseMouseClicked

          private void tAnalyseMouseClicked(java.awt.event.MouseEvent evt)

      zeigt die verwendeten Instrumente des MIDI-Files an, wenn ein Linksklick auf eine Zeile gemacht wird
      Parameters:
        `evt` -

    - #### tAnalyseMouseExited

          private void tAnalyseMouseExited(java.awt.event.MouseEvent evt)

    - #### btnInstrumentsActionPerformed

          private void btnInstrumentsActionPerformed(java.awt.event.ActionEvent evt)

      oeffnet einen Dialog und zeigt die Instrumente der ausgewaehlten MIDI-Files an
      Parameters:
        `evt` -

    - #### mInstrumentsActionPerformed

          private void mInstrumentsActionPerformed(java.awt.event.ActionEvent evt)

    - #### mConvertActionPerformed

          private void mConvertActionPerformed(java.awt.event.ActionEvent evt)

      oeffnet den Dialog zum Konvertieren eines MIDI-Files in ein anderes Genre
      Parameters:
        `evt` -

    - #### mComposeActionPerformed

          private void mComposeActionPerformed(java.awt.event.ActionEvent evt)

      oeffnet den Dialog zum Erstellen einer neuen Komposition
      Parameters:
        `evt` -

    - #### mChkLogActionPerformed

          private void mChkLogActionPerformed(java.awt.event.ActionEvent evt)

      aktiviert/deaktiviert den Tab mit den Logausgaben
      Parameters:
        `evt` -

    - #### mMotifViewerActionPerformed

          private void mMotifViewerActionPerformed(java.awt.event.ActionEvent evt)

    - #### mNewCategoryActionPerformed

          private void mNewCategoryActionPerformed(java.awt.event.ActionEvent evt)

      All in one Feature Analysiert eine neue Kategorie (Notenhaeufigkeiten, Instrumente, Tonarten) detektiert alle Motife der Lieder bestimmt die Taktuebergaenge und bewertet die Takte nach Tempo und Interessantheit
      Parameters:
        `evt` -

    - #### mnuHelpMenuSelected

          private void mnuHelpMenuSelected(javax.swing.event.MenuEvent evt)

    - #### mnuHelpMouseClicked

          private void mnuHelpMouseClicked(java.awt.event.MouseEvent evt)

    - #### mHelpActionPerformed

          private void mHelpActionPerformed(java.awt.event.ActionEvent evt)

      zeigt die Hilfe an
      Parameters:
        `evt` -

    - #### saveInDB

          private void saveInDB()

      speichert die Durchschnittsdaten in der Datenbank

    - #### setMinMotifSize

          public void setMinMotifSize(int min)

    - #### setMaxMotifSize

          public void setMaxMotifSize(int max)

    - #### setAllowedInterval

          public void setAllowedInterval(int interval)

    - #### setMaxMotifExtention

          public void setMaxMotifExtention(int max)

    - #### setCategoryID

          public void setCategoryID(int id)

    - #### setCategoryName

          public void setCategoryName(java.lang.String category_name)

    - #### setSubmotifs

          public void setSubmotifs(boolean b)

    - #### setStartDetect

          public void setStartDetect(boolean b)

    - #### setButtons

          private void setButtons(boolean b)

      enabled/disabled alle Buttons und Menuepunkte
      Parameters:
        `b` - enabled/disabled

    - #### startWork

          public void startWork()

      detektiert Motive und speichert sie in der DB

    - #### detectAndStoreMIDI

          private void detectAndStoreMIDI(java.lang.String mPath)

      Detektiert die Motive der MIDI-Datei und speichert sie in der Datenbank
      Parameters:
        `mPath` - Pfad zur MIDI-Datei

    - #### storeMonophonMotifs

          private void storeMonophonMotifs(MotifData md)

      speichert ein monphones Motiv in der Datenbank
      Parameters:
        `md` - monophones Motiv

    - #### storePolyphonMotifs

          private void storePolyphonMotifs(MultiMotifData mmd)

      speichert ein polyphones Motiv in der Datenbank
      Parameters:
        `mmd` - polyphones Motiv

    - #### getIntForNote

          private int getIntForNote(java.lang.String note)

      liefert den Index einer Note im Array der Taktuebergaenge
      Parameters:
        `note` - Note als String (C, C#, D, Eb, ...)
      Returns:
        ID im Array

    - #### getNoteForInt

          private java.lang.String getNoteForInt(int id)

      liefert zu einem Index im Array der Taktuebergaenge eine Note
      Parameters:
        `id` - der Index der Note
      Returns:
        die Note als String

    - #### initMIDIData

          private void initMIDIData()

      initialisiert die Werte der MIDI-Auswertung

    - #### addNodes

          private javax.swing.tree.DefaultMutableTreeNode addNodes(javax.swing.tree.DefaultMutableTreeNode curTop,
                                                         java.io.File dir)

      Add nodes from under "curTop" into a TreeNode. Highly recursive. Quelle: http://www.java2s.com/Code/Java/File-Input-Output/DisplayafilesysteminaJTreeview.htm
      Parameters:
        `curTop` -
        `dir` -
      Returns:
        a TreeNode with all Subfolders and MIDIs

    - #### clearTableView

          private void clearTableView(javax.swing.JTable t)

      loescht alle Zeilen der Tabelle

    - #### updateTable

          private void updateTable(java.lang.String _name)

      schreibt die Analyseergebnisse der MIDI-Dateien in die Tabelle pro Zeile 1 MIDI-File

    - #### calculateAvgData

          private void calculateAvgData(java.lang.String _name)

      berechnet die Durchschnitte der Elemente des Typs MIDIFileData, welche sich in der Tabelle tAnalyse befinden

    - #### getNoteCount

          private int getNoteCount(MIDIFileData mf)

      gibt die Anzahl der Noten des MIDIFiles zurueck
      Parameters:
        `mf` - da MIDIFile bzw die Daten des MIDI-Files
      Returns:
        Anzahl der Noten

    - #### getSelectedFolder

          private void getSelectedFolder(javax.swing.tree.DefaultMutableTreeNode tn,
                               boolean analyse)

      Durchsucht rekursiv den aktuellen Knoten und verwendet alle Subknoten und die darin befindlichen MIDI-Dateien
      Parameters:
        `tn` - Der aktuelle TreeNode

    - #### play

          private void play()

      spielt das MIDI ab, welches zuerst in der Liste markiert wurde

    - #### getPathFromFile

          private java.lang.String getPathFromFile(javax.swing.tree.TreePath tpath)

      Erzeugt einen vollstaendigen Dateipfad des uebergebenen TreePaths
      Parameters:
        `tpath` -
      Returns:
        Der vollstaendige Pfad der Datei

    - #### getPathFromFile

          private java.lang.String getPathFromFile(javax.swing.tree.TreeNode[] tpath)

      Erzeugt einen vollstaendigen Dateipfad des uebergebenen TreeNodesArrays
      Parameters:
        `tpath` -
      Returns:
        absolute path

    - #### stop

          private void stop()

      stoppt das Abspielen des MIDIs

    - #### analyseMIDI

          private void analyseMIDI(java.lang.String mPath)

      simple Analyse von MIDI-Dateien Quelle: http://explodingart.com/jmusic/jmtutorial/SimpleAnalysis.html
      Parameters:
        `mPath` -

    - #### pitchRange

          private void pitchRange(int pitch)

      zugehoerige Funktionen fuer analyseMIDI(String mPath) Quelle: http://explodingart.com/jmusic/jmtutorial/SimpleAnalysis.html
      Parameters:
        `pitch` -

    - #### noteLength

          private void noteLength(double duration)

      zugehoerige Funktionen fuer analyseMIDI(String mPath) Quelle: http://explodingart.com/jmusic/jmtutorial/SimpleAnalysis.html
      Parameters:
        `duration` - duration of a note

    - #### upOrDown

          private void upOrDown(int pitch)

      zugehoerige Funktionen fuer analyseMIDI(String mPath) Quelle: http://explodingart.com/jmusic/jmtutorial/SimpleAnalysis.html
      Parameters:
        `pitch` -

    - #### clearFileTreeView

          private void clearFileTreeView()

      leert den Treeview der MIDIs

    - #### main

          public static void main(java.lang.String[] args)

      Parameters:
        `args` - the command line arguments