Page 1 of 2

vu meters in machines and sequencer

Posted: Tue Nov 29, 2011 8:36 pm
by strobotone
hey there,

i am still working on these points:

1) better master vu meter (with db scale in toolbar) .
2) vu meters for machines and every track in the sequencer .

3) themewise i am putting knobs/dials in the buzzgui where it makes sense .
the machines themselfes could use some of them too since sliders take up too much space .
check theme progress here .

any ideas/ suggestions on that are appreciated.

Re: vu meters in machines and sequencer

Posted: Tue Nov 29, 2011 9:50 pm
by domtron
wow,great progress here!

i think a switch like "on demand" would be great if possible,
to reduce the graphics load.

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 1:23 am
by mes
I've always wondered why the Buzz synths don't have a master level knob/fader and clipping indicator.

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 1:38 am
by mantratronic
mes wrote:I've always wondered why the Buzz synths don't have a master level knob/fader and clipping indicator.
because it wouldnt make sense, the fader is on the connections and having an extra one for a generator would be redundent. also, no clipping occurs in buzz until the master/output, or you put in a clipping effect, so why show it?

btw, looking forward to the new theme! been using your last one a lot strobotone :)

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 2:44 am
by mes
mantratronic wrote:
mes wrote:I've always wondered why the Buzz synths don't have a master level knob/fader and clipping indicator.
because it wouldnt make sense, the fader is on the connections and having an extra one for a generator would be redundent. also, no clipping occurs in buzz until the master/output, or you put in a clipping effect, so why show it?

btw, looking forward to the new theme! been using your last one a lot strobotone :)
ahhh okay good point...well I was thinking it would be nice for some synths to have a built in master level fader that gets saved with each preset, so you can even the levels out a bit when switching between loud and quieter presets...but I guess most of them do already have that.

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 9:15 am
by Shro0m
strobotone wrote:hey there,

i am still working on these points:

1) better master vu meter (with db scale in toolbar) .
2) vu meters for machines and every track in the sequencer .

3) themewise i am putting knobs/dials in the buzzgui where it makes sense .
the machines themselfes could use some of them too since sliders take up too much space .
check theme progress here .

any ideas/ suggestions on that are appreciated.
A VU meter ala the newest Jedshiva would be nice.
Joachip should have the algo for that

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 12:20 pm
by strobotone
Shro0m wrote:
strobotone wrote:hey there,

i am still working on these points:

1) better master vu meter (with db scale in toolbar) .
2) vu meters for machines and every track in the sequencer .

3) themewise i am putting knobs/dials in the buzzgui where it makes sense .
the machines themselfes could use some of them too since sliders take up too much space .
check theme progress here .

any ideas/ suggestions on that are appreciated.
A VU meter ala the newest Jedshiva would be nice.
Joachip should have the algo for that
i am thinking in the same direction.
also jeskola limiter makes a good example of that.
buzzgui might have to be extended in order to bind a mini vu (output level of the machine) to the actual machine gui.
from there you could configure the mini vu via xaml like the master vu in the toolbar.
enable switching between vu/led would be pretty easy then. (also via selectable default value in machineview settings dialog)

as far as mini vu meters for each track in the sequencer go - i´d like to see that in the vertical sequencer.
so i try to figure out how to make a switchable vertical sequencerview from the new horizontal one.
but this has to be coded first. with just xaml (theme) this is not possible. or is it?

now since we have that kinda flexible theming we might call it "XAMLing" ;)

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 12:35 pm
by UNZ
strobotone wrote: buzzgui might have to be extended in order to bind a mini vu (output level of the machine) to the actual machine gui.
you can use the "plug api" (same as loop-recorder uses) to get to the output samples for displaying vu.

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 4:11 pm
by strobotone
UNZ wrote:
strobotone wrote: buzzgui might have to be extended in order to bind a mini vu (output level of the machine) to the actual machine gui.
you can use the "plug api" (same as loop-recorder uses) to get to the output samples for displaying vu.
thanks but how? i had something like the jeskola limiter example in mind.
something like a globally available object that you can bind in your xaml. (like the master vu)
the lazy way would be to grab the vu from the limiter gui and put it in the machineview gui accordingly. ;)

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 4:41 pm
by UNZ
strobotone wrote:
UNZ wrote:
strobotone wrote: buzzgui might have to be extended in order to bind a mini vu (output level of the machine) to the actual machine gui.
you can use the "plug api" (same as loop-recorder uses) to get to the output samples for displaying vu.
thanks but how? i had something like the jeskola limiter example in mind.
something like a globally available object that you can bind in your xaml. (like the master vu)
the lazy way would be to grab the vu from the limiter gui and put it in the machineview gui accordingly. ;)

no, look at the loop recorder source code in the svn. you can get output data for every connection / plug on a machine (even mutli io)

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 5:36 pm
by mes
Shro0m wrote:
strobotone wrote:hey there,

A VU meter ala the newest Jedshiva would be nice.
Joachip should have the algo for that

wow thanks, I had no idea about the newest version of Jedshiva...I'd still been using the version from 2004. :lol:

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 9:56 pm
by Reefer Sutherland
I just realized.. I usually switch to the old vertical sequencer for two reasons.

To edit steps in less than 16 lines.

And, because every fourth row (number) is slightly darker.

I don't know if the first one already is implemented, but the second one, that one would be nice :)
Can that be set in the theme?

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 10:04 pm
by strobotone
Reefer Sutherland wrote:I just realized.. I usually switch to the old vertical sequencer for two reasons.

To edit steps in less than 16 lines.

And, because every fourth row (number) is slightly darker.

I don't know if the first one already is implemented, but the second one, that one would be nice :)
Can that be set in the theme?
no afaik, atleast not yet. it has to be implemented in the c# code of BuzzGUI.SequenceEditor first.

Re: vu meters in machines and sequencer

Posted: Wed Nov 30, 2011 10:09 pm
by oskari
Reefer Sutherland wrote:I just realized.. I usually switch to the old vertical sequencer for two reasons.

To edit steps in less than 16 lines.
ctrl+f+t

Re: vu meters in machines and sequencer

Posted: Thu Dec 01, 2011 8:27 am
by Joachip
For more information on VU meters, I've written some info here that explains the math behind what I think is a good VUmeter (the new JedShiva is based on this):
http://www.robotplanet.dk/audio/audio_gui_design/

Basically, the formula is x = pow(y,3)

Re: vu meters in machines and sequencer

Posted: Thu Dec 01, 2011 4:42 pm
by strobotone
UNZ wrote:

no, look at the loop recorder source code in the svn. you can get output data for every connection / plug on a machine (even mutli io)
interesting. but you would have to enhance the BuzzGUI.MachineView with the math anyway.

>ConnectionVM.cs (LoopRecorder.GUI) >
...
public IMachineConnection MachineConnection { get; set; }
public string Name
{
get
{
if (MachineConnection != null)
return MachineConnection.Source.Name + " -> " + MachineConnection.Destination.Name;
else
return "Master";
}
}
public Brush NameBrush { get; set; }

bool isSelected;
public bool IsSelected
{
get { return isSelected; }
set
{
if (value == isSelected) return;

isSelected = value;

if (MachineConnection != null)
{
if (isSelected)
MachineConnection.Tap += MachineConnection_Tap;
else
MachineConnection.Tap -= MachineConnection_Tap;
}
else if (GUI.Machine != null)
{
if (isSelected)
GUI.Machine.Graph.Buzz.MasterTap += MachineConnection_Tap;
else
GUI.Machine.Graph.Buzz.MasterTap -= MachineConnection_Tap;
}

PropertyChanged.Raise(this, "VUMeterVisibility");
}
}


float maxSample;
public double VUMeterLevel { get; set; }
public Visibility VUMeterVisibility { get { return isSelected ? Visibility.Visible : Visibility.Collapsed; } }
const double VUMeterRange = 80.0;

public void TimerUpdate()
{
if (maxSample >= 0)
{
var db = Math.Min(Math.Max(Decibel.FromAmplitude(maxSample), -VUMeterRange), 0.0);
VUMeterLevel = (db + VUMeterRange) / VUMeterRange;
PropertyChanged.Raise(this, "VUMeterLevel");
maxSample = -1;
}
}

void MachineConnection_Tap(float[] samples, bool stereo, SongTime songtime)
{
maxSample = Math.Max(maxSample, DSP.AbsMax(samples) * (1.0f / 32768.0f));

// call ProcessBuffer in a background task
GUI.bufferQueue.Add(Tuple.Create(this, samples, stereo, songtime));
}
...

Re: vu meters in machines and sequencer

Posted: Thu Dec 01, 2011 5:04 pm
by UNZ
loop recorder also displays VU meters when you record, just look at that code too.

not sure what you mean with: "but you would have to enhance the BuzzGUI.MachineView with the math anyway." Yes ? its more or less copy from loop recoder, paste into machineview.

Re: vu meters in machines and sequencer

Posted: Thu Dec 01, 2011 5:16 pm
by strobotone
yes, that´s what i mean :)

Re: vu meters in machines and sequencer

Posted: Thu Dec 01, 2011 6:40 pm
by mantratronic
You might have to start contributing to the GUI :D

If you make a diff of the changes you make, then other ppl could recompile the GUI to include it if they want, without having to choose between updates from oskari and your dll's. (actually, I'd like the diff for the "hide new sequencer" mod you made to be available)

Re: vu meters in machines and sequencer

Posted: Thu Dec 01, 2011 6:42 pm
by strobotone
thanks :)
since i am not an actual coder i feel kinda honored.