Re: MIDI Standard Specs WAS Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-08 Thread Pedro Lopez-Cabanillas
On Monday, July 6, 2009, Graham Goode wrote:
> For GM1 and GM2 specs see http://en.wikipedia.org/wiki/General_MIDI,
> http://www.midi.org/techspecs/gm.php
> For GS download a Roland Sound Canvas manual from
> http://www.edirol.net/products/en/archives.html and see the appendix
> lists
> For XG try
> http://web.archive.org/web/20060926124939/http://www.yamaha.co.uk/xg/readin
>g/pdf/xg_spec.pdf

Worth to mention:
http://home.roadrunner.com/~jgglatt/
(includes a complete and free MIDI specification reference).

There are printed books on bookstores containing the whole MIDI specification. 
I guess they may be a better investment than buying the overpriced spec from 
midi.org. For instance:

MIDI Programmers Handbook
http://books.google.com/books?id=cakdHQAACAAJ

And more...
http://books.google.com/books?q=MIDI+specification

Regards,
Pedro


___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: minor FluidSynth sponsorship opportunity (Re: [fluid-dev] Tickets, project status, and 1.1.0)

2009-07-08 Thread josh

Hello Kevin,

Quoting Kevin Fishburne :

  j...@resonance.org wrote: Hello Kevin,

I did some research on these parameters by also looking at the source
code.  The FluidSynth C API differs as far as the allowable ranges for
some reverb/chorus parameters in comparison to the command interface.
This seems like a bug to me.

 Thanks Josh, hopefully soon you'll all be able to check out my new
app, to which I've found nothing comparable yet. QSynth gets the job
done, but it has some bugs and SoundFont management isn't really
present yet. I sent you the $25, so spend it wisely (on beer, for
example).



I'd like to see your app.  It sounds like a useful program.  Swami  
also has the goal of providing SoundFont management and library  
support, but after all these years in development, it still isn't  
complete.




- rev_setlevel command takes -31.0 to 31.0 but the code clamps this
value between 0.0 and 1.0, so that is the actual usable range.
 When you say "clamps" do you mean it scales the input values from
the -31.0 to 31.0 range to the 0.0 to 1.0 range or that it clips
input values that are outside the 0.0 to 1.0 range? For example, were
the former the case it would do something like:

realvalue = (inputvalue + 31) / 63

Were the latter the case then it would assume that a value less than
0.0 is equal to 0.0 and a value higher than 1.0 is equal to 1.0. I
need to know if I should feed the command values between 0.0 and 1.0
or -31.0 to 31.0.



The latter is the case.  If any value less than 0.0 is received, 0.0  
is assumed, above 1.0, 1.0 is assumed.




- cho_set_nr is not Chorus delay from what I know.  Its actually the
number of Chorus "voices".
 I pulled that info from the Chorus section of the UserManual on the
Documentation page. It describes the /cho_set_nr/ command as "Use n
delay lines (default 3)". Is there such a command/parameter as
"delay," or is cho_set_nr the only other available setting for chorus
other that what we've already discussed? If so, should it better be
described as "chorus voices" then?



The Chorus code was adapted from some other existing code.  From what  
I can tell there was originally a Delay parameter which was separate  
from the NR parameter.  It likely controlled when the effect actually  
kicked in or something.  It is not used in FluidSynth.  It seems to me  
like number of chorus "delay lines" and number of chorus "voices"  
describe the same thing.  I'm definitely not an expert on the Chorus  
effect, so perhaps my terminology is faulty also.  At any rate,  
increasing NR causes the chorus effect to have more voices.





Thanks for the excellent info and I'll post the source and executable
of my app as soon as it's ready for use. It's programmed in GAMBAS,
which although is an awesome language/app it doesn't seem to be as
widely used as I'd like it to be. Luckily the GAMBAS runtime is in
the Debian and Ubuntu repositories so my app should be immediately
usable by newbies.




Great.  Glad you are finding FluidSynth useful and improving upon it.



KEVIN FISHBURNE

Eight Virtues

www:
e-mail:
phone:  http://sales.eightvirtues.com[1]
 sa...@eightvirtues.com[2]
 (770) 853-6271



Cheers!
Josh Green



___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-08 Thread josh

Quoting David Henningsson :

Anyway, Ubuntu Karmic is already past DebianImportFreeze, so I think it
is better to make sure we get a good 1.1.0 into Karmic+1. This means a
deadline for 1.1.0 no later than november 2009. Does this seem okay to
you?


Sure, that sounds like a good deadline.


Of course, if we're finished in september, that would be even better.
FluidSynth are distributed to many more places than just Ubuntu.



Yeah, I guess I should have said..  Sounds like a good worst case  
deadline.  I'm all for getting a release out before then.



Done.  I now have 2 tickets :)


Eases the burden somewhat, huh? :-)



Well I didn't really consider all those tickets to be assigned to me  
in the first place ;)



// David




Cheers!
Josh



___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: minor FluidSynth sponsorship opportunity (Re: [fluid-dev] Tickets, project status, and 1.1.0)

2009-07-07 Thread Kevin Fishburne




j...@resonance.org wrote:
Hello Kevin,
  
  
I did some research on these parameters by also looking at the source
code.  The FluidSynth C API differs as far as the allowable ranges for
some reverb/chorus parameters in comparison to the command interface. 
This seems like a bug to me.
  
  

Thanks Josh, hopefully soon you'll all be able to check out my new app,
to which I've found nothing comparable yet. QSynth gets the job done,
but it has some bugs and SoundFont management isn't really present yet.
I sent
you the $25, so spend it wisely (on beer, for example).
-
rev_setlevel command takes -31.0 to 31.0 but the code clamps this value
between 0.0 and 1.0, so that is the actual usable range.
  

When you say "clamps" do you mean it scales the input values from the
-31.0 to 31.0 range to the 0.0 to 1.0 range or that it clips input
values that are outside the 0.0 to 1.0 range? For example, were the
former the case it would do something like:

realvalue = (inputvalue + 31) / 63

Were the latter the case then it would assume that a value less than
0.0 is equal to 0.0 and a value higher than 1.0 is equal to 1.0. I need
to know if I should feed the command values between 0.0 and 1.0 or
-31.0 to 31.0.
- cho_set_nr is not Chorus delay from what I know.  Its
actually the number of Chorus "voices".
  

I pulled that info from the Chorus section of the UserManual on the
Documentation page. It describes the cho_set_nr command as "Use
n delay lines (default 3)". Is there such a command/parameter as
"delay," or is cho_set_nr the only other available setting for chorus
other that what we've already discussed? If so, should it better be
described as "chorus voices" then?

Thanks for the excellent info and I'll post the source and executable
of my app as soon as it's ready for use. It's programmed in GAMBAS,
which although is an awesome language/app it doesn't seem to be as
widely used as I'd like it to be. Luckily the GAMBAS runtime is in the
Debian and Ubuntu repositories so my app should be immediately usable
by newbies.



  

  Kevin
Fishburne
  

  


  

  Eight Virtues
  

  


  

  www:
e-mail:
phone:
   http://sales.eightvirtues.com
 sa...@eightvirtues.com
 (770) 853-6271

  






___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-07 Thread David Henningsson
j...@resonance.org skrev:
> Quoting David Henningsson :
>> j...@resonance.org skrev:
>> Perhaps you could send me your code as a svn diff and we could work on
>> it that way until it is ready for checkin - which doesn't have to mean
>> that everything has to be completed, just that things aren't much more
>> broken than they are currently.
> 
> Let me put a little more work into the current changes, so it builds and
> works for the most part.  Then I'll send it your way.  I'll try and do
> this in the next few days.

Works for me. Of course I'm not made of time either, but I think I can
spare some every now and then :-)

>> I'm personally neither for nor against glib, so I don't mind whether we
>> depend on it or not. But if we borrow code from glib I suggest we put it
>> in a separate directory. At the same time, we should review fluid_list /
>> fluid_hash and change it to newly updated glib code.
> 
> Sounds good.

Yep, until we're looking for volunteers and everybody looks down at the
floor ;-)

>>> Sponsorship would be an interesting thing to look into.  Setting up
>>> paypal donations could also be good or having a bounty system (users
>>> pledge an amount for a certain task).  I have not yet seriously
>>> attempted making money at working on free software, though it has
>>> consumed much of my time in the past 10 years.  The need to make an
>>> income definitely affects how much time I have available for free
>>> software projects though, so receiving money for working on FluidSynth
>>> would definitely give me more time to work on it.

We also have Google Summer Of Code, but I'm not sure that FluidSynth is
big enough to attract their attention. (And we need a student as well, btw.)

>> Seems like you just got your first $25 then :-)
> 
> Indeed!  It reminds me of how little effort I've put into making money
> on free software.  For some reason it has always been more difficult for
> me to justify getting paid to work on free software, versus "real
> work".  Seems like an ideal situation though!



People make software for free because it warms the heart (giving back to
the community that has given him/her good software), and for fun. But
not everyone can work on the fun parts, or GNOME would have hundreds of
3D screensavers (oh wait, bad example ;-) ).

But for the boring work that nobody wants to do for free, adding money
as a compensation seems like a good idea to me. And, it does speed up
the rate of which things are being done, which is also important.



>> Anyway, Ubuntu Karmic is already past DebianImportFreeze, so I think it
>> is better to make sure we get a good 1.1.0 into Karmic+1. This means a
>> deadline for 1.1.0 no later than november 2009. Does this seem okay to
>> you?
> 
> Sure, that sounds like a good deadline.

Of course, if we're finished in september, that would be even better.
FluidSynth are distributed to many more places than just Ubuntu.

 - Half of ticket #24, will require some kind of "soft-stop" feature in
 the audio drivers. Problems: I can fix alsa and probably also jack
 drivers, but I don't have a clue about how to fix the rest of them.

 Any thoughts?
>>>
>>> It seems like if the player stops and all voices have stopped, that
>>> means nothing else will sound, except for remaining reverb/chorus
>>> effect.  I've been thinking it would be nice to have some API for
>>> checking the current number of active voices.  This could also be used
>>> for the logic which determines when a song has ended.  Perhaps some sort
>>> of callback could be triggered when the song ends?
>>
>> You're talking about the other half of the ticket, I'm talking about
>> fixing the audio driver part. For ALSA the problem is that we never call
>> snd_pcm_drain.
>>
> Perhaps I didn't understand that half of it then.  So this is related to
> not flushing all the audio from the audio driver's perspective.  Should
> this be done in the close() method?

To not get too much off-topic I'll continue this part as a comment to
ticket #24: http://fluidsynth.resonance.org/trac/ticket/24

>> Great! Could you also change the tickets that are assigned to you (i e
>> jgreen/assigned) to something else (e g unassigned/new) to indicate
>> you're not working on them?
> 
> Done.  I now have 2 tickets :)  

Eases the burden somewhat, huh? :-)

// David


___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-07 Thread josh

Quoting David Henningsson :

j...@resonance.org skrev:


Sure, if you would like to work on it too, that would be great.  I was a
bit apprehensive about checking things in in a broken state.  How do you
want to go about collaborating on things?  Do you think we should create
a separate "work" branch or just assume that subversion trunk will be
broken sometimes?  Once we decide this, I can check my changes in and
describe what I'm doing.


That's a difficult question and I don't mind other people speaking up on
this as well. It is important that the svn is not completely broken when
I want to work on things, but we should also make it as easy as
collaborate as possible.

Perhaps you could send me your code as a svn diff and we could work on
it that way until it is ready for checkin - which doesn't have to mean
that everything has to be completed, just that things aren't much more
broken than they are currently.




Let me put a little more work into the current changes, so it builds  
and works for the most part.  Then I'll send it your way.  I'll try  
and do this in the next few days.




Yeah..  It will make things more difficult for us.  glib is nice and
convenient for many of these data structures.  We could make a little
standalone glib compatibility library which gets statically linked in,
in which we borrow code directly from glib.  The license is compatible,
so there shouldn't be any problem with that.  It seems like one of the
main things going for FluidSynth in certain environments is the minimal
amount of dependencies that it has.


I'm personally neither for nor against glib, so I don't mind whether we
depend on it or not. But if we borrow code from glib I suggest we put it
in a separate directory. At the same time, we should review fluid_list /
fluid_hash and change it to newly updated glib code.




Sounds good.



Sponsorship would be an interesting thing to look into.  Setting up
paypal donations could also be good or having a bounty system (users
pledge an amount for a certain task).  I have not yet seriously
attempted making money at working on free software, though it has
consumed much of my time in the past 10 years.  The need to make an
income definitely affects how much time I have available for free
software projects though, so receiving money for working on FluidSynth
would definitely give me more time to work on it.


Seems like you just got your first $25 then :-)




Indeed!  It reminds me of how little effort I've put into making money  
on free software.  For some reason it has always been more difficult  
for me to justify getting paid to work on free software, versus "real  
work".  Seems like an ideal situation though!




What particular features are you trying to get into the next version of
Ubuntu?  Perhaps we could release another 1.0.x version if need be,
which include these changes.


I was thinking of the sample timers, the fast-render feature and
possibly the new default controller values (yet to be implemented).
Anyway, Ubuntu Karmic is already past DebianImportFreeze, so I think it
is better to make sure we get a good 1.1.0 into Karmic+1. This means a
deadline for 1.1.0 no later than november 2009. Does this seem okay to you?




Sure, that sounds like a good deadline.



- Half of ticket #24, will require some kind of "soft-stop" feature in
the audio drivers. Problems: I can fix alsa and probably also jack
drivers, but I don't have a clue about how to fix the rest of them.

Any thoughts?


It seems like if the player stops and all voices have stopped, that
means nothing else will sound, except for remaining reverb/chorus
effect.  I've been thinking it would be nice to have some API for
checking the current number of active voices.  This could also be used
for the logic which determines when a song has ended.  Perhaps some sort
of callback could be triggered when the song ends?


You're talking about the other half of the ticket, I'm talking about
fixing the audio driver part. For ALSA the problem is that we never call
snd_pcm_drain.



Perhaps I didn't understand that half of it then.  So this is related  
to not flushing all the audio from the audio driver's perspective.   
Should this be done in the close() method?




Perhaps adding a
special user, as you suggested, is the best option.

Can you do that? Call it "N/A" and let it be the default user when
someone is creating a ticket.

How about "unassigned"?  I'll add that.


Great! Could you also change the tickets that are assigned to you (i e
jgreen/assigned) to something else (e g unassigned/new) to indicate
you're not working on them?




Done.  I now have 2 tickets :)  I'm planning on working on some of the  
other ones, but since I'm not currently doing so, they are open for  
someone to grab.




// David




Cheers!

Josh



___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-07 Thread David Henningsson
j...@resonance.org skrev:
> Hi David,
> 
> Quoting David Henningsson :
>> j...@resonance.org skrev:
>>> Good questions!  I converted a lot of functions over in fluid_synth.c to
>>> use the thread safe lock free event queue if not called by the synthesis
>>> thread, as we discussed.  Its not currently buildable though, and there
>>> is still a bit of work to do (it has started to feel a little bit like
>>> an overhaul).  I tested things with basic note-on/note-off messages
>>> through the queue, which worked fine.  I think we should try and make
>>> FluidSynth 1.1.0 completely thread safe (as far as crashes and potential
>>> synthesis anomalies).
>>
>> Okay. I agree that it would be dumb to leave the thread safety
>> half-implemented for 1.1.0. But if you feel that you don't have the time
>> to work with it, perhaps we can work on it together. Let me know if you
>> would like that.
> 
> Sure, if you would like to work on it too, that would be great.  I was a
> bit apprehensive about checking things in in a broken state.  How do you
> want to go about collaborating on things?  Do you think we should create
> a separate "work" branch or just assume that subversion trunk will be
> broken sometimes?  Once we decide this, I can check my changes in and
> describe what I'm doing.

That's a difficult question and I don't mind other people speaking up on
this as well. It is important that the svn is not completely broken when
I want to work on things, but we should also make it as easy as
collaborate as possible.

Perhaps you could send me your code as a svn diff and we could work on
it that way until it is ready for checkin - which doesn't have to mean
that everything has to be completed, just that things aren't much more
broken than they are currently.

> Yeah..  It will make things more difficult for us.  glib is nice and
> convenient for many of these data structures.  We could make a little
> standalone glib compatibility library which gets statically linked in,
> in which we borrow code directly from glib.  The license is compatible,
> so there shouldn't be any problem with that.  It seems like one of the
> main things going for FluidSynth in certain environments is the minimal
> amount of dependencies that it has.

I'm personally neither for nor against glib, so I don't mind whether we
depend on it or not. But if we borrow code from glib I suggest we put it
in a separate directory. At the same time, we should review fluid_list /
fluid_hash and change it to newly updated glib code.

>>> It
>>> would be great to be able to just work on free software projects and
>>> make money at it too ;)
>>
>> I read somewhere that the Daniel Langlois Foundation sponsored
>> FluidSynth a while ago. Perhaps you could see if they're willing to do
>> that again.
> 
> Sponsorship would be an interesting thing to look into.  Setting up
> paypal donations could also be good or having a bounty system (users
> pledge an amount for a certain task).  I have not yet seriously
> attempted making money at working on free software, though it has
> consumed much of my time in the past 10 years.  The need to make an
> income definitely affects how much time I have available for free
> software projects though, so receiving money for working on FluidSynth
> would definitely give me more time to work on it.

Seems like you just got your first $25 then :-)

>>> I don't think we should rush the release of 1.1.0 at this point though,
>>> since there aren't a huge amount of features that are being held back.
>>> I'd much rather get things right and have a more well rounded FluidSynth
>>> worthy of the 1.1.0 version bump.
>>
>> On the whole I agree with you here, but I also have a personal interest
>> in getting it into Ubuntu. I've made sure we have 1.0.9 in the upcoming
>> Karmic (release in October), but I'm less sure that 1.1.0 will make it
>> into that version now.
> 
> What particular features are you trying to get into the next version of
> Ubuntu?  Perhaps we could release another 1.0.x version if need be,
> which include these changes.

I was thinking of the sample timers, the fast-render feature and
possibly the new default controller values (yet to be implemented).
Anyway, Ubuntu Karmic is already past DebianImportFreeze, so I think it
is better to make sure we get a good 1.1.0 into Karmic+1. This means a
deadline for 1.1.0 no later than november 2009. Does this seem okay to you?

>> - Half of ticket #24, will require some kind of "soft-stop" feature in
>> the audio drivers. Problems: I can fix alsa and probably also jack
>> drivers, but I don't have a clue about how to fix the rest of them.
>>
>> Any thoughts?
> 
> It seems like if the player stops and all voices have stopped, that
> means nothing else will sound, except for remaining reverb/chorus
> effect.  I've been thinking it would be nice to have some API for
> checking the current number of active voices.  This could also be used
> for the logic which determines when a song has e

Re: minor FluidSynth sponsorship opportunity (Re: [fluid-dev] Tickets, project status, and 1.1.0)

2009-07-06 Thread josh

Hello Kevin,

I did some research on these parameters by also looking at the source  
code.  The FluidSynth C API differs as far as the allowable ranges for  
some reverb/chorus parameters in comparison to the command interface.   
This seems like a bug to me.


Notes:

- cho_set_nr is not Chorus delay from what I know.  Its actually the  
number of Chorus "voices".


- rev_setlevel command takes -31.0 to 31.0 but the code clamps this  
value between 0.0 and 1.0, so that is the actual usable range.


- rev_setroomsize command takes 0.0 to <1.2.  The actual value 1.2  
seems to fail the test <1.2 for some reason (1.199 works for  
example, but 1.2 does not).


- fluid_revmodel_setroomsize, fluid_revmodel_setdamp,  
fluid_revmodel_setwidth do not check or clamp the input value.   
Setting values outside of the allowed command range, could lead to  
unexpected behavior.


- Max allowed chorus depth depends on sample rate of synth.  22050 =  
~92.92, 44100 = ~46.46, 48000 = ~42.68, 96000 = ~21.34



default, min, max:

Gain: 0.2, 0.0, 10.0
Reverb Level: 0.9, 0.0, 1.0
Reverb roomsize: 0.2, 0.0, <1.2
Reverb damping: 0.0, 0.0, 1.0
Reverb width: 0.5, 0.0, 100.0
Chorus nr: 3, 0, 99
Chorus level: 2.0, 0.0, 10.0 (reasonable level is < 1.0)
Chorus speed: 0.3, >0.29, 5.0
Chorus depth: 8.0, 0.0, (depends on sample rate)
Chorus mode: FLUID_CHORUS_MOD_SINE



Seems like a bit of a mess to me.  I think it would be nice to have  
individual FluidSynth settings parameters for these, then the valid  
range could be queried from the API.  I added a ticket for this:

http://fluidsynth.resonance.org/trac/ticket/49

$25 would be most appreciated and was definitely an incentive to  
research this!  You could send it to my paypal email address:  
jgr...@users.sourceforge.net.


Best regards,
Josh Green


Quoting Kevin Fishburne :

   j...@resonance.org wrote: Sponsorship would be an interesting
thing to look into.  Setting up paypal donations could also be good
or having a bounty system (users pledge an amount for a certain
task).  I have not yet seriously attempted making money at working on
free software, though it has consumed much of my time in the past 10
years.  The need to make an income definitely affects how much time I
have available for free software projects though, so receiving money
for working on FluidSynth would definitely give me more time to work
on it.
 On that note if anyone can correct/verify and fill in this table
I'll pay them $25 U.S. by whatever method they like. I pulled some
additional tentative values by issuing commands with various numbers
to a FluidSynth server daemon, which sometimes would reply with
"Values should be between x and y".

Also if anyone knows if these value ranges differ between the shell,
server, and API interfaces that would be extremely useful. I perused
the source code to the best of my ability and could only pull some
possible value ranges for these settings.

EFFECT
 MEASUREMENT
 TYPE
 DEFAULT
 MINIMUM
 MAXIMUM
 COMMAND

Gain

 float
 0.2
 0.0
 5.0
 gain x

Reverb Level

 float
 3.0
 0.0
 < 31.0
 rev_setlevel x

Reverb Room Size

 float
 0.84
 0.0
 1.0
 rev_setroomsize x

Reverb Damping

 float
 0.2
 0.0
 1.0
 rev_setdamp x

Reverb Width

 float
 1.0
 0.0
 100
 rev_setwidth x

Chorus Level

 float

 0.0
 30.0
 cho_set_level x

Chorus Delay
 Lines
 integer
 3
 0
 100
 cho_set_nr x

Chorus Speed
 Hz
 float

0.295.0
 cho_set_speed x

Chorus Depth
 ms
 float

 0.0
 10.0
 cho_set_depth x

I need this in order to finish a FluidSynth GUI and SoundFont
management app. It's already pretty much completed but I need to
adjust the slider value ranges so they are consistent with each other
and have sane defaults.

KEVIN FISHBURNE

Eight Virtues

www:
e-mail:
phone:  http://sales.eightvirtues.com[1]
 sa...@eightvirtues.com[2]
 (770) 853-6271



Links:
--
[1] http://sales.eightvirtues.com
[2] mailto:sa...@eightvirtues.com






___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


minor FluidSynth sponsorship opportunity (Re: [fluid-dev] Tickets, project status, and 1.1.0)

2009-07-06 Thread Kevin Fishburne




j...@resonance.org wrote:
Sponsorship would be an interesting thing to look into. 
Setting up paypal donations could also be good or having a bounty
system (users pledge an amount for a certain task).  I have not yet
seriously attempted making money at working on free software, though it
has consumed much of my time in the past 10 years.  The need to make an
income definitely affects how much time I have available for free
software projects though, so receiving money for working on FluidSynth
would definitely give me more time to work on it.
  

On that note if anyone can correct/verify and fill in this table I'll
pay them $25 U.S. by whatever method they like. I pulled some
additional tentative values by issuing commands with various numbers to
a FluidSynth server daemon, which sometimes would reply with "Values
should be between x and y".

Also if anyone knows if these value ranges differ between the shell,
server, and API interfaces that would be extremely useful. I perused
the source code to the best of my ability and could only pull some
possible value ranges for these settings.


  

  Effect
  
  Measurement
  
  Type
  
  Default
  
  Minimum
  
  Maximum
  
  Command
  


  Gain
  
  
  
  float
  
  0.2
  
  0.0
  
  5.0
  
  gain x
  


  Reverb Level
  
  
  
  float
  
  3.0
  
  0.0
  
  < 31.0
  
  rev_setlevel x
  


  Reverb Room Size
  
  
  
  float
  
  0.84
  
  0.0
  
  1.0
  
  rev_setroomsize x
  


  Reverb Damping
  
  
  
  float
  
  0.2
  
  0.0
  
  1.0
  
  rev_setdamp x
  


  Reverb Width
  
  
  
  float
  
  1.0
  
  0.0
  
  100
  
  rev_setwidth x
  


  Chorus Level
  
  
  
  float
  
  
  
  0.0
  
  30.0
  
  cho_set_level x
  


  Chorus Delay
  
  Lines
  
  integer
  
  3
  
  0
  
  100
  
  cho_set_nr x
  


  Chorus Speed
  
  Hz
  
  float
  
  
  
  0.29 
  5.0
  
  cho_set_speed x
  


  Chorus Depth
  
  ms
  
  float
  
  
  
  0.0
  
  10.0
  
  cho_set_depth x
  

  


I need this in order to finish a FluidSynth GUI and SoundFont
management app. It's already pretty much completed but I need to adjust
the slider value ranges so they are consistent with each other and have
sane defaults.



  

  Kevin
Fishburne
  

  


  

  Eight Virtues
  

  


  

  www:
e-mail:
phone:
   http://sales.eightvirtues.com
 sa...@eightvirtues.com
 (770) 853-6271

  







___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-06 Thread josh

Hi David,

Quoting David Henningsson :

j...@resonance.org skrev:

Good questions!  I converted a lot of functions over in fluid_synth.c to
use the thread safe lock free event queue if not called by the synthesis
thread, as we discussed.  Its not currently buildable though, and there
is still a bit of work to do (it has started to feel a little bit like
an overhaul).  I tested things with basic note-on/note-off messages
through the queue, which worked fine.  I think we should try and make
FluidSynth 1.1.0 completely thread safe (as far as crashes and potential
synthesis anomalies).


Okay. I agree that it would be dumb to leave the thread safety
half-implemented for 1.1.0. But if you feel that you don't have the time
to work with it, perhaps we can work on it together. Let me know if you
would like that.



Sure, if you would like to work on it too, that would be great.  I was  
a bit apprehensive about checking things in in a broken state.  How do  
you want to go about collaborating on things?  Do you think we should  
create a separate "work" branch or just assume that subversion trunk  
will be broken sometimes?  Once we decide this, I can check my changes  
in and describe what I'm doing.






One user who is building FluidSynth on the iPhone, mentioned that glib
is not supported currently on that platform.  I started to think that we
might want to make glib optional for certain platforms.  The iPhone
seems like a case where building FluidSynth single threaded would be OK,
which would mean less boiler plate as far as needing to implement the
thread related functions.  Perhaps Windows might also be a candidate for
optional glib, though that might be a bit more of a pain to maintain.
I'm leaving all glib specific code out of most FluidSynth source files
and providing simple macro #defines or implementations in fluid_sys.c.
I changed g_return_if_fail to fluid_return_if_fail for example.


This means glib is something we should try to avoid rather than try to
use, when we write new code? What about the data structures (lists etc),
should we copy glib code for that, like we did before glib was introduced?




Yeah..  It will make things more difficult for us.  glib is nice and  
convenient for many of these data structures.  We could make a little  
standalone glib compatibility library which gets statically linked in,  
in which we borrow code directly from glib.  The license is  
compatible, so there shouldn't be any problem with that.  It seems  
like one of the main things going for FluidSynth in certain  
environments is the minimal amount of dependencies that it has.




It
would be great to be able to just work on free software projects and
make money at it too ;)


I read somewhere that the Daniel Langlois Foundation sponsored
FluidSynth a while ago. Perhaps you could see if they're willing to do
that again.




Sponsorship would be an interesting thing to look into.  Setting up  
paypal donations could also be good or having a bounty system (users  
pledge an amount for a certain task).  I have not yet seriously  
attempted making money at working on free software, though it has  
consumed much of my time in the past 10 years.  The need to make an  
income definitely affects how much time I have available for free  
software projects though, so receiving money for working on FluidSynth  
would definitely give me more time to work on it.




I don't think we should rush the release of 1.1.0 at this point though,
since there aren't a huge amount of features that are being held back.
I'd much rather get things right and have a more well rounded FluidSynth
worthy of the 1.1.0 version bump.


On the whole I agree with you here, but I also have a personal interest
in getting it into Ubuntu. I've made sure we have 1.0.9 in the upcoming
Karmic (release in October), but I'm less sure that 1.1.0 will make it
into that version now.



What particular features are you trying to get into the next version  
of Ubuntu?  Perhaps we could release another 1.0.x version if need be,  
which include these changes.



As far as I am aware there aren't a whole lot of tasks in progress at
the moment.  While there may be many tickets assigned to myself, only
the FluidSynth config file and thread safe event queue tasks are
currently being worked on by me.  I'm not aware of any other tasks in
progress.

Others on the list: Please speak up if you are currently working on one
or more FluidSynth tasks.


As for myself, I'm not working on anything at the moment. Things I'm
thinking of fixing is one or some of these:




Sounds great!  Let me know how I can help make things easier for you  
to work on tasks.




- Compatibility with GM/GS/XG/GM2 etc. Problems: Need do buy
documentation, unless anybody has it? In particular, fix correct default
values. This will of course be a change of behaviour, perhaps we need a
"legacy" mode as well to keep backwards compatibility?




I imagine most of this information can be found online,

MIDI Standard Specs WAS Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-06 Thread Graham Goode
Hi,

For GM1 and GM2 specs see http://en.wikipedia.org/wiki/General_MIDI,
http://www.midi.org/techspecs/gm.php
For GS download a Roland Sound Canvas manual from
http://www.edirol.net/products/en/archives.html and see the appendix
lists
For XG try 
http://web.archive.org/web/20060926124939/http://www.yamaha.co.uk/xg/reading/pdf/xg_spec.pdf

Hope that helps...

GrahamG


___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-06 Thread David Henningsson
j...@resonance.org skrev:
> Good questions!  I converted a lot of functions over in fluid_synth.c to
> use the thread safe lock free event queue if not called by the synthesis
> thread, as we discussed.  Its not currently buildable though, and there
> is still a bit of work to do (it has started to feel a little bit like
> an overhaul).  I tested things with basic note-on/note-off messages
> through the queue, which worked fine.  I think we should try and make
> FluidSynth 1.1.0 completely thread safe (as far as crashes and potential
> synthesis anomalies).

Okay. I agree that it would be dumb to leave the thread safety
half-implemented for 1.1.0. But if you feel that you don't have the time
to work with it, perhaps we can work on it together. Let me know if you
would like that.

> One user who is building FluidSynth on the iPhone, mentioned that glib
> is not supported currently on that platform.  I started to think that we
> might want to make glib optional for certain platforms.  The iPhone
> seems like a case where building FluidSynth single threaded would be OK,
> which would mean less boiler plate as far as needing to implement the
> thread related functions.  Perhaps Windows might also be a candidate for
> optional glib, though that might be a bit more of a pain to maintain. 
> I'm leaving all glib specific code out of most FluidSynth source files
> and providing simple macro #defines or implementations in fluid_sys.c. 
> I changed g_return_if_fail to fluid_return_if_fail for example.

This means glib is something we should try to avoid rather than try to
use, when we write new code? What about the data structures (lists etc),
should we copy glib code for that, like we did before glib was introduced?

> It
> would be great to be able to just work on free software projects and
> make money at it too ;)

I read somewhere that the Daniel Langlois Foundation sponsored
FluidSynth a while ago. Perhaps you could see if they're willing to do
that again.

> I don't think we should rush the release of 1.1.0 at this point though,
> since there aren't a huge amount of features that are being held back. 
> I'd much rather get things right and have a more well rounded FluidSynth
> worthy of the 1.1.0 version bump.

On the whole I agree with you here, but I also have a personal interest
in getting it into Ubuntu. I've made sure we have 1.0.9 in the upcoming
Karmic (release in October), but I'm less sure that 1.1.0 will make it
into that version now.

> As far as I am aware there aren't a whole lot of tasks in progress at
> the moment.  While there may be many tickets assigned to myself, only
> the FluidSynth config file and thread safe event queue tasks are
> currently being worked on by me.  I'm not aware of any other tasks in
> progress.
> 
> Others on the list: Please speak up if you are currently working on one
> or more FluidSynth tasks.

As for myself, I'm not working on anything at the moment. Things I'm
thinking of fixing is one or some of these:

- Compatibility with GM/GS/XG/GM2 etc. Problems: Need do buy
documentation, unless anybody has it? In particular, fix correct default
values. This will of course be a change of behaviour, perhaps we need a
"legacy" mode as well to keep backwards compatibility?

- The player, mainly ticket #35. I was thinking that maybe Pedro would
fix this one himself, but I can do it if he doesn't want to.

- Half of ticket #24, will require some kind of "soft-stop" feature in
the audio drivers. Problems: I can fix alsa and probably also jack
drivers, but I don't have a clue about how to fix the rest of them.

Any thoughts?

> The number of developers right now is low enough to where we can
> probably simply communicate about what we are working on.  

That is, you and me? :-) And Pedro, although he doesn't seem to have
touched much of the code lately - although he should have much credit
for fixing documentation, making test cases etc!

> Anything else
> should be considered up for grabs, but it never hurts to ask and make
> sure someone else isn't already working on it.  I wish Trac had the
> ability to set the ticket back to "unassigned".  

There is a trick here: If you reassign it to yourself, trac will change
the status from "assigned" to "new".

> Perhaps adding a
> special user, as you suggested, is the best option.  

Can you do that? Call it "N/A" and let it be the default user when
someone is creating a ticket.

Enjoy the summer!

// David



___
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev


Re: [fluid-dev] Tickets, project status, and 1.1.0

2009-07-05 Thread josh

Hello David,

It is indeed a nice summer here too where I am, which is one of the  
reasons I've been on my computer less as of late :)


Quoting David Henningsson :

Hello Fluidsynth community,

I hope that you are enjoying yourselves and have a great summer (or
winter, or rain period, or whatever depending on where you live :-) ).
At least it's quite warm in southern Sweden currently!

Anyway, it has not been much activity in the fluid-dev and the code base
lately. If I remember correctly, the 1.1.0 release was scheduled to be
released in the end of July or in August, which is a month from now. So
I think it would be nice if we could sum up how we're progressing.

* A few weeks ago Josh and I discussed how we could improve the thread
safety inside the synth engine, which Josh volunteered to do. It would
be nice to know how this is progressing, and if it is scheduled for
1.1.0 or not?




Good questions!  I converted a lot of functions over in fluid_synth.c  
to use the thread safe lock free event queue if not called by the  
synthesis thread, as we discussed.  Its not currently buildable  
though, and there is still a bit of work to do (it has started to feel  
a little bit like an overhaul).  I tested things with basic  
note-on/note-off messages through the queue, which worked fine.  I  
think we should try and make FluidSynth 1.1.0 completely thread safe  
(as far as crashes and potential synthesis anomalies).


One user who is building FluidSynth on the iPhone, mentioned that glib  
is not supported currently on that platform.  I started to think that  
we might want to make glib optional for certain platforms.  The iPhone  
seems like a case where building FluidSynth single threaded would be  
OK, which would mean less boiler plate as far as needing to implement  
the thread related functions.  Perhaps Windows might also be a  
candidate for optional glib, though that might be a bit more of a pain  
to maintain.  I'm leaving all glib specific code out of most  
FluidSynth source files and providing simple macro #defines or  
implementations in fluid_sys.c.  I changed g_return_if_fail to  
fluid_return_if_fail for example.



* We have a number of tickets that are assigned to the 1.1.0 milestone,
but are yet to be implemented. I guess whether these are fixed before
1.1.0 are merely an indication that "it would be nice if this was fixed
ASAP" rather than an absolute requirement, do you agree?



I agree with the optional nature of the tickets for 1.1.0, it was more  
of a wish list.  I've been spending very little time on programming  
outside of work as of late.  Its been rather apparent to me recently,  
that I shouldn't be on the computer as much as I have been at times!   
It would be great to be able to just work on free software projects  
and make money at it too ;)


I don't think we should rush the release of 1.1.0 at this point  
though, since there aren't a huge amount of features that are being  
held back.  I'd much rather get things right and have a more well  
rounded FluidSynth worthy of the 1.1.0 version bump.



Coming to speak of tickets, it is currently not obvious to know what
people are working on and what bugs are looking for volunteers. Here's a
suggestion:

* If a ticket's status is "assigned", the person listed as "owner" is
planning to fix it - preferably in the next few weeks.

* If a ticket's status is "new", the person listed as "owner" is
somewhat thinking of fixing it, or can share some thoughts about it, but
is not planning to fix it in the near future.

* If a ticket is looking for volunteers, it should be owned by a new
virtual user called "nobody" or something similar. This should be the
default for newly created tickets.




As far as I am aware there aren't a whole lot of tasks in progress at  
the moment.  While there may be many tickets assigned to myself, only  
the FluidSynth config file and thread safe event queue tasks are  
currently being worked on by me.  I'm not aware of any other tasks in  
progress.


Others on the list: Please speak up if you are currently working on  
one or more FluidSynth tasks.


The number of developers right now is low enough to where we can  
probably simply communicate about what we are working on.  Anything  
else should be considered up for grabs, but it never hurts to ask and  
make sure someone else isn't already working on it.  I wish Trac had  
the ability to set the ticket back to "unassigned".  Perhaps adding a  
special user, as you suggested, is the best option.  But maybe that is  
overly complicated at the moment and we can just keep track of what  
each person is working on.




If this is not fine-grained enough, one could write something more
explicit as a ticket comment.

What do you say?

// David




Thanks for keeping things on track.  I'm going to try and put some  
time into FluidSynth this week and do my best to get something working  
in regards to the thread queue implementation.


Cheers!

Josh Green