Já se perguntou o que a tecnologia está por trás de serviços web inteligentes Alive Drumming? Aqui está a essência –

Viva Drummingserviços web inteligentes ‘s foram projetados na linguagem de programação Elixir. De O abastecimento de serviços web Vivo Drumming totalmente dispostos faixas de ritmoconstruídos a partir de vários takes de longa forma de áudio de bateristas muito talentosos.

Simplificando, este serviço

  1. Analisa uma solicitação da web,
  2. Determina a estrutura disposição da faixa solicitada,
  3. Cria os scripts de áudio e de engenharia para emendar fatias do áudio em formato longo para o resultado, e, finalmente,
  4. Executa estes scripts, entregando o áudio resultante como a saída do serviço.

Compiler linguagem como Web Service

Muito disso é a análise lexical textual e design clássico compilador como a descrição música é uma linguagem LR1 simples, e os scripts de áudio e de engenharia ejetados são otimizados com uma fase de optimização olho mágico. Passo 3 acima, “ Criação de scripts de áudio e de engenharia“, adicionalmente envolver análise textuais meta-dados relativos à localização do longa forma de áudio de diferentes intensidades rufar, enche, enche pré e pós, quebras de rufar, empurra, contam-ins e terminações. Cada uma delas tem múltiplos ‘leva’ e algoritmos prevê uma ponderação em seleções de pseudo-aleatórios. Inicialmente, línguas fortes na manipulação textuais foram consideradas com os primeiros algoritmos prototipados em GAWK, mas tornou-se claro uma linguagem adequada para maciçamente era necessário web-services escaláveis.  

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

Isso me levar a Elixir e Phoenix. Elixir é uma linguagem puramente funcional, forte em instalações de processamento de texto que compila para a máquina virtual Erlang / OTP. Phoenix é uma estrutura de servidor web escrito em Elixir. Elixir / Erlang inclui todas as vantagens da Plataforma Telecom Open (OTP) – projetado para o ultra manutenção e confiabilidade esperada de plataformas de telecomunicações, tais como tarefas supervisionadas e em serviço actualizações dos módulos. Nós hospedado esta em servidores Linux na Plataforma Google Cloud (GCP) usando um cluster altamente escalável da Google Compute VMs e Google Cloud Storage.

Programação Dinâmica – Um aumento de desempenho

A solução de programação utiliza programação dinâmicaem muitos lugares. A programação dinâmica é onde um problema é (recursivamente) decomposto em sub-diversos problemas e onde sub-problemas podem ocorrer que são idênticos aos anteriores. Se um sub-problema é uma duplicata, não há necessidade de resolvê-lo novamente, basta usar o resultado anterior. Um cache de resultados permite que o algoritmo de sempre verificar o cache antes de resolver o sub-problema. Esta técnica foi utilizada em vários níveis dentro da solução. -Estruturas de dados do Elixir provou muito confortáveis com simples Elixir mapas utilizados como esconderijos. Medições de desempenho mostrou uma melhoria média de 60% na utilização da CPU e tempos de finalização com as caches implantados.

Algumas áreas que implantam caches são

  1. No nível mais alto, o próprio arquivo de áudio resultante é armazenada em cache,
  2. A criação de fatias de áudio, parametrizado por seus requisitos de tipo e comprimento,
  3. A seleção pseudo-aleatório de casos de áudio a partir de um grupo de alternativas ponderadas – aqui selecção passado é usado como entrada para o algoritmo bem

Projeto ressalva – Google Drive

Um projeto adiantado tinha a faixa de áudio resultando em cache no Google Drive com a resposta do servidor web sendo um redirecionamento para o arquivo em cache. Esta solução foi atraente porque alavancou a muito maduro, escalável e de baixo custo Google Drive. No entanto, revelou-se problemático com o Google Drive aplicar rapidamente um governador sob bastante pequenas quantidades de carga. Descobriu-se Google Drive não foi uma boa opção para este tipo de serviço. Se todas as solicitações de unidade veio do serviço web, otimização foi aplicado que limitava o serviço. Além disso, era difícil para fornecer URLs do Google Drive para os clientes de uma forma que de forma confiável não iria resultar em pedidos de autenticação. Google Storage acabou por ser usado no lugar do Google Drive.

Resumo – uma grande pilha de tecnologia

Elixir provou tanto um ajuste perfeito para este projeto e um prazer real para trabalhar. O ferramental em torno da linguagem é maduro e apto para o efeito, a plataforma OTP é a melhor solução para a confiabilidade e facilidade de manutenção ea restriçãode uma linguagem puramente funcional provou ter mais de um benefício de uma limitação. Menos realmente pode ser mais com design de linguagem de programação. Google Cloud Platform faz comissionamento infraestrutura, monitoramento e manutenção muito mais fácil do que lidar com hardware físico. GCP conjunto de ferramentas amadureceu e as instalações são extensa. Nós recomendamos totalmente a pilha de tecnologia Phoenix / Elixir / GCP para desenvolvimento e implantação, serviços web complexas de missão crítica.


Canção de ritmo Tracks

Canção de ritmo Tracks
Canção de ritmo Tracks

Canção de ritmo Tracks é um novo tipo de faixa de apoio composta inteiramente de apoio rítmica (sem melodia ou harmonia) dispostos à forma musical da canção – é “songform”. Estas faixas são performances completas como se obtém a partir de um baterista profissional. Eles têm uma contagem-in, seção de introdução, coros e terminações característicos, emoldurado por preenchimentos que mostram onde as seções de início e fim. Mesmo pontes musicais e coros média têm maior intensidade quando apropriado para o estilo. As coisas são mantidas simples por acabar com a interface do arranjador tradicional. Pode-se selecionar uma faixa em menos de 30 segundos – menos de 15 segundos, uma vez que se tem o jeito dele.

O jogador do App tem ajuste de tempo e uma academia para sequenciar as faixas para o seu show ou jam session. É por músicos de todas as habilidades. Novos músicos usar o App para fornecer acompanhamento de canções. Eles ganham um ritmo que é simpático para que eles aprendem a manter o tempo, entrar no ritmo e internalizar estrutura musical da canção – Tudo isso enquanto desfruta de ritmos envolventes e inspiradoras. Gigging músicos catalogar o seu apoio em setlists e usá-lo para orientar o desempenho. Tendo apoio rítmico qualidade, com uma facilidade setlist e leitor de um músico,  tudo em um App é tão conveniente se encontra a si mesmo usando este apoio rítmico mais e mais.

Canção de ritmo Tracks são verdadeiramente apoio rítmica de alta qualidade que seja conveniente para selecionar e reproduzir. Você não vai se cansar destas faixas de apoio. Você não vai ter para sequenciar nada. Você vai descobrir que o jogador e setlist interface de usuário incentiva o uso continuado. Você começará a apreciar a forma de suas canções mais e você pode incluir essas faixas em suas próprias singles e álbuns. Não ser adiadas por experiências com outros Aplicativos percussão móveis. Canção de ritmo Tracks são algo diferente.

Se você está aprendendo uma nova melodia, congestionamentos gigging ou cortar o seu mais recente álbum, este ritmo as músicas fornece uma solução.

Confira amostras do áudio na página de amostras do Vivo Drumming

Confira estes artigos de Vivo Drumming que dão mais insights sobre o pensamento por trás do produto,

Como praticar, então como a jam

Quando a trabalhar em seu ritmo?

Por songform com faixas de ritmo?

Baixe o Rhythm as músicas App na App Store da Apple

Tente Alive Drumming amostrador aplicativos para provar previamente combinado faixas de músicas populares. É então fácil de usar o aplicativo para ajustar estes para suas necessidades de prática e desempenho. Todos os aplicativos do sampler são a mesma canção Rhythm Tracks aplicativo, mas com as faixas de amostra incluídos.


Também publicados no Médio.


Also published on Medium.