AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 779009
Accepted
Gridzbi Spudvetch
Gridzbi Spudvetch
Asked: 2024-06-26 05:22:47 +0800 CST2024-06-26 05:22:47 +0800 CST 2024-06-26 05:22:47 +0800 CST

Existe algum tipo de ferramenta de linha de comando que eu possa usar para detectar e gravar metadados para o tom de uma música?

  • 772

Eu gostaria de ser DJ, ou pelo menos juntar músicas em séries e fazer funcionar. Já usei o bpmwrap para marcar o andamento de cada música da minha biblioteca, e isso imediatamente me fez perceber que, mesmo quando o trabalho de andamento é feito para mim, é muito difícil para mim acertar o tom. Existe alguma ferramenta de linha de comando para Linux que eu possa usar para marcar o tom de cada música da minha biblioteca?

Editar: aqui está o texto do roteiro que escrevi para analisar a tonalidade e o andamento. Você pode modificá-lo conforme necessário. Posso esclarecer algumas coisas se alguém precisar, mas estou cansado e não farei isso agora

#!/bin/bash
total=$(tree | grep .mp3 | wc -l)
declare -i count=0
echo -ne "Analyzing tempos... unknown/$total \r"
/home/spyndling/bigboy4tb/compiling/bpmwrap/bpmwrap.sh -w "/home/spyndling/bigboy4tb/Music imports/" > /dev/null
echo -ne "\033[2K"
echo "Tempos analyzed."
for f in ./**/**/*.mp3; do
    count+=1
    echo -ne "Analyzing keys... $count/$total \r"
    mid3v2 --TKEY "$(keyfinder-cli "$f")" "$f"
    echo -ne "\033[2K"
done
echo "Keys analyzed."
command-line
  • 1 1 respostas
  • 44 Views

1 respostas

  • Voted
  1. Best Answer
    JayCravens
    2024-07-03T23:48:52+08:002024-07-03T23:48:52+08:00

    Foi uma aventura, mas consegui instalar o keyfinder-cli.
    Você deseja construir esses pacotes nesta ordem.

    Catch2-3.6.0.zip
    fftw-3.3.10.tar.gz
    libkeyfinder-2.2.8.tar.gz
    keyfinder-cli-main.zip

    Faça um diretório, build_tempfoi o que usei, depois baixe e extraia todos para essa pasta.

    Construindo Catch2 :

    sudo cmake -S . -B build
    
    cd build
    make
    sudo make install
    

    O FFTW3 deve ser compilado usando -fPIC para satisfazer a compilação do libkeyfinder.

    ./configure CFLAGS=-fPIC --enable-shared
    make
    sudo make install
    

    Construindo libkeyfinder :

    cmake -DCMAKE_INSTALL_PREFIX=/usr/local -S . -B build
    cmake --build build --parallel
    sudo cmake --install build
    

    Construa keyfinder-cli .
    A primeira coisa é copiar os libkeyfindercabeçalhos para /usr/local/include.

    sudo mv /usr/bin/include/keyfinder /usr/local/include/
    

    Você não pode simplesmente mover ffmpegos arquivos como libkeyfinderos cabeçalhos.
    A coisa mais fácil a fazer é copiá-los para /usr/local/include do diretório ffmpeg.

    sudo cp /usr/include/ffmpeg/libavutil  /usr/local/include/
    sudo cp /usr/include/ffmpeg/libavcodec /usr/local/include/
    sudo cp /usr/include/ffmpeg/libavformat /usr/local/include/
    sudo cp /usr/include/ffmpeg/libswresample /usr/local/include/
    

    Entre no keyfinder-clidiretório. Os Makefile LDFLAGS devem ser modificados para incluir arquivos /usr/bin/lib64. Substitua-o pelo seguinte:

    PREFIX=/usr/local
    
    CXX = g++
    CXXFLAGS = -std=c++11 -Wall -I/usr/local/include/keyfinder -I/usr/local/include
    LDFLAGS = -L/usr/bin/lib64 -lkeyfinder -lavcodec -lavformat -lavutil -lswresample -lfftw3
    TARGET = keyfinder-cli
    
    all: $(TARGET)
    
    $(TARGET): keyfinder_cli.o
        $(CXX) $^ -o $@ $(LDFLAGS)
    
    keyfinder_cli.o: keyfinder_cli.cpp
        $(CXX) $(CXXFLAGS) -c $<
    
    install: keyfinder-cli keyfinder-cli.1
        install -d "${DESTDIR}${PREFIX}/bin"
        install -m 755 keyfinder-cli "${DESTDIR}${PREFIX}/bin/keyfinder-cli"
        install -d "${DESTDIR}${PREFIX}/share/man/man1"
        install -m 644 keyfinder-cli.1 "${DESTDIR}${PREFIX}/share/man/man1/keyfinder-cli.1"
    
    clean:
        rm -f *.o $(TARGET)
    

    Exporte o caminho: export LD_LIBRARY_PATH=/usr/bin/lib64:$LD_LIBRARY_PATH
    Agora, construa keyfinder-cli :

    sudo make
    sudo make install
    

    faça a saída da instalação

    Agora você deve ter keyfinder-cliinstalado.

    • 0

relate perguntas

  • O comando ip suporta curingas?

  • Qual é a interface recomendada para um utilitário que requer muitos parâmetros? [fechado]

  • Execute o aplicativo X remotamente, execute a GUI no host remoto [fechado]

  • Fazendo mysql CLI me pedir uma senha interativamente

  • Pub / sub de linha de comando sem um servidor?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve