Giter VIP home page Giter VIP logo

ars-tracker's People

Contributors

admiralpotato avatar solrabizna avatar

Watchers

 avatar  avatar  avatar

ars-tracker's Issues

Support graphical waveform editing and preset selection, make full waveform sequence editing the "advanced mode"

By default, when editing an instrument's sequences, a fancy UI for making a single-element sequence should appear in place of the generic sequence editor. It should provide:

  • A popup to choose the instrument type (noise or voice)
  • Autoperiod value (noise only)
  • Checkboxes for the following (corresponding to bits in a Waveform value):
    • Voice:
      • Invert 12.5%
      • Invert 25%
      • Invert 50%
      • Invert 100%
      • Invert Every Cycle
      • Sawtooth Output
    • Noise:
      • Skip first 1/8 (and second, third, fourth, fifth, sixth 1/8)
  • Popup menu for waveform presets, also dependent on type (I'll provide a preset list on request)
  • Popup menu for intrinsic pan value:
    • 0x00: no intrinsic pan
    • 0x40: intrinsic pan right
    • 0x80: intrinsic pan left
    • 0xC0: intrinsic boost
  • Graphical waveform preview (voice instruments only)

It should still be possible to edit the raw waveform sequence, if desired.

Spacebar should exclusively start or stop playback

Pressing spacebar should always start or stop playback, but currently does not. Depending on the focus, spacebar can—in addition to start or stop playback—activate buttons and scroll the page down.

Select region and copy/paste/clear

Users should be able to select a region, both by clicking and dragging and by typing shift-arrows.

The selection should have column granularity. (e.g. It must be possible to specifically select the Instrument column within a row, but not either of the two halves of that column without the other.)

Users should be able to copy a region. When copying, the selection should go into the clipboard in a text format that reflects the appearance within the pattern editor. Columns are separated by spaces, and channels are separated by |. For example, for a selection spanning from the instrument editor of channel 1 to the note number of channel 3, possible clipboard text might be:

03 F ... | C#6 04 F P01 | E#6
.. . ... | C-6 .. . ... | E-6

Users should be able to clear. Clearing a region is equivalent to hitting backspace on every column within the region.

Users should be able to cut, which is equivalent to copy followed by clear.

Pasting will be covered by another issue.

Order editor fields neither respond to background changes nor edit the order list

I tried this simple fix, but it wasn't quite enough:

--- a/js/vue-channel.js
+++ b/js/vue-channel.js
@@ -23,12 +23,7 @@ Vue.component(
                        tableRows: function () {
                                let orders = [];
                                this.orders.forEach(function (order, rowIndex) {
-                                       order.forEach(function (channelPatternIndex, channelIndex) {
-                                               if(!orders[rowIndex]){
-                                                       orders[rowIndex] = [];
-                                               }
-                                               orders[rowIndex][channelIndex] = channelPatternIndex;
-                                       });
+                                       orders[rowIndex] = order;
                                });
                                return orders;
                        }

It did result in edits to the data... the first time I would edit a given field. Then the truly weird behavior would start.

While we're fixing this issue, we should also make the fields be in hexadecimal.

When instruments have the same name, the instrument editor gets confused

Steps to reproduce:

  1. New document, Instrument List and Instrument Editor open
  2. Add instrument
  3. Select instrument 0
  4. Select Waveform
  5. Change from 48 to 4
  6. Select instrument 1
  7. Graph is correct, text field is not

The actual data appears to be correct at this point, but subsequent confusion creates big problems in the editor, easily leading to accidental corruption of instruments.

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.