Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/05/2024, à 09:13

temps

[résolu] probleme d'intégration de la libsox

Bonjour,
je voudrais intégrer la libsox à un projet audio (pour lire les fichiers et pour évoluer vers des mix).
J'ai téléchargé les sources et je les ai placé dans le répertoire, mais quand je cherche à compiler j'obtiens une erreur.
Mon code pour compiler est :

 g++ 'composox.cpp' -std=c++11 -lsox  -Wall -Wextra -o 'composox'

j'obtiens la réponse

/usr/bin/ld : ne peut pas trouver -lsox : Aucun fichier ou dossier de ce type
collect2: error: ld returned 1 exit status

et le fichier compilé est :

#include <cstdlib>
#include <fstream>
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <cstring>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include </src/sox.h>
#include <memory>

 /**pour compiler g++ 'composox.cpp' -std=c++11 -lsox  -Wall -Wextra -o 'composox' ********************/
int main(void) 
{
char appli[20];
int j,a;
std::cout << "Indiquez le nombre de formes à associer : "; std::cin >> j;
for (int i = 0; i < j; i++)
    { 
    std::cout << "Entrez la reférence, exemple :1 pour joapp1 de la forme à associer : "; std::cin>>appli;
    for (int k = 0; k < 1; k++)
        {
        char joapp[20]{"./joapp"};
        strcat(joapp,appli);
        std::system (joapp );
        std::cout << "Attendre 5s, puis tapez sur 1 pour que l'application transforme le fichier texte :";std::cin>> a;
        }
    if (i == 0){std::system ("./executable");}
    else {std::system ("./executable1");}
    std::cout << "Attendre 5s, puis tapez sur 1 pour poursuivre :";std::cin>> a;
    std::system ("./poids");
    std::cout << "Création de l'entete,attendre 2s puis tapez sur 1 pour poursuivre :";std::cin>> a;
    }
    /*Player::Player() {
                     sox_format_init();
                     }*/
    std::system ("play audiojo.wav");
}

Dernière modification par temps (Le 14/05/2024, à 10:51)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#2 Le 14/05/2024, à 10:00

Vobul

Re : [résolu] probleme d'intégration de la libsox

T'as pas le bon chemin pour ta libsox.

Tiens regarde comme c'est bien expliqué là : https://chat.openai.com/share/69c736c2- … 82b2612e65


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 14/05/2024, à 10:37

temps

Re : [résolu] probleme d'intégration de la libsox

Mille mercis pour la réponse, je vais suivre le lien.
Cela fait plusieurs jours que je cherche.
ça marche super, est-ce que je peux vous citer dans le code en indiquant l'adresse du tuto ?

En suivant le tuto, je me suis aperçu que mes erreurs étaient nombreuses, en d'autres mots, j'étais pas encore arrivé sans votre aide.
L'étape suivante va être de mixer plusieurs sons, mais je dois en premier ajuster un peu partout cette nouvelle fonctionnalité.

Je poste en résolu

Cordialement

Dernière modification par temps (Le 14/05/2024, à 10:50)


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne

#4 Le 04/06/2024, à 12:04

temps

Re : [résolu] probleme d'intégration de la libsox

Bonjour,
Encore mille mercis pour la réponse.
Je reviens sur le fil pour indiquer la suite à savoir l'intégration dans un base graphique "qt"

Pour Qt, il faut se rendre dans sourceforge télécharger le code et prendre dans le code le répertoire src, placer le répertoire scr dans le répertoire de travail.
ensuite il faut mettre en haut du fichier

#include <QProcess>
#include "src/sox.h"

et pour appeler la lecture au clique sur un bouton

void MainWindow::on_pushButton_4_released()
{
    //    std::system("sox audiojo.wav -c 2 josox1.ogg && play josox1.ogg chorus 0.5 0.9 50.0 0.4 0.25 2.0 -t 60.0 0.32 0.4 2.3 -t 40.0 0.3 0.3 1.3 -s");
    // Initialiser libsox
    sox_format_init();
    QProcess qprocess;
    qprocess.startDetached("play",QStringList()<<"audiojo.wav");
    sox_format_quit();
}

Cette technique évite d'avoir des fenêtres d’alertes ou d'aller chercher des codes bien compliqués de qt

Cordialement


Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net

Hors ligne