Développement C++ : Console de Mixage

Pendant mon Master, j’ai eu pour projet de développer un logiciel de mixage (un début de logiciel en tous cas !). Voilà quelques détails sur le développement via la librairie Qt, en C++.

 

Interface du logiciel

 

La classe MainWindow

La fenêtre principale est l’hôte des éléments suivants:
– le menu de contrôle
– les différentes pistes

Le menu permet différents réglages généraux (lecture, pause, stop), et la gestion du nombre
de pistes (ajout et suppression). Sa taille est fixe, et il reste sur la gauche de la fenêtre.
Les boutons du menu sont des QPushButton, dont l’icône est une image en format PNG
présente dans les ressources du projet. Leur utilisation renvoie un signal, qui appelle les méthodes de toutes les pistes à la fois.
J’avais commencé ce projet en intégrant les pistes à la classe MainWindow, mais plus le
projet avançait, plus il me paraissait important de créer une nouvelle classe pour les pistes
audio. J’ai donc ajouté AudioTrack.h et AudioTrack.cpp, que je détaille plus loin. Ceci étant
fait, il était simple de relier les boutons « Ajout de piste » et « Suppression de piste » au
constructeur et au destructeur de la classe AudioTrack.

La classe AudioTrack

La classe AudioTrack permet tout d’abord de réunir le fonctionnement de base de
différentes widgets et layouts. J’y ai ajouté un héritage de la classe QWidget, et la macro
« Q_OBJECT » pour pouvoir bénéficier des signaux et des slots.

Capture d’écran du code source de la classe

De plus, s’ajoutent les options suivantes :
– Zone de « nom de piste » qui est aussi modifiable, via un QLineEdit
– Slider destiné au réglage du volume
– Bouton d’importation de fichier, avec le même système que les QPushButton du
menu
– Un Media Player non visible, relié à chaque piste
L’importation de fichier audio peut se faire de différentes façons, notamment en appuyant
sur l’icône « dossier » de la piste. Ce bouton renvoie l’ouverture d’une popup, qui permet de
choisir le fichier voulu. Il est ensuite ajouté au Media Player de la piste, et le nom de la piste
est changé par le nom du fichier.
Le slider permet la gestion du volume, via un signal et un slot.

Le Drag’n’Drop

Enfin, il me paraissait important de pouvoir « glisser-déposer » des fichiers dans les pistes
voulues. J’ai trouvé plus simple d’ajouter ce fonctionnement à la MainWindow. Le
fonctionnement est le suivant :
– en glissant un fichier sur la fenêtre, il est vérifié s’il s’agit bien d’une url de fichier
– il est ensuite vérifié si l’on ne se trouve pas au dessus du menu, et bien au dessus
d’une piste
– en « lachant » le fichier, il est automatiquement importé dans la piste au dessus de
laquelle la souris se trouvait, avec le même fonctionnement que celui décrit plus
haut.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Créez un site ou un blog sur WordPress.com

Retour en haut ↑

%d blogueurs aiment cette page :