Visual Studio : Project or Subproject does not compile / is not compiling or only compiles when the Build function in the context menu of the project explorer or in the VS menu is called explicitly

Problem

The project always shows an old status or an old version of the application when the „Start“-Button of Visual Studio has been clicked.

When the Build process is started manually before pressing the start button, the program version is the current / acutal one.

The target state should be that the program has always the current version without calling the BUILD funtion explicit.

Assumption

The root cause of this issue only occurs in a Visual Studio solution with more than one project.

Solution

  1. Make sure the project (i.e. „TestProject“) is set as startup project with the context menu (it appears bold in the project explorer).
  2. Right-click the Visual Studio Solution and select „Properties“.
  3. Got to the „configuration“ page in the appearing window (left side of the dialog)
  4. Select the „Build“ checkbox for the project that always shows the old status
  5. Press the OK button and try again.
Veröffentlicht unter .NET, Programmierung | Verschlagwortet mit , , , , , | Schreib einen Kommentar

5 Dinge, die Du als YouTuber über das neue Urheberecht wissen solltest.

Kurzgefasst

Grundsätzlich wird YouTube stärker in die Pflicht genommen und ist dafür verantwortlich, was auf der Plattform angeboten wird. D.h. YouTube muss sich überlegen, wie es zukünftig dem neuen Gesetzesentwurf von Februar 2021 nachkommt.

Die kreative Bearbeitung von Fremdwerken ist erlaubt für:

  1. In größerem Umfang: Parodien, Zitate, Montagen
  2. Urheberechtlich geschützte Werke maximal bis zur Hälfte
    1. Der Rechteinhaber hat einen „Red Button“, mit dem er Uploads sofort sperren kann.
  3. 15 Sekunden eines Filmschnipsels, Musik und Ton (Sampling)
  4. Texte bis 160 Zeichen
  5. Beim Upload: Der Nutzer muss zukünftig YouTube signalisieren, dass es sich um einen erlaubten Inhalt handelt.

Meine persönlichen Fragen

Heisst das für die Rechteinhaber, sie müssen jmd. abstellen der allemöglichen hochgeladenen Inhalte prüft, ob damit persönliche Rechte verletzt wurden?

Ist es wirklich erlaubt einen Kinofilm bis zur Hälfte hochzuladen?

An euch!

Wenn ihr bereits mehr Dinge in Erfahrung gebracht habt, dann schreibt das bitte in die Kommentare!

Veröffentlicht unter Allgemein, Aufnahmetechnik, Musik, Musikproduktion, Song Ideen | Verschlagwortet mit , , , , , | Schreib einen Kommentar

Riser-Effekte mit On-Board-Mitteln von Cubase und Retrologue erstellen / Übergangseffekte wie bei EDM, Popmusik und/oder bei Schlager

Problem

Du nimmst bereits seit einiger Zeit beim Hören von Schlager-, Pop- und EDM-Produktionen diese Wind- und Flugzeuggeräusche, das Rauschen, den Düsenjet, das Hoch- und Runterpfeifen zwischen den Übergängen der einzelnen Liedteile wahr? Fragst Du Dich was das ist?

Eins vorweg: In den seltensten Fällen handelt es sich hierbei um Flanger oder Phaser.

Lösung

Fast alle modernen EDM- und Schlagerproduktionen haben als Spannungsbogen zwischen zwei Übergängen Riser-Effekte. Mit Retrologue lassen sich diese Effekte erstellen. Somit hat man eine kostenlose Alternative zu VST Plug-Ins von Drittanbietern und unflexiblen Riser-Samples. Riser-Sounds lassen sich komplett mit On-Board-Mitteln und dem Cubase Standard erzeugen. In diesem Tutorial möchte ich euch zeigen, wie man dabei ansatzweise vorgeht.

Veröffentlicht unter Aufnahmetechnik, Musik, Musikproduktion, VST-Instrumente | Verschlagwortet mit , , , , , , , , , , , , , , | Schreib einen Kommentar

Cubase: Wie geht eigentlich Remixen? EDM Tutorial: Remix aus Sample erstellen – mit Cubase und Groove Agent SE als Sampler. Songs im Stil von Gigi D’Agostino erstellen.

Aufgabenstellung

Aus einer Aufnahme oder einem vorhandenen Sample, wie einer WAV-Datei, soll ein Remix im musikalischen Kontext erstellt werden.

Ansatz

Unter der Verwendung von Groove Agent SE als Sampler, können mit der „Slices“-Funktion Sample-Abschnitte über ein Master-Keyboard, einen anderen MIDI-Controller, die Tastatur oder über den Bildschirm anwählbar gemacht werden. Die Slices werden auf die PAD’s den Groove Agents gelegt, wobei jedes Pad einer Note / einem Key (C, C#, D, D#, usw…) entspricht. Mehr dazu im nachfolgenden Video.

Tutorial Video

In diesem kurzem EDM Tutorial zeige ich einen Einstieg in die Welt der Remixe mit Cubase und Groove Agent SE. Bei neueren Cubase Versionen kann man darüber hinaus eine Sampler Spur anstelle von Groove Agent SE nutzen. Hier geht es allerdings um die Variante mit Groove Agent.

Ich habe mir als Beispiel einen sehr bekannten Song, in dem die Slices eines Sample rythmisch verarbeitet werden vorgenommen. Der Original-Song stammt von Gigi D’Agostino. Dieser erlangte weltweite Bekanntheit durch seine Remixe.

Ergebnis

Der Track auf Soundcloud
Veröffentlicht unter Aufnahmetechnik, Musik, Musikproduktion, VST-Instrumente | Verschlagwortet mit , , , , , , , , , , , , , , , | Schreib einen Kommentar

WPF DataGrid MouseBinding Gesture List

Problem

The MouseBinding Tag in XAML is declaring a property „Gesture“, but it is hard to find a full reference / a complete list for all gestures of the MouseBinding tag.

Solution

Accepted gestures can be found in the enumeration MouseAction

LeftClick1A left mouse button click.
LeftDoubleClick5A left mouse button double-click.
MiddleClick3A middle mouse button click.
MiddleDoubleClick7A middle mouse button double-click.
None0No action.
RightClick2A right mouse button click.
RightDoubleClick6A right mouse button double-click.
WheelClick4A mouse wheel rotation.
List of possible gestures
Veröffentlicht unter C#, WPF Windows Presentation Foundation | Verschlagwortet mit , , , , , | Schreib einen Kommentar

Tortoise SVN: Show log with older messages and version history entries / it looks like commits are truncated or deleted after a point in time.

Problem

When you right click a folder in the Windows Explorer and you choose „TortoiseSVN -> Show log“ you are not able to see all entries. Even when you change the date range on the upper right of the window you can not fetch all entries.

It seems like that older SVN Server History entries are deleted. But in fact this is not the case.

Solution

First check the date range on the upper right of the window.

After that try to fetch the „lost“ entries by pressing the „Show All“ button on the lower left of the window.

Veröffentlicht unter Programmierung, SVN | Schreib einen Kommentar

7 Trinklieder und Gassenhauer aus 2020 mit Evergreen-Potential

Als Kind der 80er kennt man mit Sicherheit die alten Gassenhauer, die auf den Kirmessen vermischt mit Uff-da-da-Musik rauf und runtergedudelt wurden:

Alte Trinklieder der 70er / 80er … :

  • Eingekühlter Bommelunder
  • 10 kleine Jägermeister
  • Das Altbierlied
  • Saufen, saufen, saufen, saufen … (Schröders)
  • Was wollen wir trinken 7 Tage lang
  • Johny Walker
  • Heute trinken wir richtig
  • Skandal im Sperrbezirk
  • u.v.m. …

Wer glaubt es gäbe keine aktuellen guten Trinklieder die sich mit den alten Gassenhauern messen können, den muss ich eines besseren belehren :-).
Ich stelle nachfolgend ein paar sehr gut gelungene Trinklieder vor und wenn man sich reingehört hat wird man mir recht geben und auch der Meinung sein, dass der eine oder andere Song das Potential hat die alten Lieder zu übertreffen.

Bitte bedenkt dabei, das ihr die alten Hits mehrfach gehört habt und euer Gehör darauf trainiert ist, so gebt den nachfolgenden Liedern eine Chance:

Aktuelle Trinklieder der 2020er:

Da ist zunächst die Band „Feuerschwanz“, eine Mittelalter-Comedy-Band, welche mit ansehnlichen Choreographinnen, einer Geigerin und 4 weitern jungen Männern Mittelalterrock spielen. Hier gibt es zahlreiche Trinklieder und ich möchte an dieser Stelle „Metfest“ vorstellen, welches mir persönlich gut gefällt:

Feuerschwanz – Metfest

Als nächsten wären „Mr. Hurley & Die Pulveraffen“ zu erwähnen, welche sich dem Fantasy-Piraten-Kult verschworen haben. Ein Song mit sehr eingängigem Text wäre „Blau wie das mehr“:

Mr. Hurley und die Pulveraffen – Blau wie das Meer

Hier sind nochmal 2 Lieder von Knasterbart, wo der Sänger von „Mr. Hurley und die Pulveraffen“ auch mitsingt. Man darf allerdings nicht so auf die Zähne achte 😀 😀 😀 :

Knasterbart – Gossenabitur
Knasterbart – Kneipenschlägerei
Mr. Hurley und die Pulveraffen – Booty Island

Schandmaul … die Band die Nachts in der Endlosschleife auf KIKA läuft (also Vater kennt man das wenn die Kinder die „Bernd das Brot“ Folgen nachplappern weil sie nachts heimlich Fernsehen geschaut haben):

Schandmaul – Der Teufel hat den Schnaps gemacht

Und sozusagen als eines seiner Abschiedskonzerte wenige Monate vor dem Tod von Udo Jürgens gab es von Santiano eine Eigeninterpretation von „Der Teufel hat den Schnaps gemacht“ welche ich sehr gelungen fand:

Santiano – The devil made the rum for us
Veröffentlicht unter Allgemein | Schreib einen Kommentar

C#.NET : Custom Collections anstelle von List erstellen über die mit foreach( … ) iteriert werden kann

Intention

Um die Klasse List<T> vor Zugriffen zu schützen / zu beschränken oder diese mit Notification-Events (z.B. ObservableCollection) auszustatten werden für den jeweiligen Verwendungszweck eigene Collections verwendet.

Ansatz

Um eine eigene Collection zu erstellen, welche mit foreach( … ) über die Elemente der eingekapselten Struktur (also z.B. List<T>) zu iterieren, benötigt man eine Enumerator-Klasse, welche die Methoden …

  • MoveNext()
  • Reset()
  • … und die Property „Current“ implementiert

implementiert (hier MyCollectionEnumerator) … sowie natürlich die gecustomizte Collection-Klasse selber, die die Datenstruktur enthält (hier MyCollection).

Lösung

using System;
using System.Collections.Generic;

namespace Irrsinn
{
    // Diese Klasse definiert mit MoveNext / Reset und der Property
    // Current aus dem Interface IEnumerator wie foreach(String s in col)
    // über die eingekapselte Liste iterieren darf.
    public class MyCollectionEnumerator : System.Collections.IEnumerator
    {
        private List<string> StringList;
        private int Counter = -1;

        // Im Konstruktor wird die Liste übergeben um die Operationen
        // MoveNext / Reset / Current darauf ausführen zu können
        public MyCollectionEnumerator(List<string> _StringList)
        {
            this.StringList = _StringList;
        }

        // Geht auf den nächsten Datensatz, der in der Liste 
        // gespeichert ist. Wenn MoveNext() false zurückgibt
        // ist das Ende der Liste erreicht
        public bool MoveNext()
        {
            Counter++;
            return Counter < StringList.Count;
        }

        // Setzt die Collection zurück.
        public void Reset()
        {
            Console.WriteLine("RESET!");
            Counter = -1;
        }

        // Gibt immer das aktuelle Element zurück, was mit 
        // MoveNext erreicht wurde
        public object Current
        {
            get
            {
                return StringList[Counter];
            }
        }
    }

    public class MyCollection
    {
        // Intern ist sind Collections meistens vom Typ List<T>
        // aber die eigene Implementierung gibt uns die Möglichkeit
        // den Zugriff auf die Liste anzupassen.
        private List<string> _StringList = new List<string>();

        // Hinzufügen eines Strings
        public void AddString(string newString)
        {
            this._StringList.Add(newString);
        }

        // GetEnumerator wird benötigt um mit foreach(...)
        // über die Collection zu iterieren
        public System.Collections.IEnumerator GetEnumerator()
        {
            return new MyCollectionEnumerator(_StringList);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // Gecustomizte Collection
            MyCollection myCol = new MyCollection();
            myCol.AddString("Schatzi schenk mir ein Foto");
            myCol.AddString("schenk mir ein Foto vom Bier");
            myCol.AddString("Schatzi schenk mir ein Foto");
            myCol.AddString("Dann schenk ich Dir auch eins");
            myCol.AddString("vom Tier (also von den Muppets)");


            foreach (string s in myCol)
            {
                Console.WriteLine(s);
            }

            Console.ReadLine();
        }
    }
}
Veröffentlicht unter .NET, C#, Programmierung | Verschlagwortet mit , , | Schreib einen Kommentar

WPF MVVM: Was ist der Sinn hinter RelayCommand und wozu braucht man RelayCommand?

Problemfeld

RelayCommand (s) erfüllen den Zweck von Actions / Delegates und sind somit Funktionszeiger die es erlauben, zu einem späteren Zeitpunkt eine Methode aufzurufen.

Sie implementieren das Interface ICommand, welches von den WPF Controls genutzt wird, um bei Bedarf die Execute()-Methode aufzurufen. D.h. die Execute()-Methode soll nur dann aufgerufen werden, wenn das WPF Control das Ereignis tatsächlich auslöst und nicht bereits zur Bindung.

Ohne RelayCommands müsste man für jeden Command eine eigene Klasse schreiben, welche vom Interfache ICommand erbt. Sie helfen somit Code einzusparen.

Verwendung in einem MVVM Pattern

Häufige Verwendung: In einer XAML Datei wird ein Button definiert, der an einen RelayCommand gebunden wird, welcher zu einem späteren Zeitpunkt aufgerufen werden soll:

Das ViewModel, welches die View instanziert, muss einen RelayCommand „PerformCalibration“ definieren, der erst aufgerufen wird, wenn der Button geklickt wird (Relay) und nicht sofort bei der Bindung an den ButtonCommand.

Für diesen Zweck beinhaltet das ViewModel, welches die View instanziert, eine Funktion die den RelayCommand zurückgibt:
 

Der Button ruft die Funktion „Execute“ des implementierten RelayCommands auf, wenn er geklickt wird.

Da RelayCommands „Actions“ sind, haben Sie keinen Rückgabewert.

Veröffentlicht unter .NET, C#, Programmierung, WPF Windows Presentation Foundation | Schreib einen Kommentar

2020-08-02 Urlaubsbericht: Aqua Mundo Zugang im Center Park Het Merdaal zu Corona / COVID-19

Aufgrund der COVID-19 Situation ist der Zugang zum Aqua Mundo auf 2 Stunden beschränkt. Center Parcs informiert vor der Ankunft, dass man für das Buchen eines 2-Stunden Zeitfensters die Center-Parcs App benutzen kann, alternativ auch über die Rezeption, welche sich im Zentrum befindet, ein Zeitfenster buchen kann. Für die Nutzung der Center Parcs App benötigt man die E-Mailadresse, welche beim Tätigen der Buchung genutzt wurde. Außerdem wird darauf hingewiesen, dass jeder Besucher selbst dafür verantwortlich ist die Maßnahmen umzusetzen.

Die buchbaren Zeitfenster sind die folgenden:

  • Zeitfenster 1: 9.45h
  • Zeitfenster 2: 12.00h
  • Zeitfenster 3: 14.15h
  • Zeitfenster 4: 16.30h
  • Zeitfenster 5: 18.45h

Es wird darum gebeten keine Zeitfenster hintereinander zu buchen. Man soll vor jeder Aqua Mundo Nutzung frisch geduscht sein und die Badekleidung direkt unter den Klamotten tragen. Im Schwimmbad gibt es kleine Fächer in denen Platz für Geldbeutel / Handy und andere kleine Wertsachen ist. Für das Belegen des Faches ist eine 1-EURO-Münze erforderlich. Man muss seine Klamotten in eine mitgebrachte Tasche stecken und diese irgendwo im Aqua Mundo verstauen. Wir haben beim Einlass daher meistens die Badehose direkt angezogen und Badelatschen / Flip Flops getragen, die wir beim Einlass ausgezogen haben. Man wird im Prinzip über eine Route im Kreis durch das Aqua Mundo geschickt. Wenn man kleine Kinder dabei hat und etwas länger zum Umziehen braucht, hat man meistens keine Chance die Wildwasserbahn ohne längeres Anstehen / ohne längere Wartezeiten zu nutzen. Ist man im Schwimmbad mit den Badeschuhen durch rasches Entkleiden sofort schwimmfertig, lohnt sich der direkte Weg zur Wildwasserbahn, da dort keine Schlange existiert.

Abstände wurden zu unserer Zeit weniger eingehalten obwohl überall Schilder darauf hinweisen. Im Zentrum / Market Dome werden keine Masken getragen daher ist die erste Ankunft eher etwas gewöhnungsbedürftig da man das Gefühl hat man würde grobe fahrlässig handeln.

Wir haben natürlich die App genutzt um unsere Aqua Mundo Zeitfenster zu buchen, allerdings wird beim Eintritt in das Aqua Mundo nicht geprüft ob man wirklich eine Buchung zum aktuellen Zeitfenster hat. Wenn man die App nicht zum buchen benutzt, würde das keiner merken.

Es spielt im Grunde keine Rolle wie oft man ins Aqua Mundo geht. Wir haben für die Woche 3x 4 Karten für 4 Personen bekommen, sind allerdings 5x im Aqua Mundo gewesen, da wir nicht immer vollständig waren.

Veröffentlicht unter Allgemein | Schreib einen Kommentar