denemo-devel
[Top][All Lists]
Advanced

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

Re: [Denemo-devel] Jackmidi Status?


From: Jeremiah Benham
Subject: Re: [Denemo-devel] Jackmidi Status?
Date: Tue, 22 Sep 2009 08:14:34 -0500

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? If so what do users use for audio input? jack? How
well does jack work on windows? 
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.

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]