Giter Club home page Giter Club logo

reamber's Introduction

banner

re:amber

re:amber is a rework of amber, which was discontinued.

status of project hiatus, focusing on reamberPy

resources

other parts of the project

๐Ÿ“Š amber Wiki

Read this at the very least Input Type

โญ releases

current

deprecated

note that these releases are old, totally independent in development of the current one

reamber's People

Contributors

eve-ning avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

reamber's Issues

Migration to Qt Quick/QML

QML allows for better widget designing but it'll take some time for me to learn it, I'll see how it goes, it's still a pending idea

Bug with Stutter "Average SV"

General Description

When trying to change the average SV with stutter, you'll have to change the threshold value before being able to input an initial SV above 1.

Recreation

Input any number above 1 in initial SV
Change the Average SV
Initial SV is locked to 0.1 - 1
To unlock you need to change the threshold value

amber_2018-09-04_03-58-39

Edit: Just saw that you dropped Amber. Kinda sad to see but I guess that's how it goes. I was glad you made it though!

Selection Maker

Create a clickable string with objects which, when clicked in osu! chat, selects all objects of given conditions. Idea inspired by Arrowvortex. Requires scanning of .osu file. Such conditions could include (examples in brackets):

  • note type (all LNs)
  • snap (all notes on 1/1, 1/6)s
  • hitsound (all notes with finish hitsound)
  • chord size (all notes that have a chord size of 2)

Unable to Extract Release 0.2.0 Alpha

I am unable to extract the release zip file for Amber.
Is there something I am doing wrong or is the file corrupted in some way?

Affected system OS: Pop_OS 20.04 LTS
Reproducible on: Windows 10

Crashing on bad input

Will be better if there was just a warning on bad input, instead of the whole thing collapsing

Stutter (BPM) Extreme values issue

When using stutter, issues arise when threshold goes to the 0.02 or 0.01 zone, where 0 BPM is represented as inf, osu! doesn't support that.

When using 0 threshold in BPM, the max cuts to 10000, but on 0.01, it may go above 10000 which may not be intuitive.

Suggestion to drop these extreme values by:

  • curbing on the 0.00 and 1.00 on threshold
  • specifically implement an additional option to utilize 1ms jumps to achieve maximum speed
  • specifically implement a function that does absolute offset stutters instead of relative offset stutter
  • increasing max bpm, but this may cause the slider to shift too fast due to extreme values

Make slider values be changable by keyboard input

Let's take the 2-Point Function for example.
If I were to select an initial SV of exactly 1.39, it would be very hard or even impossible to select that value with the slider, because of the size of it. Another problem is that, when moving the slider, you cannot get all values, because the slider is set to skip a lot of numbers. Same goes for the other values in the 2-Point Function and the sliders in the Stutter Function as well, although the sliders there are large enough to pinpoint an exact value.

My suggestion would be to be able to change the value manually with keyboard input, by creating an editable text box when clicking on the value itself or even making the value itself a text box, like the "Intermediate Points" value, like you had in your alpha release.

Example is provided in the image.
amber_2018-07-07_11-40-15

Suggestion for future rewrite of code

Just a suggestion if you plan to revisit this code in the future:
Split each tool in the program to its own .cpp and .h file.

Putting everything into a single .cpp file like this makes it very hard to fix bugs. Splitting the code into multiple files makes it easier for you to implement new features, and also for others to fix bugs in the program.

You can take a look at my tool here, to get an idea of what I'm talking about.

I'm writing this mainly because I can actually fix most of the current issues, but looking at your code just makes me give up (not because it's bad tho, it's just not organized)

Stutter values can exceed 10.0 due to slider snapping

Probably didn't curb it, but it shouldn't even happen.
I foresee that it's a rounding issue where the QSlider snaps to a value exceeding limits, it's a minor issue since it doesn't affect calculation too much, but it's good to fix this

2-point bezier (n-point bezier)

This should feel better and more intuitive than using normal cubic or sine, since you can control it to always finish in a fixed time at a fixed distance (it will always travel 1.0x if no other factor is involved). Due to the limitations of osu!, using negative control point coordinates is not possible. It's possible to expand to n-point bezier in case you're feeling excited, though I personally don't see any use for it.

Resources:

Add Error Detection on Pack Splitter

General Description

On wrong folder input program will crash, try to avert

Inputs (OPTIONAL)

What inputs did you try to use?

PARAMETER NAME 1: .../notthesongfolder

Making your own presets/memory slots

Sometimes you have to alternate between two different types of, for example, stutter and manually switching between them is quite annoying. Making your own presets / memory slots and being able to call them on a button press could turn out really helpful.

Not only is this useful for stutter, having your superdupercomplicatedfancy 2-point-function saved like that would be a lot more convenient than making a screenshot of the parameters, like I used to make.

Automatic copying of output into clipboard on generate

When generating a function, making the output being automatically copied into the clipboard, ready for pasting into the .osu file, would save the trouble of having to CTRL+A/CTRL+C.

A settings menu where this can be toggled would be a nice addition, for those who fear of overwriting their clipboard by accident.

Implement map analysis function

Based off the reading of the .osu HitObject, QCustomPlot can generate multiple charts (an overall density and a column density chart), and possibly implement more statistics.

Copying one pattern to multiple objects at once (Copier)

Being able to copy one pattern of timing points to multiple objects at once would take out a lot of repitition in copy and pasting. Seperating each hitobject with a line break should do the trick.

Example: Complicated 2-point-function, being copied to multiple objects.

Current workflow:
Create 2-p-f and paste in Copier
Repeat following for each object:

  • Copy one single hitobject
  • Paste in Copier
  • Generate
  • Paste in .osu

New workflow:

Copy all the hitobjects you want the pattern copied to
Paste in Copier by linebreak (example:
01:56:826 (116826|2) -
01:57:026 (117026|3) -
Generate
Paste in .osu ONCE instead once for each object

Fix algorithmic limitation of n choose c of TPB factorial function

Problem during calculation is that large factorials break calculation, will need to find a way to avoid calculating them separately.

    auto factorial = [](int a) -> long long {
        long long sum = 1;
        for (int i = 2; i <= a; i ++) sum *= i;
        return sum;
    };

long long coeff = factorial(size - 1) / (factorial(n) * factorial(size - n - 1));

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.