[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Denemo-devel] A Good Idea
From: |
Richard Shann |
Subject: |
Re: [Denemo-devel] A Good Idea |
Date: |
Sun, 07 Mar 2010 17:04:46 +0000 |
On Sat, 2010-03-06 at 21:16 -0600, Jeremiah Benham wrote:
> On Fri, Mar 05, 2010 at 09:58:36AM +0000, Richard Shann wrote:
> > On Thu, 2010-03-04 at 15:05 -0600, Jeremiah Benham wrote:
> > >
> > > On Mar 4, 2010, at 6:46 AM, Richard Shann <address@hidden>
> > > wrote:
> > >
> > > >
> > > > J. would you like to look at importmidi.c with a view to separating
> > > > out
> > > > the file open/new score/new staff stuff from the core function that
> > > > takes an smf_track and puts the smf_events into a given staff?
> > >
> > > I am a bit confused here. You want seperated functions. The first
> > > loads the midi into smf structure in memory.
> > given a filename, yes.
>
> So would it cause problems to store the smf data in gui->si->smf upon loading
> it.
??? Are you talking about the current load from midi file?
I am not suggesting any changes in what that does. Just breaking up the
implementation so that it uses a function xxx(smf_track_t *track) that
puts the midi data in *track into the current staff.
If you are asking about how/where to store recorded MIDI, what I am
intending to do is to store it in an smf_track_t structure. The user may
then decide they want it transformed into notation, whereupon I'll call
the routine that your importmidi.c will hopefully be providing (the user
having set the cursor to where they want the recording to be place on a
staff). The user might want to make several recordings, and choose
between them etc - all that is possible, later.
Richard
> Then would I add the events into the existing GList *midi_events in the
> DenemoStaff structure or would I create a gpointer that will later hold this
> track data. So it would be like readtrack() in importmidi.c but it would
> store into the staffstructure like this:
>
> DenemoStaff *curstaffstruct = (DenemoStaff *) gui->si->currentstaff->data;
> gint track_number=0;
> while (curstaffstruct){
> curstaffstruct->track_midi_events = smf_get_track_by_number(gui->si->smf,
> track_number++);
> curstaffstruct = curstaffstruct->next;
> }
>
>
> or do you want something like this:
>
> DenemoStaff *curstaffstruct = (DenemoStaff *) gui->si->currentstaff->data;
> gint track_number=0;
> smf_event_t *event;
> smf_track_t *selected_track;
>
> while (curstaffstruct){
> selected_track = smf_get_track_by_number(gui->si->smf, track_number++);
> while ((event = smf_track_get_next_event(mididata->selected_track)) !=
> NULL)
> curstaffstruct->midi_events = g_list_append(curstaffstruct->midi_events,
> event);
>
> curstaffstruct = curstaffstruct->next;
> }
>
>
> Jeremiah
>
- [Denemo-devel] A Good Idea, Richard Shann, 2010/03/04
- Message not available
- Re: [Denemo-devel] A Good Idea, Jeremiah Benham, 2010/03/04
- Re: [Denemo-devel] A Good Idea, Richard Shann, 2010/03/05
- Re: [Denemo-devel] A Good Idea, Jeremiah Benham, 2010/03/06
- Re: [Denemo-devel] A Good Idea,
Richard Shann <=
- Re: [Denemo-devel] A Good Idea, Jeremiah Benham, 2010/03/09
- Re: [Denemo-devel] A Good Idea, Richard Shann, 2010/03/10
- Re: [Denemo-devel] A Good Idea, Richard Shann, 2010/03/11
Re: [Denemo-devel] A Good Idea, Jeremiah Benham, 2010/03/04
[Denemo-devel] Re: A Good Idea, Richard Shann, 2010/03/09