Cubase: Lautstärke beim Audio Mixdown und Verhinderung von Clipping über den Limiter

Problem

Die Lautstärke beim Audiomixdown in Cubase ist zu leise oder zu laut, so dass die rote CLIP-Anzeige aufleuchtet

Prämissen

Es wird vorausgesetzt, dass die kostenlosen folgenden 3 Plugins in den Ordner VstPlugins von Cubase kopiert werden:
Tube-Limiter
Classic EQ
TLs-Maximizer

1. Ansatz: Verwendung eines Tube Limiters mit vorgeschaltetem Classic EQ

Ein Limiter verringert Lautstärken ab einem gewissen Pegel und verdichtet diese in die Wave-Form. Ein Limiter kann durch einen Compressor mit Threshold 1:unendlich simuliert werden.
Wichtig ist, das die 0dB (digitale Musik hat einen Lautstärkebereich von -unendlich bis 0 dB) nicht überschritten werden, dafür werden wir mit dem Plugin sorgen. Einige CD Player können übersteuerte Daten nicht abspielen oder knacken/kratzen fürchterlich. Die Spezifikation sieht eine offizielle Grenze sogar bei -0,2 dB vor.
Das kostenlose Tube-Limiter Plugin gibt einen besonders druckvollen Klang.
Mit dem kostenlosen Plugins „Classic EQ“ kann mithilfe des Output-Reglers in den Limiter reinmaximiert werden. Hierbei

2. Ansatz: Verwendung des TLs-Maximizers

Ein Maximizier erhöht leise Lautstärken, und verdichtet so den Mix. Er leistet also das, was ein der 1. Ansatz mit 2 Plugins liefert, nämlich
* Das Anheben der Grundlautstärke
* Das Verdichten der Lautstärke in dem Mix

Ein gutes Freeware Plugin ist der TLs-Maximizer.

Lösung

Wir gehen in den Cubase Mixer auf die Spur mit der Gesamtlautstärke und legen (am Besten schon vor dem Mixing) auf den 2. Kanal-Slot den Tube Limiter. Der Tube Limiter wird mit allen Parametern auf 0 gesetzt.
1.) Den Tube Limiter legt man bereits vor dem eigentlich Mischprozess auf den Master-Kanal (zweiter Slot), so dass in den Limiter reingemixt werden kann.
2.) Alle 4 Regler (Comp., Sat., Bright, OutGain) des Tube Limiters werden auf 0 dB gesetzt. Damit verhindern wir ein Clipping / eine Übersteuerung des Signals.
3.) Anschließend werden alle Lautstärken der anderen Kanäle langsam hochgezogen, so bis ein perfektes Klangerlebnis entsteht
4.) Im nächsten Schritt nehmen wir den Maximizer um das Signal an die Limitergrenze zu verdichten.

Download des Maximiziers

IBM Doors DXL: Alle eingeloggten User ausgeben

Aufgabe

Alle eingeloggten User eines Modules sollen ausgegeben werden / Alle User Sessions angzeigt werden

Ansatz

Auslesen der Session History

Lösung

Module m = read("/NDS/20 System/RS-System Requirements Specification");
HistorySession hs = null;


for hs in m do
{
	print number(hs) "," when(hs) "," who(hs) ",";

	string sBaseline=baseline(hs);
	if(sBaseline != null)
	{
		print sBaseline;
	}
	print "\n";
}	

Celtic Guitar Fingerpicking Style: Cock up your beaver

In this stately scottish Jacobite song a young man is encouraged to tilt his beaverskin hat at a rakish angle as he rides off to fight the English.

This is not the best played version but the video is good for remember it after a longer time 😉

Lyrics:
When first my brave Johnie lad came to this town,
He had a blue bonnet that wanted the crown;
But now he has gotten a hat and a feather,
Hey, brave Johnie lad, cock up your beaver!

Cock up your beaver, and cock it fu‘ sprush,
We’ll over the border, and gie them a brush;
There’s somebody there we’ll teach better behaviour,
Hey, brave Johnie lad, cock up your beaver!

Celtic Guitar Fingerpicking Style: Battle of aughrim

The Battle of Aughrim (Irish: Cath Eachroma) was the decisive battle of the Williamite War in Ireland. It was fought between the Jacobites and the forces of William III on 12 July 1691 (old style, equivalent to 22 July new style), near the village of Aughrim in County Galway.

The battle was one of the more bloody recorded fought on Irish soil – over 7,000 people were killed. It meant the effective end of Jacobitism in Ireland, although the city of Limerick held out until the autumn of 1691.

IBM Doors DXL: Iterate over Linkmodule

Problem

The links in a link module should be iterated

Approach

Link Modules can be read with the appropriate method like formal modules.

Solution

nSatisfiesLinkModule = "/NDS/90 Administration/Satisfies"; 
Object o = null; 
string src   = ""; 
string tgt   = ""; 
SatisfiesLinkModule = read(nSatisfiesLinkModule, false); 
for o in SatisfiesLinkModule do 
{ 
                // get names of source and target modules 
                src = o."source" "" 
                tgt = o."target" "" 
                print src " -> " tgt "\n" 
} 

IBM Doors DXL: Helpful Trigger Functions for persistent Triggers to block a module

Problem

The modification (Edit Mode / Edit Share) of a module shall be prevented.
Das Editieren eine Doors Modules (Edit Mode / Share Mode) soll verhindert werden.

Approach

Defining a library and using the existence of a trigger as condition for allowed modifications can be used to block the formal Module for edit/share mode.
Durch das definieren eine Triggers und der zugehörigen Trigger_Library kann man die Existenz eines Triggers als Bedingung für das Erlauben des Edit/Share Modes nehmen.

Solution

void listAllTriggerForMod (Module mod) 
{
	Trigger t;
	for t in mod do 
	{
		print name(t) "\n";	
	}
}

bool checkTriggerIfExistForMod (Module mod, string triggername) 
{
	Trigger t;
	for t in mod do 
	{
		if(name(t) "" == triggername)	
		{
			return true;
		}
	}
	
	return false;
}

string getDXLCodeForModWithTrigger (Module mod, string triggername) 
{
	Trigger t;
	for t in mod do 
	{
		if(name(t) "" == triggername)	
		{
			return dxl(t);
		}
	}
	
	return "not found";
}

void removeTriggerForModWithName(Module mod, string triggername) {

	Trigger t;
	string errorMsg;
	
	// first delete _all possible trigger_
	for t in mod do {
		if (name (t) "" == triggername) {
			errorMsg = delete(t);
		   	if(!null(errorMsg)) {
			  errorBox("Error occurred:\n" errorMsg"");
			  break;
		   }
		}
	}
}

void installTriggerForMod (Module mod) 
{
	string dxlCode = "Module cm = current Module;\n" //-
					"if ((isEdit(cm)||isShare(cm))){\n" //-
					"ack(\"During Wings LDT modifications it is not allowed to modify texts in the UIT/ALM Module.\");\n" //-
					"downgrade(cm)\n" //-
					"}\n";
	 
	string errors = checkDXL(dxlCode)
	
	if(null(errors)) 
	{
		string moduleName = name(mod)
		if(!checkTriggerIfExistForMod(mod, "Text_Tool_Block_Trigger"))
		{
			Trigger t = trigger("Text_Tool_Block_Trigger", project->module->moduleName, post, open, 15, dxlCode);
		}
		else ack "Trigger already exist!";
	}
	
	save(mod);
}

Module uitModule = read("/NDS/20 System/DS/UIT-User Interface Texts", false);
print "Vor der Installation...\n";
print "=======================\n";
listAllTriggerForMod(uitModule);
installTriggerForMod(uitModule);
print "\n\nNach der Installation...\n";
print "=======================\n";
listAllTriggerForMod(uitModule);
removeTriggerForModWithName(uitModule, "Text_Tool_Block_Trigger");
print "\n\nNach dem Entfernen...\n";
print "=======================\n";
listAllTriggerForMod(uitModule);

C#.NET Windows Forms: Allow only numbers and decimals in TextBox

Problem

A Textbox should only allow numbers and decimals

Approach

Using the Keypress method will validate on each key that is entered.
Call the code below onKeyPress Event of each Textbox with

validateNumber(sender, e);

after each

Solution

private void validateNumber(object sender, KeyPressEventArgs e)
{
  if ((e.KeyChar == ',') && (((TextBox)sender).Text.IndexOf(',') > -1))
  {
    e.Handled = true;
    return;
  }

  if (!Char.IsDigit(e.KeyChar))
  {
    if ((e.KeyChar != ',') &&
        (e.KeyChar != Convert.ToChar(Keys.Back)))
    {
        e.Handled = true;
        return;
    }
 }
}

by Björn Karpenstein