12
votes

Création d'une station de travail audio numérique

J'essaie d'écrire ma propre Daw, surtout simplement pour en savoir plus sur les mathématiques de la manière dont les signaux sont traités pour obtenir des effets, mais aussi pour le plaisir. (Une entreprise assez importante, mais j'ai le temps pour le moment). Je voudrais que cela fonctionne quelque chose comme Record de Propellerhead comme dans le rack surtout.

Je suis en cours d'exécution sur un Mac, je pense donc à utiliser des unités audio pour les différentes parties, puis audio de base pour les pièces d'échafaudage. Donc, tout ce qui serait écrit en C ou obj-c.

Cependant, je n'ai plus utilisé d'unités audio ni de base-audio avant, et Internet n'a pas été de l'aide pour apprendre.

Est-ce que quelqu'un sait-il où je pouvais apprendre à ce sujet? Ou Java (la seule autre langue que je me sens à l'aise à l'aise) soit meilleure, ou y a-t-il quelque chose que j'ai complètement manqué tout en essayant de trouver le moyen "facile" de faire cela?

merci, Jon


1 commentaires

Si vous souhaitez en savoir plus sur le traitement / les effets du signal numérique, je recommanderais vivement à "juste" écrire des plugins VST. Je travaille actuellement sur une DAW, et je souhaite vraiment, je pourrais enfin arriver à la pièce d'écriture. En outre, la programmation VST-Plugin vous montrera comment écrire une DAW avec une belle interface avec les effets / plugins.


3 Réponses :


5
votes

Regardez la plate-forme croix C ++ Bibliothèque Juce, il est open source avec la possibilité de licence le code (le prix n'est pas mauvais). Beaucoup de développeurs professionnels de Daw et de VST l'utilisent, je suis l'un des em.

https://www.juce.com/

Avertissement, cette bibliothèque est très amusante à jouer avec. Il a renouvelé mon intérêt pour C ++, qui n'était pas un petit exploit.


0 commentaires

13
votes

Si vous voulez écrire une DAW:

  • Au minimum, faites mouiller vos pieds avec un projet existant. Si je devais choisir personnellement un projet, je contribuerais à ARDOR.

  • Le traitement du signal dans une DAW est relativement simple. Vous devrez travailler avec des mélangeurs, des fichiers et des graphiques. Si vous êtes déjà à l'aise d'écrire des applications, vous n'apprendrez probablement pas beaucoup (au-delà des bases). Bien sûr, vous pouvez trouver un projet existant et l'étendre avec des fonctionnalités qui se rapportent à ce que vous voulez apprendre; Vous pouvez écrire des bouchons ou des visualisations.

    Si vous préférez fonctionner avec le traitement du signal:

    • Les plugins AU OU VST seront une bonne intro - il existe de nombreux projets existants que vous pouvez faire référence. Finalement, vous serez fatigué d'attendre qu'un hôte chargerait de tester votre programme.

      Langue:

      • objc n'est pas utilisable pour le rendu audio en temps réel.

      • Java est très inhabituel pour cette application. Il y a des wrappers pour Aus et Coreaidio ... mais je ne peux pas nommer une commerciale Java Au pour OS X.

      • La plupart des magasins audio (que je connais) utilisent C ++ - pas C. (le matériel est différent). Cela semble vraiment une omission étrange de votre liste - la plupart des DAWS et des plugins utilisent C ++, et c'est la langue que vous trouverez le plus d'exemples de. Si vous êtes déjà à l'aise avec C et Java, je recommanderais de venir à des conditions. avec C ++ parce que c'est la langue standard dans l'industrie lors de la ciblage des ordinateurs de bureau.


1 commentaires

Merci pour la réponse détaillée. Je vais avec Coreaidio et Aus. (et par c, je voulais dire C ++. Je suppose que je venais d'avoir un esprit vide). Avez-vous de la chance d'avoir une référence à certains algorithmes d'effets? Ou quoi que ce soit sur la manière dont des effets différents sont faits? Merci encore.



3
votes

Vous avez droit à supposer que la base de l'audio central et audioounits pourrait constituer la base d'un système (qui peut ne pas nécessairement être une DAW à part entière, mais peut avoir une combinaison d'enregistrement audio multi-pistes, d'édition, de lecture , etc ...) beaucoup plus facile que de se soucier des préoccupations inter-plateformes, des cadres énormes tout englobants tels que Juce ou Asio et d'autres hacks de contournement du système d'exploitation. Je pense que vous constaterez que la programmation audio est une discipline spécialisée et la plupart des gens ici sur Stackoverflow sont mal préparés pour offrir des conseils utiles. Java est plutôt inappropriée, de même que C #, comme on les interpréter les langues pour l'audio, en particulier pour MultiChannel Audio, DSP, etc. En raison de contraintes de temps et de la nécessité de travailler sur un niveau assez bas pour de nombreuses boucles critiques. Vous trouverez les documents dont vous avez besoin sur développeur.apple.com (vous devrez vous connecter) et vous trouverez des exemples de shell pour votre intérêt directement à l'intérieur des exemples de Xcode ... bonne chance


0 commentaires