2009-12-05 17 views
4

Je veux écrire un logiciel de musique qui peut jouer de la musique, peut détecter la hauteur du son pris du microphone de l'ordinateur (avec un algorithme qui utilise des filtres sonores pour filtrer les fréquences), et permet une bonne interface utilisateur. quelque chose de similaire à smartmusic: http://smartmusic.comQu'est-ce qu'un bon langage de programmation pour les logiciels de musique?

des suggestions pour ce qui pourrait être la langue la plus appropriée pour écrire ce genre de logiciel? Est-ce que quelqu'un sait à quelle langue smartmusic a été codé?

merci

Répondre

2

Je suppose que vous essayez de faire ce qui précède en temps réel ou presque? Dans ce cas, vous recherchez définitivement des langages compilés et non des langages de script interprétés car les calculs requis pour ce type d'analyse nécessiteraient probablement une puissance de traitement trop importante dans un langage interprété.

La plupart des logiciels traitant de ce type de traitement de signal ont tendance à être écrits dans des langages assez bas niveau comme C. Vous pourriez même trouver qu'il existe des bibliothèques disponibles pour ce type de traitement pour votre plate-forme spécifique. C'est certainement là que je commencerais à chercher d'abord à moins que vous ne vouliez implémenter ces algorithmes par curiosité intellectuelle. Sur la base des bibliothèques que vous trouvez, vous pouvez alors aller trouver un langage de programmation qui peut les utiliser, ce qui pourrait ou non vous ramener à la famille des langages C (C, C++, Objective-C selon votre plateforme) .

7

La meilleure langue est probablement celle que vous connaissez le mieux, à condition que ce soit une bonne langue polyvalente qui offre un accès facile au matériel audio (microphone/haut-parleur). Visual Basic, C#, C++, Java sont tous rapides et faciles à écrire, et vous donnent un accès facile au matériel, etc.

Mais finalement, le traitement audio est très simple, et les API d'enregistrement/lecture sont très courantes - donc le meilleur la langue est probablement celle que vous sentez le plus à l'aise d'utiliser. Vous pouvez toujours commencer par une expérience de base (enregistrer et lire de l'audio) - si vous êtes satisfait de la façon dont cela se passe, le traitement audio sera le même dans toutes les langues.

2

Il ne semble pas que vous ayez besoin de coder des effets complexes et des fonctionnalités de Digital Sound Processing ... Vous n'avez donc pas besoin de langages de bas niveau comme C++. Je pense que vous devriez vous concentrer sur l'interface utilisateur et la convivialité. Je vois que Java a été suggéré. Même si Java est facile à utiliser, la programmation de l'interface utilisateur Java est quelque chose qui n'est pas très pratique. Je préfère opter pour un langage de très haut niveau comme Python, C# ou Java et utiliser une boîte à outils plus pratique. Par exemple, vous pouvez utiliser WPF ou Winforms avec C#. Ou Qt ou Gtk pour Python (il y a même des liaisons Java ... mais je ne suis pas sûr de l'état de celui-ci.). Quoi qu'il en soit, utilisez quelque chose qui vous permet de coder facilement afin que vous puissiez vous concentrer sur la convivialité et d'autres choses.

0

J'utilise Delphi. Il combine toutes les fonctionnalités ci-dessus, il est compilé, il dispose d'une puissante bibliothèque de traitement audio (BASS), et possède de merveilleuses capacités d'interface utilisateur. Avec cela, j'ai écrit un mélangeur, un lecteur de ligne de commande, un analyseur de spectre, un chercheur de son et de silence, et un comparateur de musique.

0

Si vous êtes familier avec la langue de l'école Pascal, je vous suggère d'aller pour Delphi. Il est basé sur Object Pascal qui a la plupart des capacités de C++ (sinon plus) et vous éloigne de la plupart des concepts de programmation avancés. Vous pouvez réaliser beaucoup de choses en sachant très peu.

Les bibliothèques audio susmentionnées (Bass, Fmod, etc.) ont toutes des interfaces Pascal. En ce qui concerne la construction de GUI, VCL est une solution facile à utiliser, FMX si vous voulez aller multi-plateforme. La combinaison de Delphi, FMX et Bass est la configuration de codage audio la plus puissante pour les débutants ou les programmeurs ayant peu d'expérience (comme moi). Pratiquement tout le reste signifie plus d'effort ou plus d'expertise requise.