Indholdsfortegnelse:

Raspberry Pi Stompbox Synth Module: 6 trin (med billeder)
Raspberry Pi Stompbox Synth Module: 6 trin (med billeder)

Video: Raspberry Pi Stompbox Synth Module: 6 trin (med billeder)

Video: Raspberry Pi Stompbox Synth Module: 6 trin (med billeder)
Video: The SquishBox: a Raspberry Pi Synthesizer 2024, November
Anonim
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module

Målet med dette projekt er at sætte et Fluidsynth-baseret lydmodul i en stompbox. Det teknisk klingende udtryk "lydmodul" betyder i dette tilfælde en enhed, der optager MIDI-meddelelser (dvs. noteværdi, lydstyrke, pitchbøjning osv.) Og syntetiserer faktiske musikalske lyde. Sæt dette sammen med en MIDI -controller - som er legion, billig og ofte meget sej (som keytars!) - og du har en synthesizer, som du kan modificere og justere i det uendelige, og designe på en måde, der passer til din spillestil.

En bred oversigt over dette projekt er, at vi tager en lille single-board linux-computer (en Raspberry Pi 3 i dette tilfælde), vedhæfter en tegn-LCD, et par trykknapper og et USB-lydkort (da Pi's indbyggede lyd ikke er særlig god), og propp alt i en Hammond 1590bb stompbox (som dem, der bruges til guitareffekter) med nogle udvendige forbindelser til USB MIDI, strøm og lydudgange. Derefter konfigurerer vi den interne software til at køre et program ved opstart, der kører FluidSynth (en fremragende multi-platform, gratis softwaresynthesizer), styrer LCD'et og lader os ændre patches og indstillinger ved hjælp af trykknapperne.

Jeg vil ikke gå i detaljer trin-for-trin detaljer om denne build (der er masser af hey-i-made-a-cool-hindbær-pi-case tutorials derude), men vil i stedet forsøge at fokusere på, hvorfor jeg lavede forskellige valg i konstruktionen og designet, mens jeg gik. På denne måde kan du forhåbentlig foretage ændringer, der passer til dine egne formål uden at sidde fast i at gøre ting, der senere viser sig ikke at fungere.

OPDATERING (maj 2020): Selvom denne instruktive stadig er et godt sted at starte for et projekt som dette, har jeg foretaget en masse forbedringer på både hardware- og softwaresiden. Den nyeste software er FluidPatcher, tilgængelig på GitHub - tjek wiki for at få masser af detaljer om konfiguration af Raspberry Pi. Tjek mit websted Geek Funk Labs for løbende nyheder og opdateringer om SquishBox!

Forbrugsvarer

Dette er en kort liste over (og forklaring på) de mere afgørende komponenter:

  • Raspberry Pi 3 -computer - Enhver enkelt board linux -computer kunne fungere, men Pi 3 har nok processorkraft til at køre Fluidsynth uden forsinkelse og nok hukommelse til at indlæse store lydfonts. Ulempen er, at den har dårlig indbygget lyd, så du har brug for et USB -lydkort. CHIP'en er et alternativ, jeg undersøger (mindre fodaftryk, bedre lyd, men mindre hukommelse/processor)
  • Hammond 1590BB kabinet - jeg foreslår, at du køber en, der er pulverlakeret, hvis du vil have farve, medmindre at male stompboxes er noget, du er til. Jeg har kigget på mange opslagstavler, men jeg tror, jeg ikke har tålmodighed eller den rigtige type maling, for efter to forsøg er mine resultater temmelig halvdårlige.
  • USB -lydkort - Du kan finde en passende en af disse ret billigt. Ifølge denne dejlige Adafruit -tutorial (en af mange), skal du holde dig til en, der bruger CM109 -chipsættet for maksimal kompatibilitet.
  • Tegn -LCD - der er mange forskellige steder at få dem, men pinouterne ser ud til at være temmelig standard. Sørg for at få modlys, så du kan se dine forudindstillinger, når du spiller i de røgfyldte klubber.
  • Midlertidige stikkontakter (2) - Lidt sværere at opnå, men jeg fik et øjeblik i stedet for at skifte, så jeg kunne have mere alsidighed. Jeg kan simulere skift i software, hvis jeg vil have den adfærd, men på denne måde kan jeg også have forskellige funktioner til kort tryk, langt tryk osv.
  • Adafruit Perma -Proto Hat til Pi - Dette hjalp mig med at få LCD'en og andre komponenter tilsluttet Pi's ekspanderport uden at tage meget ekstra plads. Hvis jeg havde forsøgt at bruge almindeligt perfboard, ville det have været nødt til at stikke ud over siderne af Pi, for at jeg kunne oprette forbindelse til alle de nødvendige GPIO -ben. Den dobbeltsidede belægning og matchende monteringshuller var også meget nyttige. I lyset af alt dette var det virkelig den billigste løsning.
  • USB-stik-1 hunstik af B-type til strøm, og to hver af A-han og hun til at lave nogle tynde, fleksible forlængerkabler til interne forbindelser.
  • 1/4 "lydstik - jeg brugte en stereo og en mono. På den måde kan stereoanlægget være et hovedtelefon/mono -stik, eller bare bære det venstre signal, hvis det andet stik er tilsluttet.

Trin 1: Intern elektronik

Intern elektronik
Intern elektronik
Intern elektronik
Intern elektronik
Intern elektronik
Intern elektronik

Vi forbinder LCD'et og dets tilhørende komponenter og trykknapperne til Pi Hat. Vi tilføjer også et USB-B- og USB-A-stik til henholdsvis tilslutning af strøm og en MIDI-enhed. Vi tager USB-A-porten over, fordi vi skal bruge en af Pi's USB-porte til at forbinde lydkortet, som vi gerne vil have inde i kabinettet, så vi ikke kan have USB-portene i flugt med siden af boksen. Jeg brugte en USB-B-port til strøm, fordi jeg følte, at det kunne kræve mere straf end Pi's mikro-USB-strømstik, plus jeg kunne ikke finde en god orientering, hvor stikket alligevel kunne være ved siden af boksen.

Du skal bruge en kniv til at skære sporene mellem hullerne, hvor du vil lodde i stifterne til USB -stikene. Bare vær forsigtig med ikke at skære nogen af de interne spor i brættet, der forbinder de andre stifter - eller hvis du ved et uheld (som mig) igen tilslutter dem ved hjælp af jumper wire. USB-B-jackets Vcc- og GND-ben går til henholdsvis 5V og GND på Pi's ekspanderport. På denne måde kan du forsyne din stompbox med en telefonoplader (forudsat at den har nok strømstyrke - 700mA ser ud til at fungere for mig, men du vil måske have mere for at være sikker på, at USB -porten har nok juice til at drive din controller) og et USB A -B -kabel.

Jeg synes, at længder af båndkabel fungerer rigtig godt til at forbinde ting med masser af stifter uden at have for meget trådspaghetti. Jeg gjorde dette frem for at lodde mandlige headers ind i LCD'en og derefter lodde det ind i hatten, fordi jeg følte, at jeg havde brug for en vis frihed til at placere LCD'et, så jeg kunne få det centreret pænt. LCD'et skal leveres med et potentiometer, som du bruger til at justere begrænsningen - sørg for at placere dette et sted, hvor det ikke vil være dækket af LCD'et, så du kan lave et hul i boksen for at nå det og justere kontrasten en gang alt er samlet.

Se skematisk for detaljer om, hvad der bliver forbundet hvor. Bemærk, at trykknapperne er tilsluttet 3,3V - ikke 5V! GPIO -benene er kun klassificeret til 3,3V - 5V vil beskadige din CPU. USB-A-stikket tilsluttes en anden stribe båndkabel, som du derefter kan lodde til et USB-stik, som du tilslutter til en af Pi's USB-porte til din MIDI-controller. Skær ekstra metal af stikket, så det stikker mindre ud, og brug varm lim til aflastning - det behøver ikke at være smukt, da det vil være skjult inde i æsken.

Trin 2: Ledninger til lydudgang

Ledninger til lydudgang
Ledninger til lydudgang
Ledninger til lydudgang
Ledninger til lydudgang
Ledninger til lydudgang
Ledninger til lydudgang

Uanset hvor lille et USB -lydkort du finder, vil det eller dets stik sandsynligvis stikke for langt væk fra Pi's USB -porte, for at alt kan passe i boksen. Så lod et andet kort USB -stik ud af et båndkabel, USB -stik og varm lim som vist på billedet ovenfor. Mit lydkort var stadig lidt for klumpet til at passe ind i kabinettet med alt det andet, så jeg sprang plasten af og pakkede det ind i noget tape for at forhindre, at det kortsluttede ting.

For at få lyd fra lydkortet til dine 1/4 "-stik skal du afskære enden af en 3,5 mm hovedtelefon eller AUX -kabel. Sørg for, at den har 3 stik - tip, ring og muffe (TRS), i modsætning til 2 eller 4. Ærmet skal være slebet, spidsen er normalt den rigtige kanal, og ringen (det midterste stik) er normalt tilbage. Du kan bare forbinde spids og ring til to mono (TS - spids, ærme) 1/4 "stik og være færdig med det, men du kan få noget mere alsidighed med en lille smule ekstra ledninger. Find et TS -stik, der har en tredje øjeblikkelig kontakt, som vist skematisk i diagrammet ovenfor. Indsættelse af et stik bryder denne kontakt, så som du forhåbentlig kan se på diagrammet, vil det venstre signal derefter gå til TS -stikket, hvis der er indsat et stik, og til ringen på TRS -stikket, hvis der ikke er isat et stik. På denne måde kan du tilslutte hovedtelefoner til stereostikket, et enkelt monokabel i stereostikket for et kombineret højre/venstre (mono) signal eller et kabel i hvert stik til separate højre og venstre (stereo) udgange.

Jeg sluttede stikkene på stikkene til kablet fra lydkortet, så alt i kassen deler den samme jord, og jeg undgår den grimme buzz af jordsløjfer. Afhængigt af hvad du er tilsluttet, kan dette dog have den modsatte effekt - så du vil måske medtage en switch, så du enten kan tilslutte eller "løfte" jorden på 1/4 "stik.

Trin 3: Forberedelse af kabinettet

Forberedelse af kabinettet
Forberedelse af kabinettet
Forberedelse af kabinettet
Forberedelse af kabinettet
Forberedelse af kabinettet
Forberedelse af kabinettet

Dette trin dækker skæring af huller i kassen til skærmen, knapper, stik osv. Og epoxerende standoffs i kabinettet til montering af Pi -hatten.

Begynd med at placere alle komponenterne i kabinettet for at sikre, at alt passer og er orienteret den rigtige vej. Mål derefter omhyggeligt og markér, hvor du vil lave huller. Når du skærer runde huller, anbefaler jeg, at du starter med en lille smule og arbejder op til den størrelse, du har brug for - det er lettere at centrere hullet, og det er mindre sandsynligt, at dit boremaskine kommer i klemme. Rektangulære huller kan skæres ved at bore et hul i modsatte hjørner af den påtænkte åbning og derefter skære med et stiksav til de to andre hjørner. Denne tykkelse af aluminium klipper faktisk bare fint med et stiksav, så længe du går forsigtigt. En firkantet fil er meget nyttig til kvadrering af hjørner af åbninger. Gør åbningerne til USB -stikene lidt generøse, hvis du har fede kabler.

En to-trins epoxy (som Gorilla Lim på billedet) fungerer godt til at fastgøre standoffs for hatten på metalindkapslingen. Rids overfladen af kabinettet og bunden af standoffs lidt op med ståluld eller en skruetrækker, så epoxyen kan få et bedre greb. Jeg anbefaler at vedhæfte dine standoffs til Pi -hatten, før du limer dem ned, så du ved, at de er placeret korrekt - der er ikke meget vrikrum her. Jeg brugte kun tre standoffs, fordi min LCD var i vejen for den fjerde. Bland de to komponenter i epoxyen, sæt nogle på afstandene og klem dem på plads. Undgå at vrikke eller omplacere delene efter mere end 10-15 sekunder, ellers vil bindingen være sprød. Giv det 24 timer til at konfigurere, så du kan fortsætte med at arbejde. Det tager et par dage at helbrede fuldstændigt, så lad være med at understrege båndet unødigt.

Medmindre du vil lave en anden hobby ud af at male stompboxe, foreslår jeg, at du lader aluminiumet være blottet (faktisk ikke et dårligt udseende) eller køber et færdigmalet kabinet. Maling ønsker ikke at binde sig til metal. Hvis du vil prøve det, skal du slibe alle steder, hvor du vil have maling til at klæbe. Brug først en god auto body primer spraymaling, påfør flere lag med den farve, du ønsker, og lad det tørre så længe som muligt. Alvorligt - galningerne på opslagstavlerne foreslår ting som at lade det stå i direkte sol i tre måneder eller i en brødristerovn, der er tændt i en uge. Efter at have slibet de krøllede, afskallede rester af mit første malingsjob, får mit andet forsøg stadig chips og hulninger fra ting som kuglepenne i min gigbag, og finishen kan bules med en negl. Jeg besluttede mig for at give efter og gik efter punk-stil ved hjælp af hvidmarkering til bogstaverne.

Trin 4: Softwareopsætning

Opsætning af software
Opsætning af software
Opsætning af software
Opsætning af software

Inden du putter alt i stompboxen og skruer det fast, skal du konfigurere software på Raspberry Pi. Jeg foreslår, at du starter med en ny installation af Raspbian OS, så hent en nylig kopi fra Raspberry Pi Foundation -webstedet og følg instruktionerne der for at se det på et SD -kort. Tag et tastatur og en skærm, eller brug et konsolkabel til at logge ind på din Pi for første gang, og kom til en kommandolinje. For at sikre, at du har de seneste software- og firmwareopdateringer, skal du indtaste

sudo apt-get update && sudo apt-get upgrade

sudo rpi-opdatering

Dernæst vil du sikre dig, at du kan bruge wifi til at ssh til Pi og foretage ændringer, når den er slået op inde i kabinettet. Tænd først for ssh -serveren ved at skrive

sudo raspi-config

og gå til "Interfacing Options" og aktivere ssh -serveren. Tilføj nu et trådløst netværk til pi ved at redigere filen wpa_supplicant.conf:

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

og tilføjelse af følgende linjer til sidst:

netværk = {

ssid = "dit-netværk" psk = "dit-kodeord"}

Udskift dit netværk og din adgangskode ovenfor med værdier for det netværk, du vil have Pi'en til at oprette forbindelse til som standard-sandsynligvis din wifi-router derhjemme eller måske hotspot på din telefon eller en bærbar computer, der kører i adgangspunkttilstand. Et andet alternativ til at oprette forbindelse til din Pi er at konfigurere den som et wifi -adgangspunkt, så du bare kan oprette forbindelse til den, uanset hvor du er. Interfacet, jeg skrev nedenfor, giver dig også mulighed for at parre en anden bluetooth-enhed med Pi, hvorefter du kan oprette forbindelse til den ved hjælp af seriel-over-bluetooth.

For at installere FluidSynth skal du skrive

sudo apt-get install fluidsynth

Filerne, der er knyttet til dette trin, giver en grænseflade mellem stompbox -kontrollerne og FluidSynth og skal kopieres til /home /pi -biblioteket. Her er en kort forklaring på, hvad hver fil gør:

  • squishbox.py - Et python -script, der starter og kommunikerer med en forekomst af FluidSynth, læser input fra stompbox -knapperne og skriver information til LCD'et
  • config_squishbox.yaml - En konfigurationsfil i det (for det meste) menneskeligt læselige YAML -format, der gemmer indstillinger og patchoplysninger for squishbox -programmet
  • fluidsynth.py - En python -indpakning, der leverer bindinger til C -funktionerne i FluidSynth -biblioteket, med mange yderligere bindinger tilføjet af mig for at få adgang til mere af FluidSynths funktionalitet
  • ModWaves.sf2 - En meget lille soundfont jeg leverede for at demonstrere brugen og effekten af modulatorer i Soundfont -formatet

At have et python -script til at konfigurere FluidSynth -processen og håndtere alle knapperne/LCD -tingene fungerer ganske godt - MIDI -meddelelser går direkte til FluidSynth, og scriptet interagerer kun med det, når det er nødvendigt.

Python -scriptet har brug for et par python -biblioteker, der ikke er installeret som standard. Du kan installere dem direkte fra Python Package Index ved hjælp af det praktiske pip -værktøj:

sudo pip installer RPLCD pyyaml

Endelig vil du have, at Pi kører python -scriptet ved opstart. For at få dette til at ske, rediger rc.local -filen:

sudo vi /etc/rc.local

Indsæt følgende linje lige før den sidste 'exit 0' linje i filen:

python /home/pi/squishbox.py &

Trin 5: Endelig samling

Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling

Inden du lægger alle brikkerne i kassen, er det en meget god idé at tilslutte alt og sørge for, at softwaren fungerer, som vist på billederne ovenfor. Billeder 3-6 viser alle de enkelte dele og gradvist, hvordan de passer ind i min kasse. LCD'et holdes faktisk på plads ved at ledningerne presser mod det, men du kan bruge lidt varm lim eller tilføje nogle flere monteringsskruer, hvis du ikke kan lide det. Det orange gaffatape på kasselåget skal forhindre Pi i at kortslutte mod metallet.

Du skal muligvis eksperimentere og omkonfigurere for at få tingene til at passe. Tæt er god - jo færre dele der jiggler rundt i kassen, jo bedre. Varme ser ikke ud til at være et problem, og jeg har ikke haft problemer med, at wifi -signal blev blokeret af kabinettet. Der er ikke afbildet nogle klæbende gummifødder (du kan finde dem i en isenkræmmer) i bunden af kassen for at forhindre, at den glider rundt, når du holder en stampestund.

Hold øje med uforudsete stød/squishing/bøjning, når tingene er skruet sammen. En ting at kontrollere er, at der er nok plads til 1/4 -stikkene, når der sættes kabler i - spidserne stikker lidt længere ud end jackkontakterne. I min konstruktion monterede jeg også Pi lidt for tæt på kanten af kassen og læben på låget trykket ned på enden af SD -kortet og snappede det - jeg var nødt til at lægge et hak i læben, så dette ikke ville ske.

Trin 6: Brug

Image
Image
Anvendelse
Anvendelse
Anvendelse
Anvendelse

Lydmodulet, jeg har beskrevet i disse trin og kører softwaren ovenfor, er ret anvendelig og kan udvides ud af boksen, men mange ændringer/variationer er mulige. Jeg vil bare kort beskrive grænsefladen her - jeg planlægger løbende at opdatere det i et github -depot, hvor jeg forhåbentlig også vil beholde en opdateret wiki. Til sidst vil jeg diskutere, hvordan du kan justere indstillingerne, tilføje nye lyde og foretage dine egne ændringer.

For at starte skal du tilslutte en USB MIDI-controller til boksens USB-A-stik, en 5V strømforsyning til USB-B-stikket og tilslutte hovedtelefoner eller en forstærker. Efter lidt tid viser LCD'en en "squishbox v xx.x" -meddelelse. Når et patchnummer og navn vises, skal du kunne afspille noter. Med korte tryk på en af knapperne ændres programrettelsen, ved at holde en af knapperne i et par sekunder får du adgang til en indstillingsmenu, og når du holder en af knapperne i cirka fem sekunder, får du mulighed for at genstarte programmet, genstarte Pi eller lukke Pi ned (Bemærk, at Pi ikke afbryder strømmen til sine GPIO -ben, når den stopper, så LCD'en slukker aldrig. Bare vent cirka 30 sekunder, før du tager stikket ud).

Indstillingerne i menuen er:

  • Update Patch - gemmer alle ændringer, du har foretaget i den aktuelle patch til fil
  • Gem ny patch - gemmer den aktuelle patch og eventuelle ændringer som en ny patch
  • Vælg Bank - konfigurationsfilen kan have flere sæt patches, dette lader dig skifte mellem dem
  • Set Gain - indstil den samlede outputvolumen (fluidsyntes 'gain' option), for høj giver forvrænget output
  • Chorus/Reverb - rediger det aktuelle sags rumklang og chorus -indstillinger
  • MIDI Connect - prøv at tilslutte en ny MIDI -enhed, hvis du skifter den ud, mens programmet kører
  • Bluetooth -par - sæt Pi i opdagelsestilstand, så du kan parre en anden bluetooth -enhed med den
  • Wifi -status - rapporter Pi's nuværende IP -adresse, så du kan ssh ind i den

Filen config_squishbox.yaml indeholder oplysninger, der beskriver hver patch, samt ting som MIDI-routing, effektparametre osv. Den er skrevet i YAML-format, som er en tværsproglig måde at repræsentere data, som computere kan analysere, men også er menneskelige -læselig. Det kan blive ret komplekst, men her bruger jeg det bare som en måde at repræsentere en struktur af indlejrede Python -ordbøger (associative arrays/hashes på andre sprog) og sekvenser (lister/arrays). Jeg lagde mange kommentarer i prøvekonfigurationsfilen og forsøgte at strukturere den, så man gradvist kan se, hvad hver funktion gør. Tag et kig og eksperimentér, hvis du er nysgerrig, og stil gerne spørgsmål i kommentarerne. Du kan gøre meget for at ændre modulets lyde og funktionalitet bare ved at redigere denne fil. Du kan eksternt logge ind og redigere eller FTP en ændret konfigurationsfil til Pi, derefter genstarte ved hjælp af grænsefladen eller ved at skrive

sudo python /home/pi/squishbox.py &

på kommandolinjen. Scriptet er skrevet for at dræbe andre kørende forekomster af sig selv ved start, så der ikke vil være nogen konflikter. Scriptet vil spytte et par advarsler ud på kommandolinjen, når det kører, mens det jagter efter MIDI -enheder for at oprette forbindelse og leder forskellige steder efter dine soundfonts. Det er ikke brudt, det er bare doven programmering fra min side - jeg kunne fange dem, men jeg påstår, at de er diagnostiske.

Når du installerer FluidSynth får du også den ganske gode gratis FluidR3_GM.sf2 soundfont. GM står for generel MIDI, hvilket betyder, at den indeholder "alle" instrumenter, der er tildelt almindeligt aftalte forudindstillede og banknumre, så MIDI-afspillere, der afspiller filer ved hjælp af denne soundfont, vil kunne finde nogenlunde den rigtige lyd til klaver, trompet, sækkepiber osv. Hvis du vil have mere/anderledes lyd, kan du finde masser af gratis lyd til internettet. Vigtigst er det, at soundfont-specifikationen er bredt tilgængelig, faktisk er ganske kraftfuld, og der er en vidunderlig open source-editor til soundfonts kaldet Polyphone. Med dette kan du opbygge dine egne soundfonts fra rå WAV -filer, plus du kan tilføje modulatorer til dine skrifttyper. Modulatorer giver dig mulighed for at styre mange af elementerne i syntese (f.eks. ADSR -konvolut, moduleringskonvolut, LFO osv.) I realtid. ModWaves.sf2 -filen, jeg har inkluderet ovenfor, giver et eksempel på brug af modulatorer, så du kan kortlægge filterresonans og afskæringsfrekvens til en MIDI -meddelelse med kontrolændring (som kan sendes med en knap/skyder på din controller). Der er så meget potentiale her - go play!

Det er mit håb, at denne vejledning sætter gang i mange ideer og giver andre en god ramme til at opbygge deres egne unikke synthkreationer samt understøtter den fortsatte tilgængelighed og udvikling af gode soundfonts, soundfont -specen og fantastisk gratis software som FluidSynth og Polyphone. Den opbygning, jeg har skitseret her, er hverken den bedste eller den eneste måde at sammensætte sådan noget på. På hardwaresiden kan mulige ændringer være en større boks med flere knapper, ældre (5-benet) MIDI-ind/udgang og/eller lydindgange. Python -scriptet kan ændres (undskyld for mine sparsomme kommentarer) for at give andre adfærd, der måske passer bedre til dig - jeg tænker på at tilføje en "effekter" -tilstand til hver patch, hvor den vil fungere som en ægte effekter stompbox, skifte indstillinger på og slukket. Man kan også tilføje noget ekstra software til at levere digitale lydeffekter. Jeg tror også, at det ville fungere bedre at få Pi kørt i wifi AP -tilstand som beskrevet ovenfor, og så kunne det endda give en venlig webgrænseflade til redigering af konfigurationsfilen. Du er velkommen til at sende dine egne ideer/spørgsmål/diskussion i kommentarfeedet.

Jeg vil give enorme, mega rekvisitter til producenterne af FluidSynth og Polyphone for at levere gratis open source-software, vi alle kan bruge til at lave god musik. Jeg elsker at bruge denne ting, og du gjorde det muligt!

Anbefalede: