circuitlord / notreaper Goto Github PK
View Code? Open in Web Editor NEWA mapper for the VR rhythm game Audica
License: GNU General Public License v3.0
A mapper for the VR rhythm game Audica
License: GNU General Public License v3.0
I put grid and UI together in this suggestion because the UI enhancement suggested correlates to the placement of objects on the grid.
I am proposing the three following additions/enhancements to NotReaper:
1.) The ability to have grid precision. Having grid precision will allow for more granular placement of objects while still having a reference point to the initial grid, making symmetrical patterning and even spacing/accenting substantially easier to do within the normal 1x1 grid spacing. With proper implementation and tight enough precision, chain notes can be quickly placed with mathematically proper spacing, allowing for better consistency in chain links (i.e. more precise, distance-based snapping).
2.) The ability to see the X/Y coordinates of a highlighted note. Whether or not this is an X/Y pairing of coordinates by pixel or if a relative, fractional/decimal number based off of the grid index is irrelevant - it will allow for placing another notes that are potentially unsnapped with similar points along a particular axis.
3.) The ability to see your coordinates within the grid itself. Sometimes, a pattern presentation might be too subtle to lock onto a grid coordinate (unless snapping can be extremely precise); however, having a visibility of X/Y coordinates can guarantee placement that is where you intend, perhaps mathematically.
I'm an idiot and had all of these things in one image but apparently lost a layer for the grid when flattening, so have two images.
X/Y coordinates: https://i.imgur.com/KWPDxI8.jpg
Grid: https://i.imgur.com/0g5jRks.png
This should NOT be a validation step on loading existing files as some maps do have targets outside of the grid using offsets rather than the pitch value.
This only affects the UI of single notes and groups of notes being dragged around and should be prevented in the drag code (unless an override modifier is held? Some people do like to push things out of the grid).
NotReaper should read the midi file for these songs, using a translated version of the midi2cues.py script included in the game files.
PreviewTimeSeconds missing from metadata, also a button for setting current time as previewtime
Click + hold + scroll for adding sustains and altering the length at the same time (increase / degrees by beat length)
Repeaters are sections of notes that can be defined, then places into a song along the timeline. Repeater sections all reference the same underlying notes, meaning that any modifications to a Repeater will automatically transfer to the same sections throughout the timeline.
Repeaters can also be shortened relative to their true length, meaning only that subsection of the Repeater will be present at that time
When targets are selected, arrow keys be used to shift them by 1 x/y grid position
default ticklength for non sustain cues are currently 0, which creates issues of compatibility with converting back to midi:
since the cues will be represented as this tiny hard to see midi notes that are hard to select.
A default of 120 ticklength for regular targets would probably be good. 120 is the equivalent of a sixteenth note, and makes for good visibility in midi editors. In the event that a cue immediately following a cue happens before 120 ticks, this doesn't actually cause any issues with the game or in midi, afaik.
Sometimes possible to get the timeline into a state where targets do not select with the drag region.
At least, I think that's what this issue was originally reported for...
An option to make left click place left hand notes and right click place right hand notes. Double click to delete.
May be worth using this ticket for any other shortcuts and stuff that might ease the transition for Reaper users?
If you drag select some notes backwards in time, the FindNote() function is unable to find the beat time of at least one of them whenever you try to undo that move.
If a user has never assigned an application to open .json
files the button appears to do nothing. Is this to do with the app being fullscreen? Can we fix this by just renaming the config file to NRConfig.txt
or should this be ignored in favour of a proper settings menu (#61)?
I know there's some issues with this but I'm not 100% on the specifics, any help?
If you chose new, and go back to the menu to chose a different choice (like open), the timing menu doesn't cancel out
It shouldn't be used after generating an audica file and it's causing confusion.
Although doing the mp3 => ogg conversion is useful, I suspect some users will still want to use other tools to align the offset correctly and stuff. The file dialog should support both and handle the conversion only if needed.
Failing to select last note + weird selection of group moving the notes:
https://i.imgur.com/pVYO8Lr.mp4
What appears to be the click-up event deselecting one of the group when highlighting:
https://i.imgur.com/YicAoCX.mp4
https://i.imgur.com/0cj7YBv.mp4
Possibly related to #20
Hold Shift to temporarily switch selectedSnappingMode between None and previous (Melee / Grid) exactly like ctrl does
It looks like there's a bookmark system in MiniTimeline.cs but it currently conflicts with other tool selection mapped to numeric keys (ctrl + shift + number to make a bookmark, number to return)
If user modifies playback speed during .audica file creation, the slider returns to 100% but the song continues to play at the playback speed previously set.
it shouldn't jump to a point in time when trying to select / manipulate notes.
Click on big timeline to jump to that point (don't do this if drag selecting / holding down CTRL)
Holding and letting go of CTRL re-enables the grid if you're mapping with it disabled. This is probably due to the toolbar behaviour being selected and enabling the grid if its behaviour defaults to it.
I think edica always did this but it's kinda annoying.
I sort of attempted to fix this in my latest commits, but it didn't seem to fix it completely.
Steps:
Select some notes.
Start dragging them somewhere on the grid.
Let go of ctrl before you let go of the mouse button
When you try to drag again, the notes will start dragging off the wrong pivot point.
This definitely used to be a feature
I think it would be helpful to be able to see the song waveform in the timeline. Many other editors have this like Moonscraper, and it would help with syncing notes if the bpm or offset is a little off.
See the README.md file for a list of shortcuts
Related to #63, the root cause for lots of that weird behaviour is the colliders for chain nodes is so large that it feels like neighbouring notes get selected for no reason.
When dragging notes, use scroll wheel to drag through time based on beatsnap
Error Checker function that parses a cues file and finds errors in the map, such as chain link nodes that don't have a chain start, targets with invalid hitsounds or tickLengths, etc.
Can be extended to give warnings on targets that go against good practice, such as low single melees. Or for following lower difficulty guidelines, such as no slotted notes for Standard, etc.
Errors:
General
*value for these should be configurable, default being 1 full beat.
Advanced warnings:
Standard warnings:
Beginner warnings:
Future iterations can have links with each error and warning that jump to the offending targets in editor.
I'm sure there's more ๐
After loading a .audica file, sometimes it stays in the settings tab even after hiding the panel.
It is currently not possible to create audica files with a German system locale (and probably other locales as well). The call to ffmpeg has to be made with a decimal point for the delay filter. Apparently, a localized call is made instead (German has a decimal comma), resulting in ffmpeg to fail:
Running ffmpeg with args -y -i "C:\Users\path\to\a\song.ogg" -af "adelay=1464,90683229814|1464,90683229814" -map 0:a "C:/Users/path/to/NotReaper-v1.1.3/NotReaper/NotReaper_Data/StreamingAssets\FFMPEG\output.ogg"
The above command gives a No such filter: '90683229814|1464'
error in cmd. Replacing the decimal commas with decimal points converts the file as expected.
Suggested input with Shift + Hotkey
Delete + undo + redo does not delete and allows undo again (invalid state, multiple notes)
Causes null exception for any other redo actions with affectedTargets (redo adds from scratch - delete should maybe move to a temporary bucket or something...?)
It currently just links out to a config file, we should actually build the options in the editor
Currently, the Chain node selects the "Chain Start" hit sound, when it should select the "Chain" hit sound
Used to be a feature but we no longer use offsets, we trim or pad the audio file
@Mettra it looks like FindNote() can return null and does when performing some undo tasks on the timeline. I'm not sure why exactly, it only appears to happen when moving groups or single targets quite far.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.