Thanks, everyone, for the their answers. All were very helpful. Just
to double-check, I'm thinking now, and this may be a bit crude, of
handling the editor as a multidimensional array containing the custom
note class.

MIDI has a limited number of notes allowed (0-127 for most
applications), and I would like the user to be able to add and delete
from the length of the piece as they see fit. So, it seems that jsut
might do the trick. I c an figure out the rest of the functions
(selecting, deselecting, etc.)

But, what's the word on that? Too crude? Too much processor powere
needed to manage? Just want to make sure I'm going in the right
direction before I get too far into it.

Thanks!

--
Philip Regan
[EMAIL PROTECTED]
http://homepage.mac.com/pregan
REALBasic 2005r4, Applescript
Mac OS 10.3.9

On 3/27/06, Tim Hare <[EMAIL PROTECTED]> wrote:
> Without knowing anything about your data structure, I would offer this
> comment.  It would seem that the sequence of the notes is your primary means
> of accessing and referencing them.  That is, it is your primary key.  Unless
> you have another means of "getting to" the notes, a dictionary will not help
> much.  It will suffer from the same problem as arrays, and maybe even be
> more difficult to use.
>
> The issue is, how do you reference the "nth" note?  Does each note have some
> unique identifier, apart from the array index (sequence number)?  If you
> create some identifier other than sequence, then a dictionary may be the way
> to go.  Otherwise, stick with arrays.
>
> If you think of the array as a set of pointers to your note data, then the
> array index provides an additional piece of information (a sequence number)
> that is not stored as part of the note.  This allows you to resequence
> (insert, delete, move) a note without modifying the note data, or having to
> modify all the notes that follow it.  You simply manipulate the set of
> pointers - your array.
>
> To remove a pointer from the array, you copy all the subsequent pointers
> down by one, and trim the last one off the array.  To insert a pointer, you
> increase the array by one, find the spot to insert and copy all the
> subsequent pointers into the next higher position in the array.  Moving a
> note is a remove followed by an insert.
>
> To do this with a dictionary, you would have to store the sequence number as
> part of the note data, and then find and modify every subsequent note to
> reflect the change in sequence.  If you use the sequence number as the
> dictionary key, then you have to delete and re-add each note as you change
> the sequence.
>
> I'd stick with the array, unless you want to try your hand at a linked list
> of note objects.
>
> Now, you might be able to use a dictionary for selected notes.  Store the
> index number for each selected note.  Might help...
>
> Tim
>
>
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] Behalf Of Philip
> > Regan
> > Sent: Monday, March 27, 2006 9:59 AM
> > To: [email protected]
> > Subject: Hobbyist's question about managing objects
> >
> >
> > Howdy--
> >
> > I've been writing as my main project a simple MIDI editor off and on
> > for the past year or so. As my programming skills improve, I tend to
> > go back and rewrite certain parts of the editor.
> >
> > Right now, I'm doing a major rebuild of the editor interface (the part
> > where the user adds/clicks/drags/deletes notes) and I'm coming to a
> > conceptual question/problem that I'd like to ask folks on the list,
> > and it regards how to manage objects whose order can be changed at the
> > whim of the user.
> >
> > Currently, I manage notes (a custom class) in a set of arrays,
> > everything from all the notes themselves, selecting, deselecting, etc.
> > This is fine as long as the notes remain in their sequential order,
> > and is particularly handy when it comes to playing and writing
> > binaries of the song. It seems to work fine so far, but I'm hitting
> > some roadblocks when it comes to selecting and deselecting multiple
> > objects that I'm pretty sure are due to them being held in an array.
> >
> > Since the order of the notes and their selection can changed by the
> > user, I'm thinking that a Dictionary might be the way to go. The only
> > part that's truly fuzzy to me is how to put them all into sequential
> > order when the user wants to play and save their files. Beyond that,
> > the Dictionary seems to be the way to go with object management in
> > this application.
> >
> > Before I get elbow deep into changing over my code, I thought I'd ask
> > the group if that seems like the way to go, how they would approach
> > it, maybe there's a more advanced approach I'm not aware of, etc.
> >
> > Thanks!
> > --
> > Philip Regan
> > [EMAIL PROTECTED]
> > http://homepage.mac.com/pregan
> > REALBasic 2005r4, Applescript
> > Mac OS 10.3.9
> > _______________________________________________
> > Unsubscribe or switch delivery mode:
> > <http://www.realsoftware.com/support/listmanager/>
> >
> > Search the archives of this list here:
> > <http://support.realsoftware.com/listarchives/lists.html>
> >
> >
>
>
> _______________________________________________
> Unsubscribe or switch delivery mode:
> <http://www.realsoftware.com/support/listmanager/>
>
> Search the archives of this list here:
> <http://support.realsoftware.com/listarchives/lists.html>
>


--
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to