Ooit afgevraagd wat technologie ligt achter Alive Drumming slimme web services? Hier is de essentie –

Alive Drumming’s slimme web services zijn ontworpen in de Elixir programmeertaal. De webservice levert Alive Drumming’s volledig verzorgde ritmetracksopgebouwd uit meerdere takes van long-form audio van zeer getalenteerde drummers.

Simpel gezegd, deze dienst

  1. Parseert een web-verzoek,
  2. Bepaalt de opstelling structuur van de gevraagde spoor,
  3. Maakt de audio-techniek scripts plakjes lange vorm audio splitsen in resultaat, en tenslotte
  4. Voert deze scripts, het leveren van de resulterende audio als de output van de dienst.

Taal Compiler als webservice

Een groot deel hiervan is tekstuele lexicale analyse en klassieke compiler design als de baan beschrijving is een eenvoudige LR1 taal, en de uitgeworpen audio-techniek scripts worden geoptimaliseerd met een kijkgat optimalisatie fase. Stap 3 hierboven, “ Het creëren van de audio-techniek scripts“, bovendien betrokken parsing tekstuele meta-gegevens met betrekking tot de locatie van verschillende drummen intensiteiten de long-form audio’s, vult, pre- en post fills, drummen breaks, duwt, count-ins en eindes. Elk van deze heeft meerdere ‘vindt’ en algoritmen toe te passen weging in pseudo-willekeurige selecties. Aanvankelijk talen sterk in tekstuele manipulatie werden beschouwd met de vroege algoritmen prototype in GAWK, maar het bleek een taal die geschikt is voor schaalbare web-services nodig was.  

Technology Stack – Phoenix / Elixir / Erlang / Linux / GCP

Dat leid mij tot Elixir en Phoenix. Elixir is een zuiver functionele taal, sterk in tekst verwerkingsfaciliteiten die compileert de Erlang / OTP virtuele machine. Phoenix is ​​een web server framework geschreven in Elixir. Elixir / Erlang bevat alle voordelen van de Open Telecom Platform (OTP) – ontworpen voor de ultra onderhoudbaarheid en de betrouwbaarheid te verwachten van de telecom-platforms, zoals toezicht taken en in service-module updates. We organiseerde dit op Linux-servers op het Google Cloud Platform (GCP) met behulp van een zeer schaalbare cluster van Google Compute VM’s en Google Cloud Storage.

Dynamic Programming – Een performance boost

De programmering oplossing maakt gebruik van dynamisch programmerenop vele plaatsen. Dynamic Programming is waar een probleem is (recursief) ontleed in vele sub-problemen en waar de sub-problemen kunnen optreden die identiek zijn aan voorgaande zijn. Wanneer een onderliggende probleem is een duplicaat, is er geen noodzaak om het opnieuw op te lossen, gewoon gebruik maken van het vorige resultaat. Een cache van de resultaten maakt het algoritme om altijd de cache voordat het oplossen van het sub-probleem. Deze techniek werd gebruikt op vele niveaus binnen de oplossing. Elixir’s datastructuren bleek erg meegaand met eenvoudige Elixir kaarten gebruikt als caches. Prestaties metingen toonden een gemiddelde verbetering van 60% in het CPU-gebruik en de doorlooptijden met de caches ingezet.

Sommige gebieden die caches inzetten zijn

  1. Op het hoogste niveau, is het resulterende audio-bestand zelf in de cache,
  2. De creatie van audio plakjes, geparametriseerd door het type en de lengte-eisen,
  3. De pseudo-willekeurige selectie van voorbeelden van audio uit een groep gewogen alternatieven – hier gevoerd selectie gebruiken als invoer voor het algoritme ook

Ontwerp Waarschuwing – Google Drive

Een vroege ontwerp had de resulterende audio track in de cache van Google Drive met de web server wordt een omleiding naar het bestand in cache. Deze oplossing was aantrekkelijk omdat het borduurde voort op het zeer volwassen, schaalbare en kosteneffectieve Google Drive. Het bleek echter problematisch met Google Drive snel aanbrengen van een gouverneur onder zeer kleine hoeveelheden lading. Het bleek Google Drive was niet een goed geschikt voor dit soort diensten. Als al Drive verzoeken het kwam van de webservice, werd throttling toegepast dat de service beperkt. Bovendien, het was moeilijk om Google Drive-URL’s te leveren aan klanten op een manier die niet betrouwbaar zou resulteren in authenticatie verzoeken. Google Storage werd uiteindelijk gebruikt in plaats van Google Drive.

Samenvatting – een geweldige technologie stack

Elixir bleek zowel een perfecte pasvorm voor dit project en een waar genoegen om in te werken. De tooling rond de taal is volwassen en geschikt voor het doel, de OTP-platform is de beste oplossing voor de betrouwbaarheid en onderhoudbaarheid en de beperkingvan een puur functionele taal bleek meer van een uitkering dan een beperking. Minder kan echt meer met programmeertaal design. De Google Cloud Platform maakt infrastructuur inbedrijfstelling, controle en onderhoud zo veel makkelijker dan het omgaan met fysieke hardware. GCP toolset is volwassen geworden en de faciliteiten zijn uitgebreid. We zouden het ten zeerste aanraden de Phoenix / Elixir / GCP-technologie stack voor het ontwikkelen en implementeren van mission-critical, complexe web services.


Song Rhythm Tracks

Song Rhythm Tracks
Song Rhythm Tracks

Nummer rhythmtracks zijn een nieuw type achtergrondtrack geheel uit ritmische backing (geen melodie of harmonie) ingericht om de muzikale vorm van het nummer – het “songform”. Deze tracks zijn compleet voorstellingen zoals men krijgt van een professionele drummer. Ze hebben een count-in, inleiding sectie, koren en karakteristieke eindes, omlijst door vullingen te laten zien waar secties beginnen en eindigen.Zelfs muzikale bruggen en middelste coupletten hebben een hogere intensiteit in voorkomend geval aan de stijl. Dingen zijn eenvoudig gehouden door het afschaffen van de interface van de traditionele arrangeur’s. Men kan een nummer te selecteren in minder dan 30 seconden – onder de 15 seconden een keer krijgt men onder de knie.

De App speler heeft tempo aanpassing en een faciliteit om de tracks voor uw optreden of jamsessie volgorde. Het is voor muzikanten van alle niveaus. Nieuwe muzikanten gebruik maken van de app om een begeleiding te bieden aan songs. Ze krijgen een ritme dat is sympathiek, zodat ze leren om tijd bij te houden, krijgen in de groef en internaliseren muzikale structuur van het nummer – Dit alles onder het genot van boeiende en inspirerende ritmes.Optredens musici catalogus hun steun in setlisten en te gebruiken om de prestaties te leiden. Het hebben van kwaliteit ritmische steun, met een setlist faciliteit en de speler van een musicus,  allemaal in de ene App is zo handig vindt men zich met behulp van deze ritmische steun meer en meer.

Song Rhythm Tracks zijn echt van hoge kwaliteit ritmische steun die handig is om te selecteren en te spelen. Je gaat niet moe van deze backing tracks te krijgen. U bent niet van plan om niets te sequencen. U zult merken dat de speler en de setlist van de user-interface stimuleert voortgezet gebruik. U maakt kennis met de vorm van je liedjes meer waarderen en je zou deze tracks op te nemen in uw eigen enkele en album releases. Niet afschrikken door de ervaringen met andere mobiele drummen Apps. Song Rhythm Tracks zijn iets anders.

Of u nu leren van een nieuwe tune, jammen, optredens of snijden je laatste album, deze Song Rhythm Tracks biedt een oplossing.

Check out monsters van de audio op Alive Drumming’s Samples pagina

Bekijk deze artikelen van Alive Drumming dat verdere inzichten in de gedachte achter het product,

Hoe om te oefenen, maar ook hoe u jammen

Wanneer op uw ritme te werken?

Waarom songform met ritme tracks?

Download het nummer Rhythm Tracks App op de Apple App Store

Probeer Alive Drumming’s sampler apps om eerder proeven ingerichte mogelijkheden van de populaire muziek. Het is dan eenvoudig om de app te gebruiken om deze aan te passen aan uw praktijk en prestatie-eisen. Alle sampler apps zijn dezelfde Song Rhythm Tracks app, maar met de bijgeleverde sample tracks.


Ook gepubliceerd op Medium.


Also published on Medium.