Skip to content

Commit

Permalink
Rebuild documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Eve-ning committed Jul 6, 2022
1 parent 3cbaebb commit ef6e641
Show file tree
Hide file tree
Showing 156 changed files with 1,913 additions and 6,870 deletions.
17 changes: 17 additions & 0 deletions .run/Make Sphinx.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Make Sphinx" type="ShConfigurationType">
<option name="SCRIPT_TEXT" value="" />
<option name="INDEPENDENT_SCRIPT_PATH" value="false" />
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/sphinx/make.bat" />
<option name="SCRIPT_OPTIONS" value="html" />
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
<option name="INTERPRETER_PATH" value="" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="EXECUTE_IN_TERMINAL" value="true" />
<option name="EXECUTE_SCRIPT_FILE" value="true" />
<envs />
<method v="2" />
</configuration>
</component>
2 changes: 1 addition & 1 deletion docs/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: eba793f0287edcb03ce003de7bda82c7
config: bae5b29be5f0ce67947980e00b39fc25
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file removed docs/.doctrees/devInfo/DevInfo.doctree
Binary file not shown.
Binary file removed docs/.doctrees/devInfo/Props.doctree
Binary file not shown.
Binary file removed docs/.doctrees/devInfo/TypeHinting.doctree
Binary file not shown.
Binary file removed docs/.doctrees/environment.pickle
Binary file not shown.
Binary file removed docs/.doctrees/index.doctree
Binary file not shown.
Binary file removed docs/.doctrees/info/About.doctree
Binary file not shown.
Binary file removed docs/.doctrees/info/ChangeLog.doctree
Binary file not shown.
Binary file removed docs/.doctrees/info/Conventions.doctree
Binary file not shown.
Binary file removed docs/.doctrees/info/GettingStarted.doctree
Binary file not shown.
Binary file removed docs/.doctrees/info/Stacking.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/Algorithms.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/BMS.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/Base.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/O2Jam.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/Osu.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/Quaver.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/SM.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/algorithms/Api.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/algorithms/Convert.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/algorithms/Generate.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/algorithms/Mutate.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/algorithms/Pattern.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/algorithms/PlayField.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/algorithms/Plot.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/algorithms/Replays.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/Bpm.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/Hit.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/Hold.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/Map.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/MapSet.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/Note.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/RAConst.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/Timed.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/lists.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/lists/BpmList.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/lists/TimedList.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/base/lists/notes.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed docs/.doctrees/reamber/bms/Channel.doctree
Binary file not shown.
Binary file removed docs/.doctrees/reamber/index.doctree
Binary file not shown.
Binary file removed docs/_images/SvOsuMeasureLine-2.png
Binary file not shown.
1 change: 1 addition & 0 deletions docs/_sources/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Here's the list of pages that you'll find useful.
You can find specific articles using the **Search Bar** on the left.

.. toctree::
:maxdepth: 2

Getting Started <info/GettingStarted>
Stacking <info/Stacking>
Expand Down
5 changes: 1 addition & 4 deletions docs/_sources/reamber/Algorithms.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,8 @@ Algorithms
.. toctree::
:maxdepth: 2

API <algorithms/Api>
Convert <algorithms/Convert>
Generate <algorithms/Generate>
Mutate <algorithms/Mutate>
Osu! Algorithms <algorithms/Osu>
Pattern Detection <algorithms/Pattern>
Play Field <algorithms/PlayField>
Plot <algorithms/Plot>
Replays <algorithms/Replays>
5 changes: 0 additions & 5 deletions docs/_sources/reamber/algorithms/Api.rst.txt

This file was deleted.

7 changes: 0 additions & 7 deletions docs/_sources/reamber/algorithms/Generate.rst.txt

This file was deleted.

4 changes: 0 additions & 4 deletions docs/_sources/reamber/algorithms/Mutate.rst.txt

This file was deleted.

4 changes: 4 additions & 0 deletions docs/_sources/reamber/algorithms/Osu.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Mutations
=========

.. include:: osu/HitsoundCopy.inc
134 changes: 91 additions & 43 deletions docs/_sources/reamber/algorithms/Pattern.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,77 +2,117 @@
Pattern Detection
#################

**Not supported beyond v0.1.0, open to request of revival.**
This is to find occurrence of specific patterns.

The aim of this package is to ease the way to find occurrence of specific patterns. See PtnCombo on how to detect
patterns/combinations after grouping.
+---------------------------------------+
| Input |
+---------------------------------------+
| :doc:`Grouping <Pattern>` |
+---------------------------------------+
| :doc:`Combinations <pattern/PtnCombo>`|
+---------------------------------------+
| :doc:`Filtering <pattern/PtnFilter>` |
+---------------------------------------+
| Output |
+---------------------------------------+

**Input**
We'll be covering the grouping here

The ``Pattern.__init__()`` takes in ``cols: List[int], offset: List[float], types: List[Type]``. However if you are
using ``Map`` objects, you can extract from the ``NoteList`` s with ``from_pkg`` like such.
*****
Input
*****

.. code-block:: python
osu = OsuMap.read_file("path/to/file.osu")
Pattern.from_pkg([osu.notes.hits(), osu.notes.holds()])
This initializes the class with required lists for you to use ``group()``

***********
Conventions
***********
2 Ways to initialize, either by providing the ``Lists`` or ``List[NoteList]``.

The conventions in this package may be confusing as some are not used anywhere in VSRGs.

**Group**: Notes grouped together, usually by a specified condition.
.. code-block:: python
**Sequence**: Singular notes, one after another. E.g. ``[0, 1, 3, 0, ...]``
Pattern(cols: List[int], offsets: List[float], types: List[Type])
Pattern.from_note_lists(note_lists: List[NoteList])
**Chord**: Multiple notes on the (almost) same offset. E.g. ``[0 1 4], [2 5 6]``
It's recommended to use the 2nd method as it's easier. See the following example:

**Chord Sequence**: (Unused) Chords, one after another. E.g. ``[[0 1], [2 3], [1 3], ...]``
.. code-block:: python
**Window**: The area to check. If in time, milliseconds as unit. If in columns, column difference as unit.
Pattern.from_note_list([m.hits, m.holds])
********
Grouping
********

The grouping algorithm looks at every note and tries to group them with other notes according to conditions specified.
Now, we group notes together as chords.
However, some graces can be played as chords, thus we group with some buffer.

``group`` Groups the package horizontally and vertically, returns a list of groups.

.. code-block:: python
Pattern.from_note_list(...).group(
v_window: float = 50.0,
h_window: None or int = None,
avoid_jack=True,
avoid_regroup=True
)
Vertical & Horizontal Window
============================

These windows define how far forward or to the side a note should look for to group.

If 3 notes are each **30ms** apart, a **50ms** VWindow will group them as ``[0, 1][2]`` as ``2`` is **60ms** away from
``1``
Consider the following marked X::

[20ms] | _ O _ _ |^
[10ms] | _ _ _ _ || Vertical
[0ms] | X _ O _ |v
<--->
Horizontal

If there's a chord ``[0 1 6 7]``, a **1** HWindow will group them as ``[0, 1][6, 7]``. HWindow is rarely used, but kept
in case it's required.
If we had ``h_window=2`` and ``v_window=20``. These will be grouped as one, anything smaller will split them.

There are multiple examples below to further illustrate how it works.
This is to group grace notes together as they are played as a chord if close enough.

Warning
=======
By default, ``h_window=None`` will simply yield all columns.

**Warning: Having too high of a hwindow can cause overlapping groups.**
Avoid Jack
==========

A 4K Example::
When grouping, you want to avoid grouping jacks together::

[20ms] | O _ _ _ |^
[10ms] | _ _ _ _ || Vertical
[0ms] | X _ _ _ |v

``avoid_jack=True`` will prevent that, forcing the next note to be in another group.

Large Horizontal Window with Jack Avoidance
-------------------------------------------

**This can cause overlapping groups.**

Example::

Unlabelled Labelled
=========== ===========
| O O _ O | | 6 7 _ 8 |
| O _ O O | == | 3 _ 4 5 | ! Notes are labelled from 1 to 8 for simplicity
| _ O O _ | | _ 1 2 _ |
| _ _ _ _ | | _ _ _ _ | ^
| O _ _ O | == | 4 _ _ 5 | | Vertical
| _ _ O _ | | _ _ 3 _ | | Window
| _ O O _ | | _ 1 2 _ | v
=========== ===========

If our window is too large, the algorithm will group it as ``[1,2,3,5][4,6,7,8]``.
! Notes are labelled from 1 to 8

Group 1 Group 2
Labelled Labelled
=========== ===========
| _ _ _ _ | | 6 7 _ 8 | ^
| _ _ _ _ | ^ | _ _ _ _ | |
| 4 _ _ 5 | | | _ _ _ _ | |
| _ _ _ _ | | | _ _ 3 _ | v
| _ 1 2 _ | v | _ _ _ _ |
=========== ===========

Notice the odd grouping. ``3`` was rejected as ``avoid_jack=True``. Causing it to group separately

The overlapping ``[3,4,5]`` in 2 groups may cause issues in calculation.

Examples
========
Expand All @@ -98,9 +138,7 @@ Let's say we want to group with the parameters

Output: [1][2,3,4][5]

2, 3 and 4 are grouped together because 4 is within the vwindow of 2;

``2.offset + vwindow <= 4.offset``
2, 3 and 4 are together as 4 is within the ``vwindow`` of 2;

``vwindow = 1000, hwindow = 1``::

Expand All @@ -112,20 +150,30 @@ Let's say we want to group with the parameters

Output: [1][2][3,4][5]

2 and 3 aren't grouped together because they are > 1 column apart. (Hence the hwindow argument)
2 and 3 aren't together as they are > 1 column apart, due to ``hwindow``

*************
Going Forward
*************

You could directly use groups for your own uses or pivot off these other sub-packages.
Understand this is basic, however, we need relationships between the groups to find patterns.

See the following.

.. toctree::
:maxdepth: 1

Pattern Combinations <pattern/PtnCombo>
Pattern Filters <pattern/PtnFilter>

***********
Conventions
***********

**Group**: Notes bounds together, by ``v_window`` & ``h_window``.

**Window**: The area to check. If in time, milliseconds as unit. If in columns, column difference as unit.

***********
Module Info
***********
Expand Down
8 changes: 0 additions & 8 deletions docs/_sources/reamber/algorithms/Plot.rst.txt

This file was deleted.

78 changes: 0 additions & 78 deletions docs/_sources/reamber/algorithms/generate/Sv.rst.txt

This file was deleted.

Loading

0 comments on commit ef6e641

Please sign in to comment.