Giter Club home page Giter Club logo

hugetracker's People

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  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  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  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  avatar  avatar  avatar  avatar  avatar  avatar

hugetracker's Issues

Drag Selection to move / retime pattern (Feature)

Drag Selection Move
From RichardULZ

Click and drag a selection to move (cut paste) Like OpenMPT? Probably a feature request worth in itself.

Since it's probably hard to program, i've split it off.

From @DeerTears Ember,

personally..."drag selection to move" is my least-favourite program feature. I know this is a Windows text standard but I've always felt that text is too fine to let it work the way it wants to. It's just really inaccessible and I'd never want to count on it when there's young kids or anybody with fine-motor-difficulties who'd be unable to use it reliably.

I understand the inaccessibility concerns about drag to move for those with fine-motor-difficulties, but i argue it can make things more accessible, and if you've never used openMPT, the margin for movement is very lenient compared to text.

To me it's an intuitive way to Re-time patterns, and more accessible than Ctrl X Ctrl V in many cases.
In OpenMPT, It is locked to the correct columns, dragging up/down is easy, left right needs bigger movements. The selection stays behind, while an outline of where it will place is shown.
Gif below.
DragMove

You are also able to hold Ctrl to copy instead of move, but strangely only after you start dragging, this makes it hard to copy tracks, so I still use Ctrl C for that.

Pattern scrolling

Pattern scrolling should follow in middle (or top bottom) the manual cursor.
Actually, we have to mouse scroll all the time.

Tracker will not launch if working directory is not install directory

For example, if I start the program from CMD in the install directory like ".\hUGETracker.exe" it works fine. But if I go up a folder, and run ".\hUGETracker_1_0b9\hUGETracker.exe", it does not work, saying it "can't load a required file which comes with the tracker". This also breaks launching the program from the Search part of the Windows start menu.

Correctly implement "find unused elements of song"

Not exactly sure what it should detect (or if it should be expanded into a full song statistics feature).

Right now, it tells you the number of unused instruments, routines, and patterns, and lists all unused patterns just for informational purposes. It also offers the option to delete the unused patterns for you (which is currently not functional).

I was thinking maybe having a popup or even separate form which can show you information such as a list of unused patterns, waves, and routines, and assembled song ROM size just so you know your constraints.

The unused pattern removal feature isn't strictly necessary, because when rendering a ROM there's going to be an optimization step which deduplicates patterns/instruments/waves/everything, and reorders them such that they only take up the minimum amount of memory automatically. Cleaning out unused patterns would only serve to shrink your .UGE filesize.

Font does not get loaded on first program launch

The way the pattern editor font is loaded is a bit of a hack, and fails the first time the program is ran.

We'll have to figure this out eventually, though it's arguably low priority for the time being.

Port emulation code to 64 bit

Right now the current CPU emulation relies heavily on 32 bit assembly, including the instruction SAHF which isn't available on all processors in 64 bit mode. I'm either going to find out if LAHF and SAHF are present on most modern processors and try to port the assembly to 64 bit (shouldn't really require much changes) or just rewrite the whole thing in Pascal.

Edit:

All computers that support Windows 10 also support LAHF/SAHF so we should be good to go simply porting the assembly (unless we eventually need to port the tracker to phones or something.... but that'll never happen!)

[Feature Request] Famitracker Style Instrument Macros or LSDJ Style Tables

It would be nice to see options that allow us to arbitrarily set arpeggios/exact pitch and duty cycle per tick like how Famitracker's instruments work. the existing envelope and defaults in the instrument settings are a great start, however I personally use complex techniques involving shifting around the duty cycle and pitch of the instrument. As it stands the only way to make this work in hUGE Tracker is to write the track at 1 tick per row placing each note and command in the pattern each time, which can be tedious and create complex timing as well as bloat in the pattern list.

Having an option that allows us to set the pitch of the instrument relative to the placed note and duty cycle per tick like Famitracker's intruments or LSDJ's Tables would make this a lot easier and far cleaner to work with.

An example is a simple kick drum, taking the note from +12 half-steps above the placed note and over the course of 5 ticks dropping it to -12 half-steps below in a parabolic pattern can make a nice punchy kick. This isn't possible with the current implementation of instruments, only being possible by writing the track at 1 Tick per Row and placing the whole set of commands each time. Another example is creating a guitar strumming sound by changing the Duty Cycle from 12.5% to 50% over 3 ticks. This also is not possible without writing the track at 1 Tick per Row and placing each command every time they are used.

Below are examples of both the instruments I am referring to.

image

image

Test tone button on the wave drawing page (feature)

Would be nice to rapidly preview the wave being drawn without jumping tabs,

Alternatively or additionally, Being able to play the instrument you are editing with the keyboard while in the instrument editors, but not in a text box? Another OpenMPT feature kinda.

image
image

Tone portamento volume issue

Example:
Intrument 1 have a volume of 15

C-5 01 ...
... .. ...
C-5 01 C03
... .. ...
C-4 01 3A0 <-- here, the volume still at 03 instead of 0F.

Because an INStrument ID is set, the volume have to be reset (like XM/MOD)

Allow to use numpad

Using numpad to write numbers is much faster and intuitive than using top numbers.

Tracker undo buffer, not tracking patterns, weird first state undo (Bug)

The undo buffer has a few problems,

Gif shows Changing channel pattern numbers is not recorded/undo able, and then changing notes in the tracker and undoing to first state can cause strange effects.
UndoBufferBugs
So bug 1, pattern changes are not undoable.

2, Undo buffer first state bugs
On a blank project, add 2-3 notes, then undo them, when you undo the 1st note you placed, it fills the screen with C-3

On a blank project, add 1 note, add an instrument number, then add another note, undoing back to the first operation may appear to redo, or mess up with C-3.

More refined test of same bug.
Load a project, add 1 note with or without instrument assigned, try to undo, will have no effect.
Add 1 more note after trying to undo, and undo will again have no effect.
Add 2 notes and undo will work once, then "redo" kinda.
Add 3 notes, and undo will work twice, then cause a mess of c-3 everywhere, changing patterns will update the view and show the mess is only on pattern 0, but has ruined it, and is not undoable/redoable.

Allow passing backup etc. dirs on the command-line

Currently, hUGETracker requires the directory it's in to be writable by whoever is running the program, for example to write backup files. This is okay if running hUGETracker "portably" (which is fine on Windows due to the pre-built distribution), but less so if doing a system-wide install (more typical on Linux via package managers).

The current packaging scheme I have is to put everything in /opt, and add a simple shell script in /usr/bin to run hUGETracker; it would pass the relevant CLI args to specify the user backup dir.

Somehow broke "new folder" action in windows...

So I had quite a few crashes, and I think maybe it was in the process of it making backup saves, but when I tried to create a new folder in windows after, it did nothing. After hours of searching, I finally found a tut going over where the key is in regedit, and it turns out the value data had been changed from "folder" to "uge_[something]" (don't remember exactly what, sorry), that's when I was able to confirm it must've been caused by this program somehow. Super weird, and really damaging for those who don't know how to fix it. Hopefully will be easy to fix on your end though.

Inserting tracker notes should use channel specific instruments (feature)

Now that we have 15 dedicated instruments for all 3 channel types, typing them should be a lot easier.
image

1. Active instrument should be instrument 1 when editor starts.
Currently (no instument), might reduce confusion for new users expecting a sound to play.

2. Switch instrument based on channel being written to
When inserting square 1 on the Wave or Noise channel, it should instead switch to that channels instrument type, as Wave 1 or Noise 1.
This was a fair complaint from GBT users who were confused when they tried square sounds on ch4, now that song playback is accurate here, it's more for those who wished it could auto switch based on selected channel.

Either change active instrument on typing a note into the tracker, or when clicking/moving in the tracker patterns.
Swap with the same instrument number, or last used instrument per channel (last used could be harder to test for bugs, might not be worth it).
When using (no instrument), dont change between channels.

3. Squares should play on ch1 or ch2, as some effects are exclusive to ch1
As an addendum, Squares should play on the selected channel in tracker, as the instrument sweeps are only available on ch1, typing in ch2 should not preview them
(Double check Test C-5 will still play on channel 1 for squares, even if you last previewed a note on ch2.)

Hope it's not too much to ask, and any thoughts are welcome.

Pasted invalid song data causes a crash

If you copy some normal text into your clipboard, for example I tested it with "this is text", and paste it into the tracker view the program crashes with the message "EStringListError with message List index (0) out of bounds"

Soundtracks (Multi-song files)

For integration with a real Gameboy game, there needs to be some way to represent multiple tunes such that they can share instruments/waves/etc.

My ideas for how we could do it:

  1. Add multiple order tables into the .UGE format. Regular old tunes would only use one order table. Soundtracks could utilize an order table for each song in their list. Simple solution which would allow for reuse of instruments and waves across each tune. The driver would be configured at runtime which order table to use.

  2. Just dump each song separately, with different instruments/waves/etc. Could result in a lot of duplication and wasted space.

The problem is, the GBStudio community enjoys the capability of grabbing existing tunes and dropping them into their game, which is a nice side-effect of GBT having only one hardcoded set of instruments. With option 1, there's no guarantee the songs you grab off the internet are going to play well with each others instruments. With option 2, this is allowed but seems really wasteful space wise. I guess since GBStudio doesn't really care about a bloated ROM to begin with, this approach is feasible. Maybe we could implement both alternatives and just have an option to select which strategy to use.

More Keyboard Shortcuts, Big list

Big dump of possible shortcuts, trying to cater to OpenMPT users and Milkytracker users.

Play shortcuts!
Shift enter & F5 (Play from Cursor)
Ctrl enter & F6 (Play from Start)
Enter & F7 (Play Current order / pattern)
Escape & F8 (Stop/Panic)

Alternate Note key maps

OpenMPT mode
C3-C4-C5-A5 OpenMPT current
Qwertyuiop[ ]  asdfghjkl;'\ zxcvbnm,./
MilkyTracker mode
C3-B3= zSxDcvGbHnJm      C4-E4= , L . ; / 
C4-C5= q2w3er5t6y7ui     C5-F5= 9o0p[ =] 
Dare i ask about azerty and other key types? :/
Perhaps it needs to be exposed with import presets....

Change active instrument
Shift Minus - and Shift Plus += next to backspace?
OpenMPT has ctrl numpad / * which sucks, and Ctrl Up Down which are far away...
Milky doesn't have one except fasttracker2 mode.
Active inst and Active Octave are something i change frequently, but never have good shortcuts
Change active octave
Plus and Minus but Milky uses = for F#5... so one might have to go in this mode
Milky has Ctrl Shift 1-8

Insert and delete row
Insert (insert Row on pattern)
Ctrl Insert (insert Row on whole order)
BackSpace (Remove Row on pattern)
Ctrl Backspace (Remove Row on whole order)
OpenMPT uses Ctrl, but Milkytracker uses shift, could do both?

Movement
Up or Down key at edge of tracker page to cycle through Order pages.
Page Up Page Down move in 16ths
TAB in most trackers, moves across channels, for more keyboard only movement, would be nice when in tracker only.
Ctrl Arrow keys left and right to change between orders is default in openMPT

Selection
Ctrl A select entire pattern, (milky has, openMPT doesn't use)
Ctrl Shift A Select channel? (Ctrl L is good too, but far away? not so bad)

Redo
In addition to Ctrl Y, Ctrl Shift Z

Fake alternative to Record mode?
Space bar in Milky, CtrlSpace in OpenMPT, but useless
Milky users swear by this, used to test notes out before advancing by steps.
Normally disables editing the pattern, but instead I propose...
Use Space bar to toggle step size between 0 and UserStepSize or 1

Navigation
This one's new to me, but In OpenMPT you can use Alt and G, P, S, C To jump between viewers,
milky tracker has the same but with Ctrl Alt.
G for General, P for Patterns, S / I for samples and instruments, C for comments or config, i guess W for wave?
These allow close to full keyboard only support.

Not a keyboard shortcut
Click and drag a selection to move (cut paste) Like OpenMPT? Probably a feature request worth in itself.

That's a big as list, would like to get @DeerTears / ember's thoughts as they prefer Milkytracker to OpenMPT

build on raspberry pi4 (raspberry os 32bit)

Hello i test to build HT on raspberry pi4 raspberry os 32bit but i think that line won't work

:: Let Lazarus know about the dependencies that HT uses
lazbuild --add-package-link rackctls/RackCtlsPkg.lpk
lazbuild --add-package-link bgrabitmap/bgrabitmap/bgrabitmappack.lpk

I test build and i have this errors :
16.609] Executing "/usr/bin/ld.bfd" with command line " --dynamic-linker=/lib/ld-linux-armhf.so.3 --gc-sections -s -L. -o /home/pi/hUGETracker/Release/hUGETracker -T /home/pi/hUGETracker/Release/link.res -e _start"
[17.461] /home/pi/hUGETracker/hUGETracker.lpr(87,1) Error: (9013) Error while linking
[17.461] /home/pi/hUGETracker/hUGETracker.lpr(87,1) Fatal: (10026) There were 1 errors compiling module, stopping
[17.500] Fatal: (1018) Compilation aborted
Error: /usr/bin/ppcarm returned an error exitcode
Error: (lazarus) Compilation du projet - Mode : Production Linux - Cible : Release/hUGETracker : stopped with exit code 1
Error: (lazbuild) failed compiling of project /home/pi/hUGETracker/hUGETracker.lpi

If a 32bits version for windows exsit i can run HT with wine.
Thanks for your job.

[Feature Request] Numbered rows on the tracker

I would like to request a feature for labeling the individual rows in the tracker with a number, it can be useful to know exactly which part of the song you are in. The following is an example in OpenMPT of what I am requesting:

image

Thank you!

build a rom with hugdriver on ubuntu ?

Hello , i test to build with gbdk-2020.
I use exemple in hugedriver .
i make a folder with template_minimal with gbdk_palyer_exemple.c and sample_song.c and i put hugedriver .h and i rename gbdk_palyer_exemple.c to main.c
when i make :
` :../../../bin/lcc -o Example.gb main.c sample_song.c
main.c:
sample_song.c:
sample_song.c:1051: warning 158: overflow in implicit constant conversion

?ASlink-Warning-Undefined Global '_hUGE_dosound' referenced by module 'main'

?ASlink-Warning-Undefined Global '_hUGE_mute_channel' referenced by module 'main'

?ASlink-Warning-Undefined Global '_hUGE_init' referenced by module 'main'
make: *** [Makefile:29 : Example.gb] Erreur 1 `

I don't understand how to build .The tuto only with windows .
Thanks for your help

NumPad support (minor issue)

The Numpad numbers, and + - keys, do not work in the tracker view, but do in text fields.
Not a major issue, but makes for some easy app polish.

Windows 10
0.4b (with ctrl + - & scroll for changing tracker fields patch)

Unable to have more than one instance open

If an instance of hUGETracker is already open, trying to open another one does nothing. This seems to be because of output.log, the first instance locks the file and the second instance is unable to open it. Though nothing is ever logged to output, is it even used at all?

New keyboard shortcuts

4 unavoidable shortcuts:
-Play
-Play from cursor
-Pause
-Stop (& go to row 0)

Actually, we have to clic on the top buttons, it makes a lot of mouse move for basic features.

Better default instruments

Proposed by @RichardULZ in #5.

[...]Some better named starting preset instruments would go a long way.

Such as the 3 square duty types 12.5, 25, 50, and same 3 duty types with an envelope.
Wave samples such as the 3 squares 12.5, 25, 50% (allows quick reusable tracks!) triangle, sine, sawtooth, others.

Show Song File Name in windows title bar

Hard to know what song is loaded without it in the title bar.
Might be fine with metadata Artist - Song name,
But there could be discussion about making minor changes, saving with a 1 or 2, and not knowing the difference between open files because they only pulled the metadata.
Some programs just load both names with a separator.

Export instruments as register values

It would be nice if the actual register settings of instruments could be exported.
Just an info window, that shows how the registers will be set for instrument, would be sufficient too.

This would be mostly useful for using hUGETracker as an instrument designer for music/sound effects, that are run without the player. But it could also give some insight for hUGETracker users.

Keyboard note preview cuts off when rolling notes

When pressing over multiple keys, the design cuts the sound for any key release, not the current (last) playing note key.

This is a seemingly minor issue that has a great impact on feel and polish.

Steps to reproduce

  1. Select an instrument
  2. Press and hold Z (hear note)
  3. Press and hold X (hear new note)
  4. Release Z (sound of X is stopped)

Ideas to solve,
Keep a value of the last pressed note key, and only check/compare if that is released to stop.
If there are other factors that make the note stop (eg defocus window, escape key) perhaps keep those, in case of a missed key release.

Tone preview

-When "CTRL" is pressed on a note, preview the sound.
-When you whange the note, preview the sound.

(Like LSDj) It will give a hUGE advantage for placing notes quickly on keyboard.

Skip pattern/order while song is playing (feature)

I'll look into this.
Want to skip between orders/rows/patterns (whatever they are) while a song is playing.
Was trying to have it on click if playing, but currently am modifying double click behavior.
Working OK except for returning to the 1st pattern, player only updates the order on pattern switch, so using a hacky work around with -1 on row 63.
Better than nothing...

Sine-like vibrato (or vibrato that goes both up and down)

I've noticed that the 4xy vibrato effect doesn't seem to work properly on the wave channel. When I try to use it, it just shifts the pitch up and down once and then keeps the pitch constant. In comparison, I know XPMCK's vibrato effect works on the Game Boy's wave channel as well as the pulse channels, but I'm not sure if it's doing anything specific to make it function the same way in both cases.

(I really like the overall design of hUGETracker so far! Thanks for working on this!)

macOS Compilation Problems

Hello, I am having trouble compiling on macOS 10.13.6. I have lazarus 2.0.10 installed via MacPorts, I followed the instructions in the README file. When I get to the lazbuild step, it seems to have a problem with the output directory and where to find files and such. I am not familiar with lazarus so I don't really know how to fix this. E.g.:

Hint: (lazarus) normal output directory of package FCL 1.0.1 is not writable: "/opt/local/share/lazarus/packager/units/x86_64-darwin/"
Note: I don't want this directory to be writeable, so I'm not going to run this with sudo. I'd like to put the files somewhere in my hUGETracker directory.

I'm attaching a text file with the output of lazbuild hUGETracker.lpi --build-mode="Production Mac" &> output.txt

Any help is appreciated!
output.txt

A few nitpick-y feature ideas

Hey there, this looks amazing so far! I have a few ideas, not sure how feasible they are but just thought I'd put them here!

  • Follow Song option (the view centers itself on the currently-playing note)
  • Remappable shortcut keys
    • Ctrl+Up and Ctrl+Down to switch instruments
    • F6/Ctrl+F6 to play from start/play from cursor
    • Ctrl+Q and Ctrl+A to go up/down semitones, Ctrl+Shift+Q and Ctrl+Shift+A to go up/down octaves
    • misc. other muscle memory things like that from OpenMPT

Shift click box selection in tracker (minor issue)

More polish, you can currently drag select a region in the tracker, or hold shift and use the arrow keys, but Shift clicking would be nice to have the same as drag box select, Standard in OpenMPT.

At first, it seems like just an accessibility feature, but if you have a small screen, being able to click, scroll, and shift click, lets you select more than you normally could by dragging.
Not major, but a nice to have.

Broken Undo, sent me back ~100 actions

I was in the process of copying and pasting a block of vibrato effects in channel 2. I accidentally pasted it to the wrong row, and hit CTRL+Z to undo.

I was expecting only the last paste action to be undone. But most notes and effects in channel 2 disappeared. I was instantaneously set back roughly 50-150 undo events. Only two notes survived, which I laid around 20 minutes earlier.

My guess is that somehow the undo buffer broke or overflowed somehow. I know I hit it only once, I didn't hold it down, I didn't see half a second of undo being animated, it was instantaneous and a complete shock.

I didn't seem to be able to redo anything either. It's possible I panicked and placed a note and lost the ability to redo, but it's also possible that this bug prevents redo regardless. I've never experienced anything like this in OpenMPT in the years I've used it, so I'm pretty sure there's a serious bug here.


A possible clue, or just a coincidence: The exact point in time it reverted to, is when I kept pressing keys, trying add a "OFF" note to channel 2. I hit a bunch of keys, including Caps Lock, Tilde, plus, minus, 1-9 etc.

Linear noise channel scale

Proposed by @RichardULZ in #5

And noise presets with/without tone/envelope, although getting noise instruments in a linear scale would help more, everyone gets confused with only shift clock and dividing ratio.

I fully agree with this. Rulz has a function for mapping a linear scale onto the shift clock/div ratio values, so I'm likely gonna implement that.

error to start on ubuntu20.04

Hello , i build huGETracker with instructions.
When i go to the folder Release and run huGETracker , i have some errors:

`abien@fabien-W55xEU:~/hUGETracker/Release$ ./hUGETracker
[ERROR] Couldn't load Pixelite!!!

(hUGETracker:25875): Gtk-CRITICAL **: 09:21:02.193: IA__gtk_widget_realize: assertion 'GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
[TGtk2WidgetSet.Destroy] WARNING: There are 1 unreleased DCs, a detailed dump follows:
[TGtk2WidgetSet.Destroy] DCs: 00007FFBB2A53A40
[TGtk2WidgetSet.Destroy] WARNING: There are 9 unreleased GDIObjects, a detailed dump follows:
[TGtk2WidgetSet.Destroy] GDIOs: 00007FFBB004E4C0 00007FFBB004E440 00007FFBB004E3C0 00007FFBB004E240 00007FFBB004E6C0 00007FFBB004E5C0 00007FFBB004E540
[TGtk2WidgetSet.Destroy] gdiBitmap: 3
[TGtk2WidgetSet.Destroy] gdiBrush: 2
[TGtk2WidgetSet.Destroy] gdiFont: 2
[TGtk2WidgetSet.Destroy] gdiPen: 2 `

When i build a lot things not found.The lines in the end of building:
[9.418] (1008) 87 lines compiled, 9.4 sec
[9.418] (1022) 2 hint(s) issued

Thanks for you help.

Beta 4/5/6 not openning on windows 10

Hi !
Like said in the title, i can open only the version below beta 3.
The more recent Beta just doesn't open. its hard to describe it more, but first time windows asked me if i wanted to open it,
i said yes, and since, nothing is happening when launching the .exe

Friends doesnt have issue with the same beta

Thanks !

Access Violation Error

This window pops up when trying to launch the application:
image
Ignoring it doesn't help because the error pops up no matter what I do in the tracker.

Notes not playing in the first few seconds of a song

Sometimes when playing a song, a note or two of the first pattern will have a note that is just not played. After the first pattern or two this doesn't seem to occur again, and it's not reproducible deterministically. I think it might have something to do with the changes I made to the sound code where a sound register is written.

Copy and Paste Wave data as hex text string (Feature Idea)

BGB has a feature to investigate wave data currently in use, using the debugger's IO map,
image

Since wave channel is just 16 bytes, or rather, 32 x 4 bits, an easy to use text format might be a good alternative along side the import and export of UGw wavs.

This would also allow greater precision in editing waves as well as easier sharing.
image
2266AAEE FFFFFEEA A6668ACF FEECA633

What are your thoughts?

Play/Loop song pattern only

Like OpenMPT, previewing/looping only a song pattern is really important.
If you are editing the bottom part of it and it reach row 0x63, it goes to the next song pattern, so you have to go back all time.

Workflow based on limited joypad-like input

TL;DR LSDj controls would be cool

Longer version: as a long time LSDj user and fan of the ergonomics it sports (being able to make whole song natively with Dpad and 4 buttons) I wanted to suggest (and if agreed, help to betatest and design) a possibility for user to operate whole tracker using only few keyboard buttons / single modern gamepad, with possible benefits:

-opening up to Native Tracker Communities with familiar workflow
-increasing accessibility for those with special needs for it
-increasing customization for those in need of specific key combos/shortcuts

Joypad based trackers bring all control that user needs while keeping amount of buttons required low, utilizing often the directional pad in multiple ways.
Currently hUGETracker allows user to transpose notes by either -+1 note or +-1 octave, so its already halfway there, but it would be very welcome to have it without complicated CTR+SHIFT combo but enable editing values while holding one button, Left/Right adjusting 1 note up or down, and Up/Down adjusting octaves in same manner.
I could go on talking about possibilities but I will just end this message by saying that its entirely possible for hUGETracker to be usable while having only 4 Directional + 4 other buttons used for all various editing/selecting/erasing/pasting things users do, including changing screens/instruments/exporting!

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.