Old 02-11-2011, 08:23 AM   #441
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 22,754
Default

Quote:
Originally Posted by EvilDragon View Post
That was done already, I think. In a way.
I have a regular peek thru the frs and dont recall anything that looked like that. Linky, please?
ivansc is offline   Reply With Quote
Old 02-11-2011, 08:49 AM   #442
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

http://forum.cockos.com/project.php?issueid=2739

At least one part of it...
EvilDragon is offline   Reply With Quote
Old 02-11-2011, 04:54 PM   #443
Eyes
Human being with feelings
 
Eyes's Avatar
 
Join Date: Nov 2010
Location: Australia
Posts: 1,012
Default

I will make an FR for track based editing instead of item based editing later today, as there seems to be enough want to justify the FR.
Eyes is offline   Reply With Quote
Old 02-11-2011, 05:08 PM   #444
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

Quote:
Originally Posted by Eyes View Post
I will make an FR for track based editing instead of item based editing later today, as there seems to be enough want to justify the FR.
I'm in for sure.
nofish is offline   Reply With Quote
Old 02-11-2011, 06:34 PM   #445
chriscomfort
Human being with feelings
 
chriscomfort's Avatar
 
Join Date: Aug 2009
Location: NYC
Posts: 1,805
Default

Quote:
Originally Posted by Eyes View Post
I will make an FR for track based editing instead of item based editing later today, as there seems to be enough want to justify the FR.
There are already a few. The one Evil Dragon mentions above and then this
http://forum.cockos.com/project.php?...3178#note14549
__________________
http://chriscomfortmusic.com
chriscomfort is offline   Reply With Quote
Old 02-11-2011, 11:54 PM   #446
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 22,754
Default

Y`know this really highlights the problem with FRs.

Here we have two existing FRs both good in their way, but after the discussion in this thread it woul seem that neither really pinpointed the missing functionality in a way we all understood and of course with every bit of discussion the end goals of the majority became clearer.

I for one struggle to keep up with all the feature requestsd because of this.

Heh Heh - maybe what we need is a FR Moderator who in turn has a FR Administrator to tidy up all the loose ends and amalgamate FRs?

THEN we could all argue about the choice of what got amalgamated and what didnt.


Democracy? Meh!


(P.S. For those of you with a Sense of Humour Bypass a lot of this is written tongue firmly in cheek)
ivansc is offline   Reply With Quote
Old 02-12-2011, 06:03 PM   #447
Eyes
Human being with feelings
 
Eyes's Avatar
 
Join Date: Nov 2010
Location: Australia
Posts: 1,012
Default

Quote:
Originally Posted by chriscomfort View Post
There are already a few. The one Evil Dragon mentions above and then this
http://forum.cockos.com/project.php?...3178#note14549
Thanks for the info mate, I remember ED's but not that one.



I thought about it and decided to make a new one anyway, but to make this one very detailed and based on the discussions in this thread from the last two weekss:

http://forum.cockos.com/project.php?issueid=3243

Mod's if you consider that a duplicate I apologize in advance, I tried to make it detailed and put in more info which outlines different behavior from previous requests.


Also created a separate FR for track based midi note colouring, which was partially outlined in first FR.

http://forum.cockos.com/project.php?issueid=3242


Edit: Sorry posted wrong link. Correct link for track based editing is http://forum.cockos.com/project.php?issueid=3243

Last edited by Eyes; 02-13-2011 at 12:00 AM.
Eyes is offline   Reply With Quote
Old 02-12-2011, 07:45 PM   #448
typewriter
Human being with feelings
 
Join Date: Jun 2007
Posts: 528
Default Rewire Midi Ports

More Rewire Midi ports would be a huge plus.

Right now there are only 16 midi channels (1 Port) - 4 Ports/64 midi channels would be possible.

Sure you can get more midi channels with additional midi loop back tools, but this is real pain...

And by the way - Justin promised more rewire midi ports a long time ago in this forum.
typewriter is offline   Reply With Quote
Old 02-13-2011, 04:17 AM   #449
jnif
Human being with feelings
 
jnif's Avatar
 
Join Date: Dec 2008
Posts: 2,111
Default

Quote:
Originally Posted by Eyes View Post
I thought about it and decided to make a new one anyway, but to make this one very detailed and based on the discussions in this thread from the last two weekss:

http://forum.cockos.com/project.php?issueid=3243
Some important details are still missing form this new FR.

Quote:
Originally Posted by Eyes
3) Ability to insert midi notes at any point in a track from the Piano roll view, even if there is no clip at this position. If a clip exists, this is updated with the added notes. If no clip exists, a clip is created with that relevant midi information. If a clip is nearby, this is extended.
This part of the FR means that "multi-item editing" functionality is needed. Defining multi-item editing behavour is not as simple as it may seem at first. For example, definition of "nearby item" is not clear and rules for extending items have to be thought out. And furthermore, this new FR explains only inserting notes. There are also other essential editing command like select/move/modify/copy/paste. For example what about selecting notes: should it be possible to select notes freely from any item and should it be possible to select notes from multiple items at the same time? I would say yes to both.

We can try to discuss about these details here to help developers and other users better understand the details and implications of this FR. We may even come up with some new ideas when these details are defined with the help of this great community.

So, may I start this discussion with some thoughts:
1. Overlapping items.
Current editing behaviour in Reaper allows overlapping MIDI items on the same track. Also Reaper has a Free Itemp Position Mode (FIPM) where multiple MIDI (or audio) items can be freely positioned on top of each other on the same track. It is probably not wise to remove these existing features. Thus, MIDI editor has to support editing of overlapping items and that will add some complexity to multi-item editing. Let's see if we can come up with a user-friendly solution.

2. Concept of "active item" in MIDI editor.
Current MIDI editor behaviour is based on concept of "active item". Currently only one active item is allowed at a time. All editing actions are directed to the active item. The new FR by Eyes is somewhat implying that all items on single track should be automatically "active for editing". That would be nice in many use cases. However, in some use cases (especially with overlapping items) it may be better to let user define which items are active for editing and which are "locked" or "ghosted". So, how could a user easily define the set of active items and how these active items should be visually indicated in the MIDI editor? One possibility is to extend the current functionality of the Filter events window and allow activation of multiple items there. However, as already pointed out in this thread, the current Filter events windows is very awkward to use and needs a major overhaul. Another solution could be that active items are somehow selected and visually indicated in the arrange view.


jnif
jnif is offline   Reply With Quote
Old 02-13-2011, 01:17 PM   #450
jnif
Human being with feelings
 
jnif's Avatar
 
Join Date: Dec 2008
Posts: 2,111
Default Multi-item MIDI editing

Here are some detailed descriptions and pseudo-code for multi-item MIDI editing.

New functionality required
Method to easily select and change which items are visible in MIDI Editor.
Method to easily select and change which items are active for editing in MIDI Editor. Notes/events of inactive visible items are grayed out and locked.
Possible actions/options/mousemodifiers/menus/toolbarbuttons for item visibility and edit activation:
- all
- all on selected tracks
- all on last touched track
- selected
- last touched
Item Border Lock option to disbale automatic extending of items.
Multi Track Edit option to allow free editing of active items on different tracks. If this is disabled, then all editing actions are directed to a single track.

Insert Note

Methods to insert notes
  • Double-click piano-roll (default action)
  • Live recording. Some special rules are needed for inserting notes while recording. -> Definition of live recording behaviour is not included here.
  • Step recording (function keys or MIDI input)
  • Action (toolbar button, keyboard shortcut, mouse modifiers)


Behaviour

SL = Start Location (note on)
EL = End Location (note off)
IBL = Item Border Lock
LTI = Last Touched Item
MTE = Multi Track Edit
NISD = nearest item search distance (How far to search for nearest item. NISD should be configurable in the MIDI editor)

Only final location of note is used to define SL and EL. Intermediate note positions and lengths during insert operation (mouse drag) are not used.

Code:
insertNoteAction()
	targetItem = findNearestItem(noteToBeInserted)
	if  targetItem == null
		targetItem = createNewItem(location of noteToBeInserted)
	insertNote(noteToBeInserted, targetItem)
	
	
procedure insertNote(NOTE, ITEM)
	if (NOTE.SL is inside ITEM) and (NOTE.EL is inside ITEM)
		insert NOTE to ITEM
	else if (NOTE.SL is inside item)
		if IBL == enabled
			shorten NOTE (set NOTE.EL to end of ITEM)
			insert NOTE to ITEM
		else
			extend end of ITEM to NOTE.EL
			insert NOTE to ITEM
	else if (NOTE.EL is inside ITEM)
		if IBL == enabled
			discard NOTE
		else
			extend start of ITEM to NOTE.SL
			insert NOTE to ITEM
	else // start and end of note outside item
		if IBL == enabled
			discard NOTE
		else if (NOTE.SL is after ITEM)
			extend end of ITEM to NOTE.EL
			insert NOTE to ITEM
		else if (NOTE.EL is before ITEM)
			extend start of ITEM to NOTE.SL
			insert NOTE to ITEM
		else // note spans over item
			extend end of ITEM to NOTE.EL
			extend start of ITEM to NOTE.SL
			insert NOTE to ITEM

			
function findNearestItem(NOTE) return item
	if MTE == enabled
		searchArea = all active items on active tracks
	else
		searchArea = all active items on LTI.track	
	if NOTE.SL is inside LTI
		return LTI
	else
		itemlist = find items that have NOTE.SL inside them
		if itemlist.length == 0
			itemlist = find nearest item start or end within NISD
			if itemlist.length == 0
				return null
			else if itemlist.length == 1
				return itemlist[0]
			else // multiple items within same distance
				// continue search
		else if itemlist.length == 1
			return itemlist[0]
		else // NOTE.SL is inside multiple items
			itemlist = find item from the itemlist that has earliest start
			if itemlist.length == 1
				return itemlist[0]
			else // multiple items with same start location
				//continue search
		itemlist2 = find item in itemlist that has notes nearest NOTE.pitch (search within 1 octave)
		if itemlist2.length == 0 
			return itemlist[0] // Stop searching. Just return the first item from itemlist.
		else if itemlist2.length == 1
			return itemlist2[0]
		else // multiple items with notes in the same pitch distance
			return itemlist2[0] // Stop searching. Just return the first item from itemlist2.
	//TODO: Add multi track search cases. Prefer items on same track as LTI.
Copy/Cut
Store Source Item information of each copied/cut note to clipboard.

Paste
Add copied/cut notes from clipboard to items using same rules as in insert note action.
Options for paste target item behaviour:
1. Last touched item. (default)
- All notes will be pasted to the same item.
- Cursor location is used as reference point when searching the nearest item.
2. Source item.
- Paste each note separately so that each note's source item is used as the last touched item when searching the target item for that note.

Move
Same item target behaviour as in Paste operation except that "Source item" shoud be the default target.

Ctrl+drag copy
Same item target behaviour as in Paste operation except that "Source item" shoud be the default target.

Change note length
Extending note length beyond item end will extend the item if IBL is not enabled

Select note(s)
Change Last Touched Item.
What is the Last Touched Item if notes in different items are selected.?

Move cursor
Change Last Touched Item to the item under cursor.
If there is no item under cursor then do not change Last Touched Item.

Record
TBD

CC events, Program changes, etc.
Inserting works like inserting notes (no length -> event start location == event end location)
Any other actions to be considered in detail?


jnif

Last edited by jnif; 11-20-2012 at 11:09 AM. Reason: typo fix
jnif is offline   Reply With Quote
Old 02-13-2011, 06:16 PM   #451
krahosk
Human being with feelings
 
Join Date: Jul 2009
Location: Canada
Posts: 2,371
Default

Thank you Jnif for demonstrating how it can be done.
krahosk is offline   Reply With Quote
Old 02-13-2011, 09:18 PM   #452
mikeroephonics
Human being with feelings
 
mikeroephonics's Avatar
 
Join Date: Nov 2006
Posts: 2,533
Default

Dear Jnif, you are my hero. That is all.
__________________
Please check out these MIDI requests: http://forum.cockos.com/showthread.php?t=103192
Thanks.
mikeroephonics is offline   Reply With Quote
Old 11-15-2011, 10:46 AM   #453
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Silent midi updates would be great, see my signature. The important difference to what we have now is: The sequencer NEVER has to stop, which is important for live use and having fun!
TonE is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:00 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.