Re: Synth Volume Help Required

Al Elias <al-WGdFUsS+19dng2A/[email protected]> Mon, 03 Dec 2007 17:18:23 +0000
Newsgroups gmane.os.openbeos.midi
Message-ID <[email protected]>
[email protected] wrote:
>> I'm looking for any tutorials/source code examples which deal with 
>> controlling the onboard Synth volume from a BSlider. I'm having a few 
>> problems. I have started to tinker with the midi kit so anything 
>> suitable for a noob would do! :o)
>>     
>
> By "onboard synth" do you mean the software synthesizer,
> or the synthesizer on your soundcard (if any)?
>
>   
At the moment, I'm working on R5 using the standard (headSpace) softSynth.
 From the outset, all I want to achieve is an understanding of the 
midiKit API so the most obvoius starting point
for me is to write a small app that can play back a smf using the 
softsynth.
> The master volume of most MIDI devices can be controlled
> using a SysEx message -- f0 7f 7f 04 01 LSB MSB f7
> where LSB is the "fine" part of the setting, and MSB is
> the "coarse" part, 0-127 each. I'm not sure if FluidSynth
> responds to this -- it has more bugs than features -- but
> give it a try anyway.
>
> If you want to change the volume of an on-board synth
> (on a soundcard), that can also be done via the soundcard's
> mixer. I'm not sure if there's any standardized way in Haiku
> for manipulating that though...
>
>
> The slider part is pretty easy -- the member function
> SetValue(int32 val) in your BSlider gets called every time the
> slider's value changes. Assuming you've created a derived
> class that defines this function, you can do the necessary
> stuff inside SetValue(). The function is called continuously
> while you drag the slider, so it updates in real-time.
> For instance:
>
> class SLIDER : public BSlider {
>     public:
>     void SetValue(int32 value) {
>         BSlider :: SetValue(value);
>         /* Send the SysEx message or whatever here */
>     }
> }
>
> - Cyan
>
>   
I, quite literally, have an all or nothing situation with the slider: 
silence to speaker damage with just a small increment in the slider 
position.
I will post some code when I'm back in BeOS-land, probably tomorrow, 
perhaps then you can point out where I have gone wrong :o)

Thanks for the above reply  BTW.

Al
>
>