Überhaupt gewundert, was die Technik liegt hinter Lebend Drumming Smart Web-Services? Hier ist der Kern –

Lebend Drumming‚s intelligente Web – Services sind in der Elixir Programmiersprache entwickelt. Die Web – Service liefert Alive – Drumming ist voll angeordneten Rhythmusspurenvon mehreren konstruiert nimmt der Langform Audio sehr talentierter Schlagzeuger.

Einfach ausgedrückt, diesen Service

  1. Analysiert eine Web-Anfrage,
  2. Bestimmt die Anordnungsstruktur der angeforderten Spur,
  3. Er erstellt die audio-Engineering-Skripte Scheiben der Langform Audio in das Ergebnis spleißen, und schließlich,
  4. Führt diese Skripte, das resultierende Audio als die Ausgabe des Dienstes zu liefern.

Language Compiler als Web-Service

Vieles davon ist textliche lexikalische Analyse und klassische Compiler Design wie die Streckenbeschreibung eine einfache LR1 Sprache ist, und der ausgeworfenen Audio-Engineering – Skripte ist mit einer Guckloch Optimierungsphase optimiert. Schritt 3 oben, „ Erstellen des Audio-Engineering – Skripte„, zusätzlich beteiligter Parsing Text Meta-Daten in Bezug auf die Langform Audio-Standort mit unterschiedlichen Trommeln Intensitäten füllt, Pre- und Post – Füllungen, Trommeln brechen, schiebt, zählt-in und Enden. Jede dieser mehrere hat ‚nimmt‘ und Algorithmen anwenden Gewichtung in pseudo-zufällige Auswahl. Zunächst starke Sprachen in Textmanipulation wurden mit den frühen Algorithmen in GAWK prototypisiert betrachtet, aber es wurde klar , eine Sprache für massiv skalierbaren Web-Service benötigt wurde.  

Technologie-Stack – Phoenix / Elixir / Erlang / Linux / GCP

Das führt mich zu Elixir und Phoenix. Elixir ist eine rein funktionale Sprache, stark in Textverarbeitungseinrichtungen, die mit der Erlang / OTP virtuellen Maschine kompiliert. Phoenix ist ein Framework, Web-Server in Elixir geschrieben. Elixir / Erlang beinhaltet alle Vorteile der Open Telecom Platform (OTP) – für die ultra Wartbarkeit und Zuverlässigkeit erwarten von Telekom-Plattformen wie wachten Aufgaben und in-Service-Modul-Updates. Wir veranstaltete dieses auf Linux-Servern auf der Google Cloud Platform (GCP) eine hoch skalierbare Cluster von Google Compute VMs und Google Cloud Storage verwenden.

Dynamische Programmierung – Eine Leistungssteigerung

Die Programmierung Lösung nutzt Dynamische Programmierungin vielen Orten. Dynamische Programmierung ist , wo ein Problem ist (rekursiv) zerlegt in viele Teilprobleme und wo Teilprobleme können auftreten, die zu früheren identisch sind. Wenn ein Teilproblem ein Duplikat ist, gibt es keine Notwendigkeit , es wieder zu lösen, nur das vorherige Ergebnis verwenden. Ein Cache der Ergebnisse erlaubt es dem Algorithmus, immer den Cache prüfen Sie zuerst , bevor Sie das Teilproblem zu lösen. Diese Technik wurde auf vielen Ebenen innerhalb der Lösung verwendet. Elixir Daten-Strukturen erwiesen sich als sehr zuvorkommend mit einfachen Elixir als Cache – Speicher verwendet Karten. Performance – Messungen zeigten eine durchschnittliche 60% ige Verbesserung der CPU – Auslastung und Abschlusszeiten mit dem eingesetzten Caches.

Einige Bereiche, die Caches bereitstellen sind

  1. Auf der höchsten Ebene, die resultierende Audiodatei selbst wird zwischengespeichert,
  2. Die Erstellung von Audio-Scheiben, parametrisiert durch ihre Art und Länge Anforderungen,
  3. Die pseudo-zufällige Auswahl von Instanzen von Audiodaten von einer Gruppe von gewichteten Alternativen – hier bestand Auswahl wird als Eingabe für den Algorithmus verwendet, und

Design Caveat – Google Drive

Ein frühes Design hatte die resultierende auf Google Drive im Cache gespeicherten Audiospur mit der Web-Server-Antwort eine Umleitung auf die Cache-Datei zu sein. Diese Lösung wurde attraktiv, weil es die sehr ausgereifte, skalierbare und kosteneffektive Google Drive genutzt. Allerdings erwies es sich als problematisch mit Google Drive schnell einen Gouverneur unter ganz geringen Mengen Last aufgebracht wird. Es stellte sich heraus Google Drive nicht eine gute Passform für diese Art von Service. Wenn all Antrieb Anfragen aus dem Web-Service kommen, wurde Drosselung angewandt, dass der Dienst beschränkt. Darüber hinaus war es schwierig, Google Drive-URLs für ihre Kunden in einer Art und Weise zu liefern, die zuverlässig nicht in Authentifizierungsanforderungen führen würde. Google Storage wurde schließlich anstelle von Google Drive verwendet.

Zusammenfassung – ein großer Technologie-Stack

Elixir erwies sich sowohl perfekte Passform für dieses Projekt und eine echte Freude zu arbeiten. Die Werkzeuge rund um die Sprache ist ausgereift und für den Zweck geeignet, die OTP – Plattform ist die beste Lösung für die Zuverlässigkeit und die Wartbarkeit und die Einschränkungeiner rein funktionalen Sprache erwiesen eher ein Vorteil als eine Einschränkung sein. Weniger kann wirklich mit Programmiersprache Design mehr sein. Die Google Cloud Platform macht Infrastruktur Inbetriebnahme, Überwachung und Wartung so viel einfacher als mit physischer Hardware zu tun. GCP – Toolset ist gereift und die Einrichtungen sind sehr umfangreich. Wir würden das Phoenix / Elixir / GCP – Technologie – Stack für die Entwicklung und Bereitstellung missionskritische, komplexe Web – Services voll empfehlen.


Song Rhythm Tracks

Song Rhythm Tracks
Song Rhythm Tracks

Song Rhythm Track sind eine neue Art von Playback ganz rhythmischen Trägerzusammengesetzt (ohne Melodie oder Harmonie) an die musikalischen Form des Songs angeordnet – es ist „songform“. Diese Spuren sind komplette Leistungen wie manvon einem professionellen Schlagzeuger bekommt. Sie haben eine Zählung-in, Einführung Abschnitt, Chöre und charakteristische Endungen von Füllungen eingerahmt zeigenwo Abschnitte beginnen und enden. Auch musikalische Brücken und mittlere Chöre habenhöhere Intensität gegebenenfalls auf den Stil. Die Dinge sind einfach gehaltenindemmit den traditionellen Bearbeiter der Schnittstelle tun entfernt. Man kann einen Titel auswählenin weniger30 Sekunden – unter 15 Sekunden sobald man den Dreh raus wird es.

Die App des Spieler hat Tempo Einstellung und eine Möglichkeit , die Tracks für Ihren Auftritt oder Jam – Session zu sequenzieren. Es ist für Musiker aller Fähigkeiten. Neue Musiker nutzen die App eine Begleitung zu Songs bieten. Sie bekommen einen Rhythmus, der sympathisch ist , damit sie lernen , Zeit zu halten, bekommen in die Nut und verinnerlichen die musikalische Struktur des Songs – All dies , während genießen eingreifenden und inspirierenden Rhythmen. Gigging Musiker ihre Unterstützung in Setlisten Katalog und es verwenden , Leistung zu führen. Qualität rhythmischen Hintergrund hat, mit einer Setlist Anlage und ein Spieler Musiker,  alle in einer App ist so bequem , man findet ich diesen rhythmische Rückhalt mehr verwenden und mehr.

Song Rhythm Track sind wirklich hochwertige rhythmische Unterstützung , die bequem zu wählen und zu spielen. Sie werden nicht müde von diesem Playbacks zu bekommen. Sie gehen zu müssen , nichts sequenzieren. Sie werden feststellen , dass der Spieler und Setlist des User-Interface fortgesetzte Nutzung fördert. Sie erhalten die Form Ihrer Songs mehr zu schätzen , und Sie könnten diese Spuren in Ihre eigene Single und Album Releases enthalten. Lass dich nicht von Erfahrungen mit anderen mobilen Apps Trommeln beirren. Song Rhythm Tracks sind etwas anderes.

Egal , ob Sie eine neue Melodie lernen, stauen, gigging oder Schneiden Ihr letztes Album, das Lied Rhythm Tracks eine Lösung bietet.

Check out Proben des Audio bei Lebend Drumming der Proben Seite

Schauen Sie sich diese Artikel von Alive Drumming , die geben weitere Einblicke in das Denken hinter dem Produkt,

Wie üben, dann wie Marmelade

Wenn auf Ihrem Rhythmus zu arbeiten?

Warum songform mit Rhythmus – Tracks?

Laden Sie das Lied Rhythm Tracks App auf dem Apple App Store

Versuche Lebend Drumming des Samplers apps vorher zur Probe angeordnet Spuren von populären Melodien. Es ist dann einfach die App zu verwenden , um diese an Ihre Praxis und Leistungsanforderungen anzupassen. All Sampler – Anwendungen sind das gleiche Lied Rhythm Tracks App aber mit den mitgelieferten Beispielspuren.


Auch auf veröffentlichtes Medium.