denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Denemo-devel] Jackmidi Status?


From: Richard Shann
Subject: Re: [Denemo-devel] Jackmidi Status?
Date: Tue, 22 Sep 2009 19:06:04 +0100

On Tue, 2009-09-22 at 08:14 -0500, Jeremiah Benham wrote:
> On Tue, 2009-09-22 at 08:56 +0100, Richard Shann wrote:
> 
> > Sorry to be so slow in replying. On windows we only have internally
> > synthsized (sine wave) notes for immediate playback. As Nils said to get
> > something that sounds nicer we should probably need some synth library
> > with built-in soundfont. We would use this on GNU/Linux too when not
> > using jack. So the windows version will work, but not make nice musical
> > instrument type sounds.
> 
> I started reading up on embedding fluidsynth into denemo. It seems very
> trivial to do this but it adds another dependency. Is the plan to get
> rid of portaudio? 
I wouldn't be surprised if libfluidsynth included/used libportaudio - it
needs to do output somehow.

> If so what do users use for audio input? jack?
I don't think we can think about jack for an out-of-the-box windows
application.
> How
> well does jack work on windows? 
I have not tried hard, but I didn't get anything out of it.
> users would need to start it first unless we start it for them. I think
> newbies will scratch their heads over that for a while if we don't. Many
> will just think that it does not work.
yes, I don't think jack is for windows users, at least yet.
Richard


> 
> Jeremiah 
> 
> 
> > Choosing the color of the graphic display could be done by introducing
> > another field for the color value in the DenemoDirective, 0x0 being
> > black. You mention drawing a note in white - I don't know if this will
> > work (erasing the staff lines?) - perhaps you are thinking of this to
> > get a side effect of playing the note (using the immediate playback
> > facility)? It will be cleaner not to use modal features in scripts -
> > instead use functions that do what they say: so draw a note draws, play
> > a note plays. In Denemo these will often be linked together to provide
> > things like immediate playback mode, but we should tease them apart for
> > the scripting language.
> > 
> > Richard
> > 
> > 
> > > 
> > > Jeremiah 
> > > 
> > > 
> > > 
> > > 
> > > On Fri, 2009-08-28 at 11:37 +0100, Richard Shann wrote:
> > > > On Thu, 2009-08-27 at 16:52 -0500, Jeremiah Benham wrote:
> > > > > What is the status of jackmidi? What needs done? I have not kept up 
> > > > > with this. Richard didn't you say you had real time output working.
> > > > hmm, IIRC what I did was to create the smf structures with links from
> > > > each DenemoObject to the smf event(s) it gives rise to (in fact, did I
> > > > create a list of smf events in each DenemoObject? I think I would have,
> > > > only that would make sense).
> > > > 
> > > > 
> > > > AFAIK there are currently several ways noises can come out of Denemo:
> > > > 
> > > > Sounds made when a note is entered
> > > >       * if the open of /dev/sequencer has succeeded a midi message is
> > > >         generated by some hard-wired code and sent to that device
> > > >         [exportmidi.c]
> > > >       * otherwise a tone is generated from evaluating sin() function and
> > > >         via to portaudio routines [audiocapture.c]
> > > > 
> > > > Sounds made by hitting Play
> > > >       * if built with JACK midi data is generated for the whole (?)
> > > >         movement (cached) as smf_tracks/smf_events and then the
> > > >         smf_events are sent to the jack ports, starting with the one
> > > >         attached to the current DenemoObject [exportmidi.c, jackmidi.c]
> > > >       * if not built with JACK the smf midi data is generated for the
> > > >         selection and written to disk as a MIDI file. Then an external
> > > >         MIDI player is spawned with the filename [exportmidi.c,
> > > >         playback.c]
> > > > 
> > > > Sounds made by entering a duration (audible feedback checked)
> > > >       * tone generated from evaluating sin() function and via to
> > > >         portaudio routines [audiocapture.c]
> > > >       * no other code is currently wired to this, I suspect.
> > > > 
> > > > Misc.
> > > >       * There is an option under the Playback menu called CSound
> > > >         playback. I have never tried it.
> > > >       * The gdk_beep() function is called (e.g. on measure change with
> > > >         audible feedback checked), this operates a built-in speaker
> > > >         usually (O/S dependent action).
> > > > 
> > > > I have just pasted the above onto the denemo.org website as it occurs to
> > > > me that we could start collecting together our understanding of how
> > > > Denemo is working.
> > > > 
> > > > So, I think it is a trivial step to do functions that
> > > >       * creation of the MIDI data (the smf_events attached to objects)
> > > >         without going on to playback (ie just a cut down version of the
> > > >         current playback function)
> > > >       * outputting the MIDI data of the DenemoObject at the cursor
> > > > 
> > > > The last one may not be quite trivial, e.g. for cases such as tied notes
> > > > - you might just get the noteon without the noteoff. And then there
> > > > would be "play everything that starts at the time the current object
> > > > starts" command, which again might be quite trivial.
> > > > I am fairly sure I haven't done these. However, the other day I had a
> > > > few moments to spare and thought I would finish off the lyrics, actually
> > > > printing multiple verses in LilyPond, so I opened up exportlilypond.c
> > > > and found the code already there. I suppose it was me wot did it.
> > > > 
> > > > What I think you may remember me writing was that I had got real time
> > > > input working. I.E. The response of the MIDI via direct reading
> > > > of /dev/midi1 up to the standard of the input via JACK, just by tweaking
> > > > the rate of checking for new data. The upshot is that for my purposes I
> > > > can just startup denemo without jack and transcribe a piece of music
> > > > using the pc-keyboard for entering rhythms the MIDI keyboard for
> > > > entering pitches and listening to the result by spawning timidity.
> > > > Before, the MIDI-in would miss notes if I played in too fast. But if it
> > > > was something else, dig out the email and remind me!
> > > > 
> > > > But this is not to say that I don't have any interest in the jack
> > > > possibilities - this idea that you can add information to a score to
> > > > produce an output that has actual musical merit - could be used for a
> > > > film score etc - is intriguing.
> > > > 
> > > > Richard
> > > > 
> > > > 
> > > > 
> > > > > Where is this code. I looked at jackmidi.c and it did not pop out to 
> > > > > me. 
> > > > > 
> > > > > The reason I ask was becuase I was going to work on some ear training 
> > > > > exercises 
> > > > 
> > > > > and thought the current portaudio output does not really sound very 
> > > > > good for doing ear training. 
> > > > 
> > > > Yes, I agree, sine waves are not entirely relevant to the question of
> > > > listening to, and judging, the pitch of real instruments. Especially
> > > > judging the intervals in chords. And it would be so easy to do much
> > > > better. I think it is just a matter of #if JACK send
> > > > currentobject->smf_event to jack midi port. #endif
> > > > 
> > > > Richard
> > > > 
> > > > 
> > > > 
> > > > > 
> > > > > Jeremiah
> > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > > Denemo-devel mailing list
> > > > > address@hidden
> > > > > http://lists.gnu.org/mailman/listinfo/denemo-devel
> > > > 
> > > > 
> > > > 
> > > > _______________________________________________
> > > > Denemo-devel mailing list
> > > > address@hidden
> > > > http://lists.gnu.org/mailman/listinfo/denemo-devel
> > > 
> > 
> > 
> > 
> > _______________________________________________
> > Denemo-devel mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/denemo-devel
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]