Git Product home page Git Product logo

aodix-enhanced's Introduction

aodix-enhanced's People

Contributors

vanjac avatar

Stargazers

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

Watchers

 avatar

aodix-enhanced's Issues

Redux playback rate "wobbles" (inaccurate timing)

I found this while using Redux but I think it's a general timing bug. If you turn on Beatsync in Redux, the pitch will vary wildly while Aodix is playing. This is improved with higher PPQN values.

This is likely due to some VstTimeInfo calculations in dsp_work.

Moved from aodix-repair

Render to WAV

The Bounce command should render to 32-bit WAV instead of RAW, this would be more convenient in most circumstances.

Moved from aodix-repair

MIDI export

MIDI export was planned but never implemented.

Note Off command

Add a "Note Off" command which sets the length of resizable events in the current track. Shortcut: `.

If the cursor is overlapping any events which end after the cursor, all overlapping events are resized to end at the cursor. (Pre-release is ignored). Otherwise, the closest end(s) of an event before the cursor are resized to meet the cursor. Should be Undoable.

This has been implemented in the executable patch.

Ctrl+Drag should only draw wires in pairs

Instead of connecting all outputs, a Ctrl+Drag should connect only the selected pin and the next one to the right. For plugins with more than 2 outputs, its unlikely that you'd want to connect all of them at once. Stereo connections are probably the most common use case for Ctrl+Drag. This should an option in the Configuration panel.

Will affect #9

Moved from aodix-repair

Fix touchpad scrolling

On laptop touchpads that support high resolution scrolling, scrolling at slow speeds doesn't move the cursor at all.

Unicode support

For compatibility with older versions, strings should be saved in file as UTF-8

New installer

The code for the original installer has seemingly been lost, so I will need to write a new one.

More undoable operations

More edit operations should create undo snapshots, to prevent accidentally undoing something else.

  • Quantize
  • Randomize
  • Interpolate

Only one program saved for some VSTs

For VSTs without the effFlagsProgramChunks flag, there appears to be a bug in import/export where only 1 program will be saved.

Relevant line. I'm thinking this was supposed to be max instead of min.

Fixing this could cause compatibility issues with older versions, since they only expect to load one program.

TODO: find a VST that has this issue and test.

Instance find/replace

Command to replace one instance number with another, for events in the current Selection/Track/Pattern/Project.

Adjust gain for multiple wires at once

Holding Ctrl and dragging an arrow should simultaneously adjust the gain for all wires between the same input and output (all wires that would be deleted by a ctrl-double-click), preserving the ratio between them.

Moved from aodix-repair

64-bit build

Having a 64-bit version as an option would help with plugin compatibility.

Open parameter window for VSTs without editor GUI

Double-clicking an instance without an editor GUI should open a copy of the parameters panel in another window, locked to the selected instance. This would make it more convenient to adjust the parameters of one instance while recording with another.

Move/resize multiple events at once

Holding alt(?) while dragging an event should affect all events in the selection simultaneously, as well as the selection itself. This should also apply to the piano roll (allowing easy transposition). Maybe alt+shift to snap to horizontal axis?

Affects mouse operations 20, 21, and 28.

Moved from aodix-repair

VST name buffer overflow

When calling getEffectName for a VST, a buffer is allocated for 32 bytes but some VSTs (eg. Airwindows plugins) write 64 bytes. This causes the following dll_path string to get corrupted, leading to projects saved with invalid paths.

This issue has been fixed in the executable patch, but I want to look more into why it happens. Was there a change in the VST spec, or just a common misunderstanding among plugin devs?

Missing VSTs cause crash

When loading a file with a VST that can't be located, sometimes the program will crash. It should still load the MIDI data and as many instances as possible.

Consistent playback for notes ending/starting at the same time

If the end of one note is on the same tick as the start of another note, the one that's triggered first is determined by the internal order of events.

This can cause problems: If the two notes are the same pitch, the note might stop as soon as it's started. Or for some monophonic synths, slides might be triggered by a note starting before the previous ends, making this behavior unpredictable.

Maybe all Note Offs could be triggered before Note Ons, for each tick?

Moved from aodix-repair.

Multiple undo levels

Support multiple levels of undo/redo (see #6, #36). The current system of copying the entire event buffer wouldn't scale well, so a new system would be needed of only storing the differences between undo steps.

Snap Pattern/Jmp event lengths

I think it's intentional that note lengths aren't snapped to the quantize grid when resizing with the mouse, to encourage less rigid sequencing, but pattern calls and Jumps should still probably be snapped (unless Ctrl is held).

This should be an option in the Configuration panel.

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.