Author: Paul R.

Tutoriels

Présentation du logiciel Ableton Live 11

Notre objectif sur ce tutoriel et de présenter le logiciel sur lequel nous allons travailler qui se nomme Ableton Live 11 pour créer un début de morceaux, en utilisant des boucles et des pistes audio. Tout en vous expliquant pas à pas chaque fonctionnalité pour créer une production musicale à partir de boucle.

1- Qu’est-ce que Ableton Live 11 ?

 Ableton Live est un séquenceur musical logiciel professionnel pour OS X et Windows lancé par Ableton en 1999. Live est un outil permettant la composition et l’arrangement musical, mais sa conception et son ergonomie sont surtout destinées à une utilisation en concert.

  1.1- Les deux différentes interfaces d’Ableton Live 11

Ableton Live 11 est un logiciel de musique qui permet de jouer en Live un morceau avec l’interface session, qu’on peut observer ci-dessous:

Ableton a aussi une autre interface cette interface se nomme « arrangement » où toute la partie de composition musicale se déroule; (la composition est aussi disponible dans l’interface session qui est plus compréhensible lorsque vous débutez sur le logiciel)

2- Explication du tempo, du BPM, de la notion de temps et des séquences

Cette partie est indispensable pour comprendre comment est formée la musique, comment elle fonctionne.

Chaque élément se complète et a un rôle important.

Il faut savoir que la musique fonctionne sur plusieurs règles importantes:

  • Le tempo
  • Le BPM
  • Le temps
  • Les séquences

2.1- Le tempo

En musique, le tempo est la vitesse à laquelle le musicien va jouer la musique. Tempo signifie « temps » en italien. Le terme « pulsation » est aussi employé ainsi que celui de « mouvement ». Le tempos va indiquer le rythme du morceau (joué lentement ou rapidement).

2.2- Le BPM

Le BPM signifie en musique “battement par minute”. C’est l’unité de mesure du tempo afin de calculer la vitesse d’un morceau. Un battement (appelé aussi “temps”) est l’unité de mesure standard d’un morceau de musique. Chaque morceau possède sa propre signature rythmique. Autrement dit chaque morceau à son propre tempo.

2.3- Le temps

En musique, le temps est l’unité de mesure de la durée musicale. La durée réelle des temps peut varier d’une œuvre musicale à l’autre, et c’est le tempo qui va fixer, pour un passage musical donné, la durée exacte des temps, (le temps peut être rapide un moment donné du morceau comme lent).

Le temps fonctionne sur 4 temps qui signifie 1 mesure en musique.

2.4- Les séquences

En musique dans la notion de temps il existe des séquences, une séquence est composée de 32 temps. Dans la production musicale nous devons respecter cette séquence, c’est-à-dire qu’à la fin de chaque 32 temps, un nouvel élément musical se passe (un nouvel instrument rentre dans le morceau, ou un autre en sort).

3- La composition d’un morceau à partir de boucle, sur des pistes audio

3.1- La piste audio

Tout d’abord qu’est-ce qu’une piste audio et à quoi va t’elle nous servir?

Les pistes audio vont nous permettre de déposer nos boucles d’instruments, de rythmique (batterie), de voix, etc. dans Ableton Live 11

3.2- Les boucles

En musique, une boucle est une séquence musicale destinée à être répétée indéfiniment. La boucle est typique de la musique électronique.

Par exemple, vous pouvez écouter le morceaux Around The World des Daft Punk où on entend des sons qui se répètent tout au long du morceau.

Ableton Live 11 nous propose des boucles toutes faites directement sur le logiciel, nous pouvons aussi en trouver sur Internet disponible gratuitement en téléchargement.

3.3- La composition

Nous commençons d’abord par mettre en place la rythmique: un kick (grosse caisse de la batterie) tape sur chaque temps

Nous allons rentrer une caisse claire (qui se nomme snare) elle va taper 1 temps sur deux contrairement au kick.

  En dernier lieu nous rentrerons un hit-hat (les mini cymbales de la batterie) qui tapera sur chaque micro temps (encore plus rapide que le kick)

Pour trouver toutes ces rythmiques que j’ai positionnées, il suffit de se rendre dans l’onglet de gauche de l’interface intitulé « batterie ».

Voilà, nous venons de poser nos bases pour la rythmique, l’essentiel à avoir pour la structure du morceau. Nous allons ensuite mettre en place une mélodie simple que nous retrouvons dans les onglets ‘Sons », « Sample », et « Clips ».

Ici j’ai déposé ma mélodie dans la piste audio, nous remarquons que cette boucle est composée de 16 temps donc la moitié d’une séquence de 32 temps, il faudra la jouer deux fois pour pouvoir ensuite rentrer une autre boucle.

Dans un morceau il y a des moments où nous retirons le kick pour faire comme une pause dans le morceau, cette évènement s’appelle le « break ». L’image ci-dessous nous montre une partie où il n’y a plus de kick, où il ne reste plus que la snare, les hit-hat et notre mélodie:

Ici on peut remarquer que j’ai mis un break entre chaque séquence (il n’est absolument pas obligatoire de faire des breaks aussi régulièrement). En général dans la plupart des morceaux on retrouve deux breaks tout au long du morceau.

Après avoir mis ma rythmique, ma mélodie, je peux rajouter d’autres mélodies en parallèle. Par exemple, pendant un break, dans la continuité du morceau pour le faire évoluer, ou encore libre à votre inspiration !

Vous avez maintenant les bases essentielles pour faire un morceau avec des boucles, il ne vous reste plus qu’à développer votre morceau. Voici mon résultat final (il n’est pas nécessaire de trop faire évoluer le morceau, souvent une dizaine de scène suffit !)

Projets

Simulation d’une roulette de casino en python

Nous n’avons peut être pas l’âge de se rendre dans un casino, mais se n’est pas pour autant que nous ne pouvons pas nous amuser à notre échelle. C’est donc grâce à ce mini-jeu qu’on découvre assez rapidement le but d’une roulette de casino. Il ne vous reste qu’à mesuré votre chance à la roulette.

Présentation du projet

Notre projet a pour but de vous faire découvrir de façon simple le monde du casino, plus précisément grace l’un des jeux d’argent les plus connues qui est la roulette de casino.

Règles du jeu:

  • Le but du jeu est de deviner la case sur laquelle la bille lancée dans le cylindre qui contient 37 numéros va s’arrêter. 
  • Le jeu est encadré par un croupier qui annonce en début de partie « Faites vos jeux », ce qui nous laisse le droit de poser nos jetons sur les cases désirées. Vous pouvez les déplacer jusqu’à ce qu’il dise « rien ne va plus »
  •  La bille tourne encore dans le cylindre et quand elle s’arrête, le numéro gagnant est dévoilé.

Supports nécessaire pour le bon fonctionnement du projet

  • Un ordinateur avec un logiciel tel que Thonny pouvant effectuer des manipulations en langage python.

Difficultés rencontrées

Nous avons rencontrés quelque difficulté tout au long de notre programme :

Nous avons eu une grosse difficulté qui nous a fait réfléchir pendant plusieurs heures.

Cette difficulté venait de la définition aléatoire de notre programme qui nous sert pour tirer aléatoirement un nombre entre 0 et 36.

def aléatoire():# permet de tirer un nombre aléatoirement dans la roulette
    global N
    n = randint(0,36)
    N = n
    #print (n)

Notre problème était d’utiliser la variable « n » dans une autre définition du programme et donc on a dû utiliser le mot-clé « global » qui rend accessible la variable « n » dans tout le programme. 

De plus nous nous sommes servis de la fonction « print(n) » pour nous confirmer que le jeu étais bel est bien juste et qu’il relançait bien le numéro de la roulette a chaque tout. C’est donc après cette vérification qu’on a mis le « # » devant la fonction pour plus qu’elle soit prise en compte lorsque le programme est lancé mais aussi pour montrer que l’on a bien vérifier le programme.

Explication du programme

Avant de commencer l’analyse nous vous précisons que le langage python est très exigeant dans l’écriture et dans son indentation.

from random import *

Tout d’abord nous avons commencé par la fonction « From random import » qu’il ne faut surtout pas négliger car c’est cette fonction qui va permettre que la définition aléatoire génère des nombres entre 0 et 36.

Nous avons continué notre programme avec la première définition qui nous sert d’affichage de bienvenue lorsque le jeu est démarré.

def bienvenue():# phrase de bienvenue et présentation du jeu
    print("\n")
    print ("-----[JEU DE LA ROULETTE]-----")
    print ("    Bienvenue au casino !     ")
    print ("    Cree par Paul et Alexis   ")
    print ("           Jouons !           ")
    print ("------------------------------")

Ainsi grâce à la fonction d’affichage « print » nous avons pu reproduire comme une pancarte de bienvenue.

Nous arrivons maintenant à l’une des parties qui caractérisent au mieux notre jeu en question, c’est la définition qui gère le programme aléatoire. C’est ici même que notre toute première fonction « from random import » prend tout son sens.

def aléatoire():# permet de tirer un nombre aléatoirement dans la roulette
    global N
    n = randint(0,36)
    N = n
    #print (n)

Un peut plus haut dans les difficultés rencontrées nous nous somme intéressé à cette partie du programme notamment sur le « global N ». Nous avons utilisé la fonction randint qui génère un nombre aléatoirement entre les valeurs à l’intérieur des parenthèses: (0,36). De plus nous avons dû créer une autre valeur N qui possède la même valeur que n pour pouvoir l’utiliser dans la définition suivante.

Nous avons décidé de regrouper nos deux premières définitions(bienvenue et aléatoire) à l’intérieur de la troisième qui est la définition game. Elle regroupe l’ensemble du jeu que ce soit l’argent de départ mais aussi la mise ainsi que la gestion de la victoire et de la défaite. Ce système facilite le lancement des définitions car il y en a qu’une seule a lancer, ce qui provoque toujours les mêmes actions dans l’ordre voulu.

def game():# permet la composition du jeu avec la mise, l'argent de départ, sa victoire ou sa défaite, et combien lui reste t'il dans son portefeuille
    bienvenue()
    argent_de_depart = 200
    print("Votre porte-monnaie contient une valeur de 200€, bon jeux\n")
    

Ainsi dès que la définition « game » est lancée celle-ci génère immédiatement la définition « bienvenue() » qui exécute les premières lignes de code de la fonction d’affichage. De plus dans cette partie de la troisième définition on définit la valeur de l’argent de départ qui ne change pas. Ainsi grâce à la fonction d’affichage « print » on affiche la phrase qui nous indique la valeur totale de notre porte-monnaie.

La partie suivante du programme est celle qui gère la quantité d’argent qui nous reste avec le « while ».

while argent_de_depart >=0:

        if argent_de_depart == 0:# lorsque nous n'avons plus d'argent une phrase automatique nous l'indique
            print("Malheureusement vous n'avez plus d'argent et le casino ne fait pas crédit")
        else:# le croupier annonce le début du jeu
            print("Faites vos jeux")

La fonction de condition « if » calcule combien d’argent nous reste-t-il est quand notre porte-monnaie est à 0€ la fonction d’affichage « print » affiche la phrase qui nous informe que notre solde d’argent est de 0€. S’il y a encore de l’argent dans le porte-monnaie alors la fonction « else » intervient pour nous annoncer le droit de continuer misé.

La partie de programme ci-dessous contrôle la mise du joueur mais aussi sa défaite et le lancement de la définition aléatoire.

 mise = int(input("Combien voulez-vous miser? : \n")) # qu'elle est la mise que le joueur veut mettre en jeu
        if mise <= 0 or mise > argent_de_depart: # indique lorsque le joueur met une mise plus basse que 0 et/ou plus élevé que ce qu'il possède
            print("Votre mise doit etre superieur à 0 et votre mise ne doit pas etre plus eleve que votre argent restant\n")
        else:# ici nous devons choisir un nombre entre 0 et 36 et si le nombre choisi ne correspond pas à celui sur lequel la bille s'arrête alors on soustrait son argent de départ par la mise
            argent_de_depart = argent_de_depart - mise
            num = int(input("Choisir un nombre entre 0 et 36 : \n"))
            
        aléatoire()

La mise est composée de deux parties, la première est pour la mise d’argent et la deuxième pour le choix du nombre sur lequel on place la mise. C’est la fonction « int(input()) » qui nous demande la mise que l’on souhaite effectuer et grâce a la fonction « if » elle analyse que notre mise soit supérieure à 0€ mais aussi inférieur a notre somme d’argent totale dans le porte-monnaie. Si l’une de ses conditions n’est pas respectée alors la fonction « print » intervient et une phrase nous rappelle quelles sont les bonnes conditions de mise. Ainsi la structure conditionnelle « else » définit l’argent de départ, autrement dit la structure s’occupe de soustraire ou d’ajouter les valeurs misées à la somme d’argent de départ. Mais cette opération est possible seulement grâce à la valeur « num » qui récupère le nombre choisi par le joueur sur lequel il choisit de miser. C’est donc à ce moment-là qu’on a décidé de faire exécuter la fonction aléatoire qui tire aléatoirement le nombre sur lequel la bille s’arrête.

La fin de notre programme contrôle donc le faite de gagner ou de perdre.

if num == N :
            print("La bille s'arrête sur",N )
            print("Félicitations vous avez trouvé le bon numéro\n")
            argent_de_depart = argent_de_depart + (mise * 2)
            print("Votre porte-monnaie a maintenant une valeur de", argent_de_depart, "€")
        else:# ici on affiche notre défaite et combien nous reste-t-il d'argent sur notre porte monnaie
            print("La bille s'arrête sur", N )
            print("Malheureusement vous n'êtes pas tombé sur le bon numéro, retentez votre chance\n")
            print("Votre porte-monnaie a maintenant une valeur de", argent_de_depart, "€")
            

game()

La fonction conditionnelle « if » contrôle la partie gagnante du jeu en affichant sur quel nombre s’est arrêtée la bille avec le premier « print », avec le second elle lance une phrase qui nous félicite d’avoir gagné et troisième « print » nous annonce à combien est la valeur totale de notre porte-monnaie.

La deuxième partie de la fonction se déroule avec « else » sur le même schéma vue auparavant avec les trois « print » mais pour seule différence le second « print » qui vous annonce que vous n’êtes pas tombé sur le bon numéro.

Conclusion

Pour conclure, ce projet qu’on aurait pu croire facile au premier coup d’oeil fut plus complexe que prévu mais avec de la persévérance et de l’aide de nos professeurs nous avons réussi à atteindre notre but final. Ce projet n’est pas non seulement une réussite au niveau technique mais surtout une réussite au niveau personnel avec la création de son propre jeu. J’espère qu’il vous plaira et n’hésiter pas à l’essayer.