05-09-2018, 11:41 AM
06-01-2018, 03:31 AM
As you said there's a single file. It's just a very big HTML file without directories and folders.
Such a big HTML file I don't even dare to open. If there was folders with notes I could maybe
download new notes and instruments myself. And if there was some bad sounding notes I
could make my own. However this is not a functional offline sequencer. Please try again?
Such a big HTML file I don't even dare to open. If there was folders with notes I could maybe
download new notes and instruments myself. And if there was some bad sounding notes I
could make my own. However this is not a functional offline sequencer. Please try again?
06-01-2018, 12:56 PM
(04-14-2018, 09:55 PM)dfhwze Wrote: [ -> ]Are we allowed to try to add some tools to it and reupload?Why does this need to be a new object, why can't it be a function object? reverse.action() is much more lengthy than reverse().
edit: my song reversal tool is available \o/
Code:'reverse': {
name: 'Reverse',
action: function () {
var reverseNotes = function (measureLength) {
/* get time index of last note that ends */
var lastNoteEndExact = 0;
for (i = 0; i < song.notes.length; i++) {
var note = song.notes[i];
if (isNumber(note.time) && isNumber(note.length) && note.time + note.length > lastNoteEndExact) {
lastNoteEndExact = note.time + note.length;
}
}
/* determine time index of end of song based on last note and grid measures */
var lastNoteEnd = Math.floor(lastNoteEndExact);
var songEnd = lastNoteEnd - lastNoteEnd % measureLength;
songEnd += lastNoteEndExact > songEnd ? measureLength : 0;
/* reverse all notes in time */
for (i = 0; i < song.notes.length; i++) {
var note = song.notes[i];
if (isNumber(note.time) && isNumber(note.length)) {
var newTime = songEnd - note.time - note.length;
song.moveNote(
note,
note.instrument,
note.instrument,
note.time,
newTime,
note.type,
note.type);
song.update(note);
}
}
keySelect.selectedIndex = 0;
keySelect.onchange();
}
/* grid measure is by default 16 (4 beats of 4 '1/4th' notes) */
/* TODO calculate measureLength from current grid settings */
reverseNotes(16);
}
},
06-01-2018, 12:58 PM
life is good :D
12-28-2018, 04:13 PM
(06-01-2018, 12:56 PM)Frank Wrote: [ -> ](04-14-2018, 09:55 PM)dfhwze Wrote: [ -> ]Are we allowed to try to add some tools to it and reupload?Why does this need to be a new object, why can't it be a function object? reverse.action() is much more lengthy than reverse().
edit: my song reversal tool is available \o/
Code:'reverse': {
name: 'Reverse',
action: function () {
var reverseNotes = function (measureLength) {
/* get time index of last note that ends */
var lastNoteEndExact = 0;
for (i = 0; i < song.notes.length; i++) {
var note = song.notes[i];
if (isNumber(note.time) && isNumber(note.length) && note.time + note.length > lastNoteEndExact) {
lastNoteEndExact = note.time + note.length;
}
}
/* determine time index of end of song based on last note and grid measures */
var lastNoteEnd = Math.floor(lastNoteEndExact);
var songEnd = lastNoteEnd - lastNoteEnd % measureLength;
songEnd += lastNoteEndExact > songEnd ? measureLength : 0;
/* reverse all notes in time */
for (i = 0; i < song.notes.length; i++) {
var note = song.notes[i];
if (isNumber(note.time) && isNumber(note.length)) {
var newTime = songEnd - note.time - note.length;
song.moveNote(
note,
note.instrument,
note.instrument,
note.time,
newTime,
note.type,
note.type);
song.update(note);
}
}
keySelect.selectedIndex = 0;
keySelect.onchange();
}
/* grid measure is by default 16 (4 beats of 4 '1/4th' notes) */
/* TODO calculate measureLength from current grid settings */
reverseNotes(16);
}
},
It's consistent with the Tools menu items of the sequencer program.
04-01-2019, 02:11 PM
Is there a way to add the "new" Eguitar with code in this?
04-02-2019, 02:07 AM
omg thanks dfh, i am berry thankful for that reverse code
04-02-2019, 10:17 AM
(04-01-2019, 02:11 PM)Sir_Guy Wrote: [ -> ]Is there a way to add the "new" Eguitar with code in this?
Is there a new instrument?
04-02-2019, 10:54 AM
Update for the Online Sequencer:
Reverse Tool ->
Reverse Tool ->
Code:
menus[2].items.reverse = {
name: 'Reverse',
action: function () {
var reverseNotes = function (measureLength) {
/* get time index of last note that ends */
var lastNoteEndExact = 0;
for (i = 0; i < song.notes.length; i++) {
var note = song.notes[i];
if (isNumber(note.time) && isNumber(note.length) && note.time + note.length > lastNoteEndExact) {
lastNoteEndExact = note.time + note.length;
}
}
/* determine time index of end of song based on last note and grid measures */
var lastNoteEnd = Math.floor(lastNoteEndExact);
var songEnd = lastNoteEnd - lastNoteEnd % measureLength;
songEnd += lastNoteEndExact > songEnd ? measureLength : 0;
/* reverse all notes in time */
for (i = 0; i < song.notes.length; i++) {
var note = song.notes[i];
if (isNumber(note.time) && isNumber(note.length)) {
var newTime = songEnd - note.time - note.length;
song.moveNote(
note,
note.instrument,
note.instrument,
note.time,
newTime,
note.type,
note.type);
song.update(note);
}
}
keySelect.selectedIndex = 0;
keySelect.onchange();
}
/* grid measure is by default 16 (4 beats of 4 '1/4th' notes) */
/* TODO calculate measureLength from current grid settings */
reverseNotes(16);
}
};
menuContainer = $('#menubar_menus');
menuContainer.empty();
for (var i = 0; i < menus.length; i++) {
(function(i) {
var menu = menus[i];
var menuTitle = menu.name
var menuElement = $('<div id="menu_' + menu.name + '" class="menu_title">' + menu.name + '</div>');
createMenuPopup(menuElement, menuElement, menu);
menuContainer.append(menuElement);
})(i);
}
createMenus();
04-02-2019, 10:57 AM
(04-14-2018, 09:55 PM)dfhwze Wrote: [ -> ] hey p.s. im severely stupid so can you explain how to plug this script in?Are we allowed to try to add some tools to it and reupload?
edit: my song reversal tool is available \o/
Code:'reverse': {
name: 'Reverse',
action: function () {
var reverseNotes = function (measureLength) {
/* get time index of last note that ends */
var lastNoteEndExact = 0;
for (i = 0; i < song.notes.length; i++) {
var note = song.notes[i];
if (isNumber(note.time) && isNumber(note.length) && note.time + note.length > lastNoteEndExact) {
lastNoteEndExact = note.time + note.length;
}
}
/* determine time index of end of song based on last note and grid measures */
var lastNoteEnd = Math.floor(lastNoteEndExact);
var songEnd = lastNoteEnd - lastNoteEnd % measureLength;
songEnd += lastNoteEndExact > songEnd ? measureLength : 0;
/* reverse all notes in time */
for (i = 0; i < song.notes.length; i++) {
var note = song.notes[i];
if (isNumber(note.time) && isNumber(note.length)) {
var newTime = songEnd - note.time - note.length;
song.moveNote(
note,
note.instrument,
note.instrument,
note.time,
newTime,
note.type,
note.type);
song.update(note);
}
}
keySelect.selectedIndex = 0;
keySelect.onchange();
}
/* grid measure is by default 16 (4 beats of 4 '1/4th' notes) */
/* TODO calculate measureLength from current grid settings */
reverseNotes(16);
}
},