Author: Sybil L.

Art

Les différentes étapes pour coder un dessin avec AxiDraw

Vous souhaitez dessiner avec précision mais vous n’avez pas le coup de main ? Vous désirez représenter plusieurs fois des images ou textes à l’identique ? L’AxiDraw est fait pour vous !

Qu’est ce que l’AxiDraw ?

Dans le cadre de notre projet libre de fin d’année en NSI, nos professeurs, Monsieur Robert et Monsieur Clemente, nous ont présenté l’AxiDraw qui permet de dessiner un projet que l’on a imaginé.

L’AxiDraw est une machine composée de deux moteurs et d’un bras automatisé au bout duquel il est possible d’ajouter différents types d’outils de graphisme.

Son fonctionnement est assez simple : il suffit de programmer les traits que l’on souhaite tracer, à l’aide du logiciel « Inskape » ou avec du langage python, et l’AxiDraw réalise alors notre modèle au format SVG (Scalable Vector Graphics).

Par où commencer ?

Au préalable, il est primordial de définir parfaitement le rendu final désiré.

Il existe différentes façons de le faire. Pour ma part, j’ai choisi de dessiner mon modèle à la main mais on peut aussi préparer son projet à l’aide de logiciels comme Paint.

J’ai donc dessiné une maison sur une feuille à petits carreaux afin de respecter plus facilement une échelle donnée. En effet, notre réalisation ne devait pas être supérieure à un cadre défini par une abscisse comprise entre 20 et 1040 pixels et une ordonnée comprise entre 20 et 730 pixels.

Programme et fonctions de codage

Une fois mon modèle prêt, il ne restait plus qu’à passer au codage !

Nos professeurs nous ont fourni un programme où de nombreux paramètres étaient déjà prédéfinis, comme la bordure de la feuille, la vitesse de l’AxiDraw ou encore différentes fonctions (pouvant tracer une succession de segments par exemple). J’ai donc utilisé ce programme et je l’ai inséré dans l’IDE Thonny. J’ai ensuite installé la bibliothèque Pyaxidraw et Pillow afin que ce dernier puisse fonctionner.

J’ai alors pu commencer réellement la programmation de mon dessin.

Tout d’abord, il était nécessaire de convertir toutes les longueurs, sur ma feuille en centimètres, en pixels. A partir des valeurs obtenues, j’ai alors défini les points délimitant les segments que je souhaitais tracer.

J’ai notamment utilisé la fonction « segments », qui permet de tracer une succession de segments en fonction d’une liste d’abscisses et d’ordonnées de points successifs, comme présentée ci dessous:

def segments(points:list):
    for i in range(len(points) - 1):
        if not coord_in_cadre(points[i][0],points[i][1]) or not coord_in_cadre(points[i+1][0],points[i+1][1]):
            global dessin_valide
            dessin_valide = False
            print("Segments ne pouvant être tracés")
            return        
    if axi_connect and dessin_valide:
        for i in range(len(points)):
            points[i][0], points[i][1] = points[i][0] * 8.267 / 793.7, points[i][1] * 8.267 / 793.7
        ad.goto(points[0][0], points[0][1])
        ad.draw_path(points) 
        ad.penup() 
    else:
        for i in range(len(points)-1): 
            draw.line((points[i][0], points[i][1], points[i+1][0], points[i+1][1]), fill = black)

ma_liste = [(926.25,661.5625),(958.75,661.5625),(975,593.125),(910,593.125),(926.25,661.5625)]
segments(ma_liste)

Cet extrait de code permet, une fois la fonction « segments » définie, de produire très simplement et d’un seul trait l’image suivante:

D’autres fonctions comme celles traçant des cercles, des rectangles ou des paraboles m’ont aussi été très utiles.

Utilisation de boucles for

Lors de la réalisation de mon dessin, j’ai veillé à utiliser des motifs qui se répétaient afin de réduire le nombre de lignes de code et ainsi, me faciliter le travail.

J’ai donc par exemple utilisé la boucle for i in range() afin de créer un panneau de bois sur la façade de la maison en soustrayant une même longueur à la hauteur du rectangle à chaque incrémentation :

def rectangle(x_depart,y_depart,delta_x,delta_y):
    polygone([[x_depart,y_depart],[x_depart + delta_x,y_depart],[x_depart + delta_x,y_depart + delta_y],[x_depart,y_depart + delta_y]])

for i in range(9):
    rectangle(568.75,319.375,113.75, 91.25 - 11.40625*i)

Image associée :

J’ai aussi voulu dessiner des platebandes d’herbe avec des boucles for i in range() mais ne sachant pas comment coder un demi-cercle, j’ai utilisé la fonction parabole, ce qui a d’ailleurs donné un rendu plus réaliste. Afin de donner un effet de profondeur à la succession de paraboles, l’ordonnée du point initiant la parabole devait être différente de l’ordonnée du point terminant la parabole. Pour cela, il fallait veiller à ajouter la bonne valeur à chaque incrémentation. En effet, il ne fallait donc plus ajouter l’écart exact entre les deux abscisses (ici 6) mais cette valeur moins 1 (ce qui revenait à ajouter 5).

def parabole1(x_depart, y_depart):
    return[(a+x_depart,a**2+y_depart) for a in range(-3,3)]

for i in range(37):
    segments(parabole1(341.25+5*i,638.75))
    
for i in range(26):
    segments(parabole1(480+5*i,604))

Image associée :

Rendu final :

Après ces petites explications, je vous partage le rendu final de mon travail qui peut être réalisé par l’AxiDraw que nous avons la chance d’avoir au Lycée Louis Pasteur d’Avignon !

Merci pour votre lecture.

Télécharger le .py :

Et pour finir, vous pouvez télécharger mon projet afin que vous puissiez le découvrir plus en détail !

Tutoriels

Comment enregistrer une chanson à partir de plusieurs pistes…

Vous êtes un musicien solo et souhaitez créer un morceau qui sonne comme celui d’un grand groupe ? La plateforme musicale BandLab est faite pour vous ! Vous pourrez créer votre propre musique à partir de plusieurs pistes audio, y ajouter des effets sonores et même la partager avec vos abonnés ! Ne perdez plus de temps, et laissez place à votre inspiration…

Qu’est ce que BandLab ?

BandLab est une plateforme de musique gratuite créée en 2015 qui fonctionne comme un réseau social. Elle permet aux artistes de collaborer les uns avec les autres et de partager leur travail avec les auditeurs. BandLab est utilisée pour l’enregistrement ainsi que pour l’édition numérique d’enregistrements audio. Elle est accessible en se rendant sur son site Web ou en téléchargeant ses applications de bureau (MacOs et Windows) et mobiles (Android et iOS).

Premiers pas sur BandLab

Pour commencer, après avoir téléchargé l’application ou vous être rendus sur le site, il va falloir vous créer un compte. Vous pourrez y renseigner votre nom ou pseudo, votre âge et la musique que vous aimez écouter ou jouer. De plus, il existe une fonctionnalité très pratique pour insérer des liens vers vos contenus musicaux, si vous en avez, sur d’autre plateformes musicales telles Deezer ou Spotify. Il est possible de mettre votre profil en privé afin que seul vos abonnés puissent avoir accès à votre contenu.

Une fois votre compte activé, vous allez pouvoir commencer à créer votre musique. Pour cela, il vous suffit simplement d’appuyer sur le bouton « créer » se trouvant en haut à droite, puis sur « nouveau projet ».

Création de votre projet

Vous voila ensuite dans votre nouvel espace de travail !

Comme vous pourrez le constater, c’est à vous d’insérer vos pistes audios à l’endroit prévu à cet effet.

Vous pouvez enregistrer votre instrument via un enregistreur numérique ou tout simplement depuis votre téléphone portable. Ensuite, il vous suffit simplement d’appuyer sur « déposer une boucle ou un fichier audio/MIDI » puis de sélectionner votre fichier audio.

Libre à vous d’ajouter le nombre de pistes que vous souhaitez !

A présent, vous pouvez raccourcir vos pistes audio, les faire débuter à différents moments, les diviser, modifier leur volume… Toutes ces options sont réalisables pour chaque piste de façon indépendante.

Pour cela, sélectionner la piste que vous souhaitez modifier puis faites un clic droit. Vous pouvez alors choisir les différentes options pour travailler votre piste audio.

Focus sur le travail du volume :

Il est aussi possible de rectifier le volume en l’augmentant, le diminuant ou en le faisant ressortir du coté gauche ou droit de la sortie audio. Tout d’abord, sélectionner la piste concernée, puis penchez vous sur les réglages se trouvant à gauche de la piste. Pour modifier le volume, faites glisser le curseur vers la droite pour l’augmenter et vers la gauche pour le diminuer. Si vous préférez que la piste sélectionnée ressorte plus d’un côté que de l’autre, tourner le curseur (en forme de cadran) vers L (left) pour une sortie à gauche et inversement avec R (right).

Il est aussi possible de mettre une piste en mode « Solo » afin de n’écouter que cette dernière (appuyez sur le S). Au contraire, pour la mettre en « Muet » afin d’avoir un rendu sans la piste sélectionnée, appuyez sur M.

Ajout d’effets :

De plus, si l’envie vous prend, vous pouvez vous amuser à ajouter des effets sur votre piste (style classique, rap moderne, robot, reverb…) en appuyant soit sur « AutoPitch » soit sur « Effets » en bas à gauche de votre écran.

Il est aussi possible d’ajouter une autre source extérieure (voix, clap…) sur cette même piste en vous rendant sur « Source » pour l’enregistrer directement sur la piste.

Pour changer la hauteur (tonalité) ou la vitesse (tempo) d’une piste, rendez vous sur le bouton « Editeur ».

Si votre création contient des paroles, vous pouvez aussi vous rendre sur « Paroles/Notes » en bas à droite du poste de travail, afin de les ajouter. Ainsi, elles apparaitront sur votre post BandLab et défileront en même temps que la chanson.

Enfin, la touche « BandLab Sounds » qui est juste à côté permet de rajouter des boucles ou extraits de musique déjà créés par BandLab !

Pour finir, lorsque vous êtes satisfait du résultat final et souhaitez le partager, il vous suffit d’appuyer sur le bouton « Publier » en haut à droite pour que vos auditeurs y aient accès.

Il est toutefois possible d’enregistrer votre création si vous souhaitez l’améliorer à un autre moment ou simplement la garder pour vous en appuyant sur « Enregistrer », à gauche de « Publier ».

Accéder à vos projets

Une fois revenu au fil d’actualité de BandLab, il vous suffit d’appuyer sur « Bibliothèque » pour accéder à vos différents projets et sélectionner celui qui vous intéresse.

Vous pouvez alors l’ajouter à vos favoris, partager le lien sur tout autre type de réseaux sociaux, le télécharger sur votre ordinateur ou votre téléphone, le publier si cela n’est pas encore fait ou tout simplement le modifier à nouveau comme vous avez pu le faire précédemment en vous rendant sur « Studio ».

Vous voilà maintenant prêt à créer votre morceau avec BandLab, à vous de découvrir les astuces et modifications qui vous plaisent le plus…

Laissez place à votre imagination !

Art

Musique : Pink Floyd et son album lumineux

Le choix de la pochette d’album « The Dark Side of the Moon » n’a, d’après les membres du groupe, pas de signification précise. Lassés des photographies chargées ou des collages compliqués, ceux-ci cherchaient un visuel simple et facile à retenir. C’est bien le cas puisque 50 ans après, l’image du spectre lumineux se dispersant à travers un prisme est presque toujours associée au groupe Pink Floyd.

Vidéo de présentation du projet

De la physique à la musique

Lors du feuilletage d’un manuel de physique, l’attention du graphiste des Pink Floyd a été retenue par une photographie en noir et blanc d’un prisme à travers lequel se dispersait la lumière. L’idée lui est alors venue de choisir cette image en guise de pochette d’album.

En physique, un spectre lumineux est le résultat de la décomposition de la lumière par un spectroscope. Il permet d’analyser celle ci grâce aux radiations qui la composent.

Cette image n’est pas sans rappeler les éclairages des concerts où des faisceaux lumineux traversent la scène en se modifiant au contact des musiciens, tel le spectre traversant le prisme.

De la musique à la NSI

Nous avons donc décidé de récréer numériquement cette pochette d’album. Pour ce faire, nous avons utilisé le langage python et l’émulateur Thonny.

Tout d’abord, nous avons instauré le fond de couleur noir en utilisant la fonction bgcolor().

Nous avons ensuite tracé le triangle principal en veillant à le placer au centre. Pour cela, nous avons mis pour point d’abscisse de départ la valeur « -100 » afin que la longueur du triangle soit de « 200 ».

Puis, nous nous sommes penchés sur la partie gauche de notre image en commençant par tirer un trait défini par ses points de coordonnées de départ et d’arrivée.

Effet dégradé à l’intérieur du triangle :

Vient ensuite une partie plus complexe : l’élargissement du trait en dégradé, partant de la couleur initiale du trait pour aller vers le noir de l’arrière plan.

Pour cela, le script effectue des traits en allers-retours (grâce à une boucle for), d’un point défini sur le triangle jusqu’au milieu du triangle. Pour chaque trait, l’opacité (a) diminue au fur et à mesure que le trait se rapproche du milieu du triangle. L’opacité est remise à sa valeur initiale (a=255) avant chaque traçage de trait.

turtle.colormode(255)
for i in range(20):
    penup()
    a = 255
    go to(-40, 100)
    for i in range(41):
        turtle.color(a,a,a)
        pendown()
        turtle.forward(1)
        a += -6
    turtle.right(1)

Et voici le résultat:

Réalisation du triangle et du faisceaux lumineux entrant

Création de l’arc en ciel :

Ensuite, en partant d’un point situé sur la bordure droite du triangle, nous avons créé une boucle for permettant de réaliser les traits de couleur à droite, définis par une liste. Pour que les couleurs attendus soient identiques à celle de la pochette d’album originale, nous avons trouvé leur équivalent en hexadécimal grâce au site « Image Color Picker ».

liste = ["#6f597a","#3476b2","#78ab23", "#f9fc49","#e8b30d","#de2b05",]
goto(63 - 10/6, 81)
turtle.right(12)
turtle.pensize(10)
s=5
for i in range(6):
    turtle.color(liste[i%6])
    pendown()
    turtle.forward(355 + 0.1*i)
    penup()
    goto(58 - 10/6*i, 80 + s + 4*i)
    turtle.left(1)
    s+=-1
Script initial avec ajout de l’arc en ciel

Enfin, nous avons reproduit les commandes de lecture, situées dans la partie inferieure de notre rendu visuel, en utilisant encore une fois des boucles for pour créer des formes géométriques telles que des rectangles ou des triangles.

Afin de créer un effet visuel plus esthétique nous avons aussi intégré les fonctions begin_fill() et end_fill() qui permettent de colorer l’intérieur de formes géométriques telles que le « bouton pause » par exemple.

Nous vous proposons la découverte de notre rendu final ci-dessous, j’espère qu’il vous plaira!

Rendu final du script après exécution

Télécharger le .py :

Pour finir, nous vous partageons l’intégralité de notre projet afin que vous puissiez le découvrir plus en détail !