Haut-parleur PC à onze

Connu aujourd'hui sous le nom de "haut-parleur de la carte mère", ou simplement "bip", le PC Speaker a été introduit en 1981 avec le premier ordinateur personnel IBM. En tant que successeur des gros ordinateurs sérieux pour les affaires sérieuses, il a été conçu pour produire des bips système très basiques, de sorte qu'il n'a jamais vraiment eu la chance de briller comme un appareil musical dans de nombreux programmes de divertissement du marché domestique émergent. Éclipsé par des puces sonores beaucoup plus avancées des systèmes de jeu à domicile populaires, rapidement remplacées par des cartes son puissantes, il a principalement servi d'option de secours, jouant le contenu fortement dégradé d'un meilleur matériel audio.

«System Beeps» est un album de musique sous la forme d'un programme MS-DOS qui propose de la musique originale composée pour PC Speaker en utilisant les mêmes techniques anciennes de base que celles trouvées dans les jeux PC classiques. Il suit la formule habituelle de la démoscène rétro-informatique - prenez quelque chose de rouillé et obsolète, et poussez-le à onze - et tente de révéler le potentiel caché de cet humble petit appareil sonore. Vous pouvez l'entendre en action et vous faire une opinion sur le succès de cette tentative à Bandcamp , ou dans la vidéo ci-dessous. L'article suivant est un aperçu détaillé des capacités originales du haut-parleur PC et de la réalisation du projet, pour ceux qui voudraient en savoir plus.


Internes de haut-parleurs PC


Le PC Speaker est un petit haut-parleur à commande magnétique ou, plus récemment, un buzzer piézoélectrique, directement piloté par un canal de la minuterie d'intervalle programmable 8253 qui divise la fréquence d'horloge entrante de 1,19 MHz par une valeur programmée de 16 bits. Pour produire du son, la minuterie est réglée sur le mode générateur d'ondes carrées. C'est une amélioration petite mais pratique par rapport aux ordinateurs domestiques contemporains à faible coût tels que Apple II et ZX Spectrum , où le haut-parleur a été connecté directement à une ligne d'E / S et le son est censé être produit entièrement par le CPU. L' utilisation de PIT permet au CPU de simplement configurer une fréquence et de continuer à gérer d'autres tâches pendant que la minuterie génère du son. Cependant, le processeur peut produire des sons polyphoniques multitimbres beaucoup plus intéressants, tandis que le haut - parleur du PC lui-même, sans l'aide majeure du processeur, est incapable de sonner fort ou silencieux, doux ou net - il n'est limité qu'à l'onde carrée sans contrôle du volume.

Pour lire des effets sonores ou de la musique, le processeur met à jour l'état de la minuterie, c'est-à-dire le son activé / désactivé et sa hauteur, sur des périodes de temps uniformément réparties. Habituellement, cela se fait dans le gestionnaire d'interruption du canal de minuterie 0 (IRQ0) qui est piloté par la même puce PIT. Le taux d'interruption par défaut est de 18,2 Hz, mais les jeux augmentent souvent ce taux jusqu'à 30 ... 200 Hz, selon le jeu. Cela aide à améliorer un peu la complexité du son.

Le haut-parleur PC peut jouer efficacement des tonalités dans la plage 100 ... 2000 Hz. Il peut aller bien plus bas ou plus haut, mais cela soulève certains problèmes. Les petits haut-parleurs et les piezos ne reproduisent pas assez bien les autres fréquences. Au-dessus de 2000 Hz, il commence également à s'écarter des fréquences des notes de musique en raison de la résolution de la minuterie. En dessous de 100 Hz, la fréquence du son peut devenir inférieure à la période de mise à jour, entraînant la perte de certaines mises à jour du son, car la minuterie ne met à jour le diviseur de fréquence qu'une fois le décompte actuel avec le diviseur précédent effectué.

Polyphonie monophonique


Le haut - parleur PC est un appareil monophonique - il n'a qu'un seul canal sonore ou "voix", c'est-à-dire qu'il ne peut jouer qu'une seule fréquence sonore à la fois. C'est très limitant à des fins musicales, donc les développeurs de jeux et les compositeurs de musique ont trouvé des moyens de réaliser une polyphonie vraie ou fausse. Trois approches communes ont été développées et utilisées au fil du temps.

La première approche considère que le haut-parleur PC joue en onde carrée comme d'habitude, le code du joueur met à jour sa hauteur dans l'interruption de la minuterie à un rythme défini, ne faisant pratiquement aucune charge pour le CPU. Mais il y a 2-3 canaux virtuels de son avec différentes parties jouées, un seul d'entre eux étant émis vers le haut-parleur réel à un moment donné, et ils alternent avec chaque mise à jour. Par exemple, il y a deux canaux. Dans une mise à jour, la première est dirigée vers le haut-parleur (diviseur de fréquence et état marche / arrêt du haut-parleur envoyés aux registres sonores), dans une autre mise à jour, la seconde est dirigée vers le haut-parleur à la place. C'est ainsi qu'une sorte de polyphonie a été réalisée dans Lotus III et Xenon 2 . Un cas assez courant ici est qu'un canal joue la partie basse tandis que l'autre joue la mélodie, et ces parties sont loin séparées par la fréquence, faisant des sauts de hauteur majeurs, ou un canal joue une note tandis que l'autre est coupé - dans les deux cas, il conduit à un bourdonnement constant désagréable. Il peut être réduit en omettant toutes les notes en sourdine dans la musique, comme le fait la Hache d'or , ce qui limite beaucoup les moyens d'expression musicale (les pauses ont autant d'importance que les notes en musique). Une autre façon consiste à éviter autant que possible d'alterner les canaux, comme lorsqu'un seul des canaux joue une note. Cela aide à rendre ces pièces plus propres, comme on l'entend dans Stunts .

La deuxième approche se retrouve dans de nombreux jeux Lucas Art . La société a souvent fait un effort supplémentaire pour améliorer le son des versions haut-parleur de leur musique. Ceux-ci jouent généralement une mélodie principalement monophonique qui a des parties mélodiques, basses et rythmiques séparées dans le temps. Le deuxième canal joue des notes staccato très courtes, comme l'arpège ou la batterie, qui ont la priorité, coupant brièvement le canal principal. Des exemples peuvent être trouvés à Monkey Island , Loom , Indiana Jones . L'une des utilisations les plus avancées de cette technique est entendue dans Zak McKracken et Alien Mindbenders . Cela rend l'illusion polyphonique beaucoup plus réaliste et agréable, bien que ses capacités soient assez limitées.

Avec la dernière, troisième approche, le matériel des haut-parleurs PC n'est pas utilisé pour générer du son seul, mais plutôt comme un DAC brut qui émet simplement le son généré par le processeur dans le logiciel. Cela prend beaucoup de temps CPU, atteignant presque 8086 au maximum, donc il n'a gagné en popularité qu'avec l'arrivée de 80386. La qualité sonore de cette méthode est plutôt médiocre et objectivement inférieure à celle d'une réplique Covox la plus simple composée d'une poignée de résistances. Néanmoins, c'était une réalisation vraiment impressionnante pour l'époque, d'autant qu'une de ses implémentations, RealSound , a été brevetée et sous-licenciée.

Le haut-parleur du PC peut être transformé en DAC soit en désactivant le décompte de la minuterie puis en activant / désactivant la sortie audio, ce qui en fait un DAC 1 bit très basique, ou en utilisant le canal sonore du PIT pour générer de courtes impulsions de largeur variable (PWM) à fréquence porteuse définie par l'interruption de la minuterie, ce qui donne un DAC 6 bits bien meilleur. Le premier peut être entendu dans Fantasy World Dizzy et Hard Drivin ' , le dernier était le plus souvent utilisé pour jouer de la musique numérique à base d'échantillons, comme dans Pinball Des rêves . Il a également été utilisé dans des outils fascinants du passé comme TEMU et VSB - émulateurs logiciels de la puce audio Tandy à 3 canaux et partie numérique du Sound Blaster , qui permettaient d'avoir du son via PC Speaker dans des programmes prenant en charge les appareils nommés sans avoir les appareils eux-mêmes (requis 386SX ou mieux).

Album et comment il a été réalisé


À l'origine, je n'avais aucune intention de faire un album de musique. Je concevais un projet de jeu qui serait conçu comme un pseudo-jeu graphique de l'ère XT. Pour compléter la vision, j'ai eu l'idée de faire non seulement de la stylisation, mais de la musique de haut-parleur PC qui suivrait également la formule commune des jeux de l'ère 8 bits - une piste en boucle d'environ une minute. Je ne voulais pas utiliser d'échantillons numériques ou de synthèse logicielle, car cela serait déplacé pour une esthétique réfléchie et n'aurait pas un caractère unique en soi. J'ai ressenti un attrait particulier dans la musique monophonique depuis que je l'ai entendue pour la première fois sur ZX Spectrum dans des jeux tels que Ping Pong , Stardust , Score 3020 . Ayant une telle opportunité, j'étais impatient d'essayer de faire une musique monophonique réelle, et d'essayer de faire ressortir des résultats inédits via des moyens d'arrangement - un défi attrayant pour moi en tant que compositeur de musique.

Le travail sur la musique m'emporte et m'intéresse plus que le projet de jeu lui-même. Après avoir explosé , j'ai développé et publié PCSPE , le plugin VSTi , fait de nombreux croquis musicaux et quelques versions de couverture de mes œuvres plus anciennes, afin de développer des techniques de composition adaptées à l'arrangement monophonique et de façonner la conception sonore générale. Finalement, j'ai décidé que le résultat ne correspondait pas au projet de jeu qui, au moment où il a perdu son attrait pour moi, a été suspendu. Cependant, j'avais fait de la musique, et sentant que cela avait un potentiel digne de sortie, je pensais que ce serait bien de faire un prod rapide et de le rendre public juste comme un disque de musique MS-DOS autonome, qui serait également servir de démo pour les capacités PCSPE .

Quick prod s'est avéré moins rapide. Quelques chansons sont devenues quelques dizaines, la collection de chansons aléatoires est devenue un album conceptualisé, les plans ont changé, les délais ont été reportés. Il a fallu près de 1,5 an pour terminer le projet, de juillet 2017 au 7 janvier 2019. Pendant ce temps, j'ai également réussi à développer l' AONDEMO et à composer une chanson pour celui-ci (le matériel audio AON correspond étroitement au haut-parleur PC). ), ainsi que participer au projet de jeu Planet X3 en tant que développeur de code sonore et d'outils. Ce jeu a également fini par utiliser la toute première piste que j'ai composée pour l'album comme chanson titre.

La fin du projet a été retardée beaucoup, il y avait de plus en plus de chansons, jusqu'à ce que j'utilise toutes les idées et les ébauches originales qui ont été faites en travaillant sur le projet. La liste finale des pistes comprend 23 chansons réparties en trois groupes.

La face A comprend 16 chansons principales, plus ou moins liées à la fois au thème et à la conception sonore. La plupart d'entre eux ont été composés pour cet album à partir de zéro, ou étaient basés sur de vieux matériaux inutilisés qui conviennent bien à l'arrangement monophonique. Pour cette catégorie, j'ai choisi les chansons les plus originales et les plus réussies dans les limites choisies, par rapport aux autres.

La face B comprend 6 chansons soi-disant de qualité face B. La plupart d'entre elles sont des versions de couverture de mes œuvres plus anciennes pour d'autres plates-formes, ou étaient basées sur un matériel de backlog inutilisé plus développé qui était initialement ciblé sur des supports très différents, allant d'un module de suivi XM à une chanson pop punk. Ce côté comprenait également la chanson qui a été utilisée dans le jeu Planet X3 .

Side X comprend une piste bonus, adaptée d' AONDEMO avec un minimum de changements. Il a été séparé du reste dans un troisième côté, à cause de l'humour.

L'album lui-même a été présenté comme un programme pour MS-DOS 3.3 ou supérieur, qui s'exécutera sur IBM PC XT classique avec au moins 256 Ko de RAM et une carte vidéo CGA . Le CGA d' origine est sujet à ce que l'on appelle la "neige", un artefact visuel qui se produit chaque fois qu'un programme écrit dans la mémoire vidéo pendant le balayage tramé. Ainsi, le programme de l'album se décline en deux saveurs - un sbx.com coupé sans neige, mais sans effet d'analyseur de spectre, et sb.com complet avec des visuels complets. Un processeur plus rapide est recommandé pour rendre les visuels plus fluides. Vous pouvez également utiliser un PC moderne avec FreeDOS chargé à partir d'une clé USB ou une émulation DosBox .

Côté musical


L'album n'utilise pas d'astuces avancées telles que la synthèse sonore du logiciel ou la lecture d'échantillons. Il utilise la technologie la plus traditionnelle - onde carrée monophonique classique générée par le canal PIT. Le taux de mise à jour du son est de 120 Hz, un peu plus que d'habitude, mais rien d'extrême. Classic XT est totalement à la hauteur de la tâche, avec suffisamment de temps CPU restant pour effectuer d'autres tâches en plus de jouer de la musique.

Le vrai truc est dans une approche spéciale de la composition et de l'arrangement de la musique. L'expérience passée dans des domaines de connaissances connexes m'a été d'une grande aide - l'expérience de faire de la musique pour des puces sonores classiques qui nécessitait souvent de mettre quelques parties en canal unique en entrelaçant et en superposant des éléments; l'expérience du développement de moteurs sonores de jeux pour les anciens systèmes de jeux, où les effets sonores doivent généralement voler les canaux sonores de la musique; expérience de la composition de musique originale à lire sur un lecteur de disquette. Il s'est avéré que je développais en fait l'approche qui a été utilisée par Lucas Art , bien que je n'en sois pas au courant, et j'ai seulement entendu le thème de Monkey Island à l'époque.

Un problème intéressant qui devait être résolu immédiatement était la batterie et les percussions. Dans le chiptune traditionnel, ils sont normalement faits avec un mélange de tonalité et de bruit blanc. Cependant, il n'y a aucun moyen pour le haut-parleur PC de produire un bruit blanc tout en maintenant le taux de mise à jour du son dans une plage de douze à cent Hz.

La grosse caisse et les toms fonctionnaient très bien sans utiliser de bruit, tout comme le ton glisse vers le bas avec une vitesse et une durée différentes - le coup de pied est un glissement rapide vers le bas à partir d'une note inférieure, le toms est un glissement plus lent et plus long vers le bas à partir d'une note plus élevée. Le plus important, la caisse claire, n'a cependant pas bien fonctionné comme une simple diapositive de tonalité, cela semble étrange et ne coupe pas le mixage occupé avec d'autres éléments. Une astuce courante dans SID et AY-3-8910 chiptune a bien fonctionné ici - un bref moment de silence inséré juste après le début de la descente, qui crée un effet de roulement de tambour à rebond court. Cela rend le son de caisse claire suffisamment différent des autres sons de percussion et améliore l'audibilité de la caisse claire dans le mixage sonore. Cela fonctionne particulièrement bien compte tenu des fortes résonances que possèdent les vrais haut - parleurs PC .

Comme il n'y a aucun moyen de produire du bruit blanc, les charleston n'étaient pas de mise. Pour rendre le son de percussion plus intéressant, les sons de batterie varient entre les chansons. Certaines pistes ont des batteries plus longues, d'autres courtes et percutantes, parfois elles ont des basses ou des aigus, des éléments de percussion supplémentaires présents à certains endroits.

Un certain nombre de techniques générales ont été développées tout en travaillant sur la musique. Il peut être appliqué à des arrangements d'écriture qui donneraient l'impression d'avoir une polyphonie pour n'importe quel appareil monophonique sans contrôle de volume - allant d'une carte postale musicale à une machine CNC à une bobine Tesla. La variété des astuces d'arrangement comprend:

  • L'astuce de perception auditive lorsqu'un son probablement plus fort, comme une grosse caisse ou une caisse claire, ou une note dans la mélodie principale, coupe toutes les autres parties, mais le cerveau ne prête pas beaucoup d'attention à un bref manque d'autres éléments sonores.
  • Arrangement qui autorise suffisamment de pauses entre les sons en général, en particulier pendant les parties d'intro. Cela permet de mieux séparer les entités, donc une fois que l'arrangement devient plus intense, le cerveau considère toujours que ces éléments sont là, même s'ils sont à peine entendus.
  • Jouer des notes légèrement décalées, ou composer des mélodies qui mettent la plupart de ses notes sur des rythmes faibles ou décalés, car ces endroits ont tendance à avoir des lacunes, donc les notes mélodiques n'interfèrent pas avec les basses ou d'autres sons. Cela rend les mélodies et les accompagnements très syncopés, ajoutant une touche funky spéciale à la musique.
  • Les arpèges chiptune habituels à différentes vitesses, y compris ceux à 120 Hz. Une large gamme de vitesses d'arpège est très utile pour ajouter plus de variété dans le son, compte tenu du manque majeur de variété timbrale, car tout joue avec une onde carrée simple.
  • Des lacunes dans les sons continus pour permettre à d'autres parties de traverser, ou une série de lacunes de durée croissante pour imiter les baisses de volume.
  • Variété majeure dans la durée des notes, y compris l'utilisation de notes extrêmement courtes, pour imiter la différence de volume. A été utilisé pour mettre l'accent sur le groove de basse et les effets d'écho. L'écho se fait en répétant la même partie avec un retard et avec des notes beaucoup plus courtes.




Côté technique


Un autre élément clé de la production a été l'utilisation d'outils modernes qui ont rendu le flux de travail très efficace et rationalisé. Les outils comprenaient un DAW Reaper moderne (une alternative au FL Studio , Cubase et similaires) ainsi qu'un ensemble de plugins VST développés sur mesure.



Cette approche est expérimentale, tout à fait non conventionnelle dans la fabrication de "vrai chiptune" - c'est-à-dire de la musique destinée à être jouée en utilisant des appareils sonores réels du passé. Habituellement, la fabrication d'une telle musique implique l'utilisation d'un logiciel spécial appelé trackers musicaux, ou une préparation manuelle et la saisie d'octets de données musicales dans le code source. Le même résultat pourrait certainement être obtenu par ces moyens classiques également (exactement ce que j'ai fait pour la planète X3 ), mais cela demanderait beaucoup plus d'efforts et déplacerait l'attention de la création musicale vers la résolution des problèmes techniques en cours de route.

Pour faire de la musique pour PC Speaker , j'ai créé un plugin VSTi appelé PCSPE . Il émule les haut-parleurs internes du PC , permettant d'entendre un son réaliste avec toutes ses bizarreries et limitations, et implémente un système d'instruments chiptune, similaire à celui des trackers musicaux pour diverses puces sonores. Il a des enveloppes pour le volume virtuel (priorité), l'arpège et la hauteur, définies par des chaînes de texte d'un format simple un peu comme MML (un proche par rapport aux chaînes de texte trouvées dans l'opérateur PLAY de BASIC ). Ces enveloppes permettent de concevoir différents instruments, par exemple des sons de batterie ou un instrument solo avec une profondeur de vibrato qui augmente lentement.

La fonction principale du plugin, cependant, est de mélanger quelques pistes MIDI entrantes qui contiennent diverses parties de morceau en une seule piste finale. Le volume virtuel que j'ai mentionné ci-dessus sert de base au système prioritaire. Un seul instrument ayant le volume virtuel actuel le plus élevé joue à un moment donné. Par exemple, un instrument de basse a le volume 2, la mélodie principale a le volume 6 et tous les instruments de batterie ont le volume 8. Dans ce cas, les notes de mélodie auront la priorité sur les notes de basse, coupant la partie de basse pendant la mélodie et tous les tambours coupent le son d'autres sons. C'est ainsi que quelques parties musicales jouant simultanément sont mélangées dans le canal monophonique du haut-parleur PC .

Le plugin dispose également d'une fonction d'exportation qui permet d'utiliser de la musique dans des programmes MS-DOS réels. Il fonctionne comme un simple enregistreur de données: le plugin a des informations sur la fréquence qui est émise vers le haut-parleur à un moment donné, et le timing des changements de fréquence. Lorsque la chanson est jouée du début à la fin avec la fonction d'exportation activée, ces données sont capturées et écrites dans un fichier en temps réel. Maintenant, pour rejouer la musique, il suffit de choisir les données du fichier et de les envoyer au haut-parleur du PC en utilisant des synchronisations enregistrées.

L'arpège de chiptune classique peut être créé dans PCSPE de la manière classique, en utilisant une enveloppe d'arpège qui définit une séquence de décalages en demi-tons à partir de la note de base. Cependant, cela nécessiterait de basculer entre les instruments assez souvent, et de garder à l'esprit quel instrument doit être utilisé pour un accord particulier. Ce n'est pas un flux de travail très pratique à utiliser dans un DAW moderne.

Mon autre VSTi , un arpégiateur appelé ChipArp , aide à rendre les arpèges chiptune classiques d'une manière beaucoup plus facile. Il prend les accords polyphoniques normaux d'une piste MIDI entrante et les transforme en un arpège de la configuration requise (tout en haut, tout en bas, de haut en bas, au BPM requis) à la volée - vous pouvez simplement jouer des accords à l'aide d'un clavier MIDI et entendre arpège approprié tout de suite. Contrairement aux arpégiateurs modernes qui sont conçus pour être utilisés dans la musique électronique, mon plugin ne redémarre pas une note pour chaque étape d'arpège, mais l'implémente plutôt comme une série de pitch bends rapides à partir de la note de base. De cette façon, il ne casse pas les instruments avec un flux sonore continu, et vous pouvez toujours les entendre évoluer dans le temps tout en étant arpégés. Le hic ici est que le plugin de synthé doit prendre en charge les grands pitch bends et y réagir immédiatement, ce qui n'est pas courant pour les synthés modernes. Cependant, tous mes synthétiseurs VST prennent en charge cela.

Presque tous les émulateurs, y compris PCSPE et des choses comme DosBox , produisent une version idéalisée de l'onde carrée, qui sonne assez différemment du vrai matériel. Les minuscules petits haut-parleurs qui sont uniquement destinés à produire des bips de base ont beaucoup de fortes résonances et distorsions. Cela met l'accent sur les transitoires, c'est-à-dire les moments d'activation ou de désactivation du son, ou les changements rapides de fréquence. Entre autres choses, cela rend la batterie et les notes courtes plus sonores sur le haut-parleur du PC . Pour contrôler et utiliser cette bizarrerie pour le plus grand bien, j'ai enregistré quelques réponses d'impulsion pour un certain nombre de petits haut-parleurs, et les ai utilisés avec un plugin de convolver gratuit appelé NadIR - un peu comme les réponses d'impulsion des armoires de guitare sont utilisées de nos jours lors de l'enregistrement de guitares lourdes.

Marchandises


Le projet a été publié sous la licence CC-BY . Cela inclut la musique elle-même, le code source du lecteur et les projets Reaper pour toutes les chansons. De cette façon, vous pouvez faire n'importe quel projet dérivé, qu'il soit lié à la musique ou au code. Tous les plugins utilisés pour créer l'album sont également disponibles gratuitement avec le code source:

Lecteur d'album MS-DOS
Projets de code source et Reaper
PCSPE avec code source
Chipart avec code source
De minuscules haut-parleurs stimulent les réponses

Source: https://habr.com/ru/post/fr439192/


All Articles