Introducere

Color Therapy s-a nascut din dragostea pentru aplicatiile de redare. Generam liste de redare precise bazate pe emotii si culori, deoarece muzica buna este intotdeauna un stimulator al dispozitiei captivant.

Folosind API-ul Spotify

Am decis sa folosim punctul final Get Spot Recomandari bazate pe seminte pentru a cauta piese. Semintele sunt o combinatie de pana la 5 artisti, piese sau genuri. Folosim artisti de top ai utilizatorului ca seminte, deoarece artistii sunt foarte indicativi pentru gustul muzicii, iar artistii pot acoperi mai multe genuri.

Punctul final al recomandarilor ia, de asemenea, „atribute ale pistei reglabile” ca parametri de interogare. Aceasta inseamna ca putem cauta cu filtre precum acusticitatea, dansabilitatea si tempo-ul. Cele mai interesante doua atribute ale pistei sunt „energia” si „valenta”. Energia in acest context este masurata de intensitatea perceptiva, care include intervalul dinamic, sonoritatea perceputa, timbrul, rata de debut si entropia generala. Valenta se masoara prin pozitivitatea muzicala; piesele cu valenta ridicata suna mai pozitiv (de exemplu, fericit, vesel, euforic), in timp ce piesele cu valenta scazuta suna mai negativ (de exemplu, trist, deprimat, suparat).

Avand in vedere acest obiectiv final, am conceput o modalitate de a calcula energia si valenta folosind culorile.

Intelegerea valentei si a culorii

Cu terapia cu culori, utilizatorul va alege culorile. Cu toate acestea, culorile in sine sunt foarte subiective – nu au nici un sens fara context. Exista unele generalizari (rosu este suparat, albastru este trist etc.), totusi unul dintre obiectivele noastre a fost de a face listele de redare generate personal.

Scopul testului de culoare este de a intelege modul in care utilizatorul vede culoarea. Utilizatorul este rugat sa clasifice diferite culori de la trist la fericit, stocate intern ca valoare cuprinsa intre 0,0 si 1,0. Aceasta valoare va fi valenta individuala pentru fiecare „culoare de baza” din test. Culorile de baza sunt urmatoarele:

  • # FF0000 rosu
  • # 0000FF albastru
  • # FFFF00 galben
  • # 00FF00 verde
  • #FFFFFF alb
  • # 000000 negru

Aceste culori de baza au fost alese in mod deliberat pentru a acoperi modelul de culoare RGB, culorile primare si negru / alb. Intentia de aici este de a avea o gama de culori cat mai larga posibil.

Atribuirea valorilor de valenta culorilor de baza da contextul culorilor noastre, asa ca acum putem calcula cea mai apropiata culoare de baza fata de orice culoare aleatorie.

follando en silencio jovencitasxxx
me follo a la vecina tetas en la playa
incesto x madres españolas follando con hijos
pilladas de torbes cincuentonas
buenas pajas viejas tetonas
sobar tetas lesbianas incesto
orgias caseras tias cachondas
pajas en español pilladas meando
lesbianas maduras españolas porno gay trios
me follo a mi madrastra chicas corriendose
lesbianas scat porno amater español
mamadas en el cine lesbianas preciosas
trios con españolas maduras masturbandose
porno abuelas tetonas folladas extremas
chica se masturba coños maduros
mama incesto come pollas
xxx españa mujeres normales desnudas
follando con mi mujer pirno
corridas brutales en la boca follando en casa
penes enormes tuporn

Obtinerea atributului „energie” mentionat anterior este simpla. Primul glisor al testului il intreaba pe utilizator cu privire la nivelul lor de energie si trecem acea valoare direct in parametrii de interogare Spotify.

Calculul diferentei de culoare si a valentei tinta

Am inceput prin calcularea diferentei de culoare dintre o culoare aleasa si o culoare de baza. Deoarece folosim valori RGB, am calculat distanta euclidiana intre cele doua culori pentru a gasi diferenta lor. Cu toate acestea, dupa ce am facut unele cercetari, am realizat ca distanta euclidiana poate sa nu produca rezultatele cele mai exacte pentru cazul nostru de utilizare, deoarece RGB nu este „perceptiv uniform”. Cu alte cuvinte, utilizarea distantei euclidiene are sens pentru un ecran, nu pentru ochii nostri. Vrem sa punem in legatura o culoare aleasa cu culoarea sa de baza cea mai apropiata perceptional . Pentru aceasta, trebuie sa folosim Delta E, care calculeaza diferenta de culoare perceputa .

Perceptia Delta E <= 1.0 Nu este perceptibila de catre ochi. 1-2 Perceptibil prin observare atenta. 2 – 10 Perceptibil dintr-o privire. 11 – 49 Culorile sunt mai asemanatoare decat cele opuse 100 Culorile sunt exact opuse

sursa: http://zschuessler.github.io/DeltaE/learn/

Am extins aceasta idee a diferentei de culoare la mai multe culori si am putut calcula o valoare medie / tinta a valentei dintr-o colectie de culori selectate de utilizator. Urmatorul este un exemplu:

Amintiti-va ca fiecare „culoare de baza” are propria sa valoare de valenta (din testul de culoare). Cea mai apropiata „culoare de baza” pentru culorile selectate de utilizator u1, u2, u4 si u5 este b3, galben. Cu toate acestea, cea mai apropiata „culoare de baza” pentru u3 este b1, rosu. Acest lucru se datoreaza faptului ca delta e a lui u3 si b1 a fost mai mica in comparatie cu b3 si in comparatie cu restul culorilor de baza. Distinctia de aici este importanta, deoarece ne pasa de diferenta de culoare perceputa .

Pentru exemplul de mai sus putem calcula valenta astfel:

targetValence = (getValence (b3) * 4 + getValence (b1)) / 5

O formula mai generala pentru valenta ar arata astfel:

Am calculat cu succes valenta! Aceasta valoare reprezinta emotiile utilizatorilor si culorile alese. Acum ca avem artisti de valenta, energie si seminte, putem face o cerere GET catre punctul final al Spotify. Solicitarea va returna piese personalizate, pe care le folosim pentru a crea o noua lista de redare.

Un punct culminant este ca imaginea listei de redare va fi de fapt culorile selectate de utilizator.

Realizarea acestui lucru a presupus crearea unui element de panza HTML invizibil si colorarea individuala a pixelilor cu valori RGB din culorile alese. Apoi, convertiti imaginea intr-un sir codat base64 pentru a face o cerere PUT catre Spotify. Exista mai multe detalii in cod.

In plus, interfata pentru terapia cu culori aminteste de vechile jocuri Friv, dar cu culori generate aleatoriu si defilare infinita ????

Ganduri finale

Inainte, ar fi interesant ca testul sa includa mai multe intrebari si ca utilizatorul sa aleaga mai multe culori. Acest lucru ar creste precizia valentei, rezultand liste de redare mai precise. In plus, daca am adauga un backend, am putea genera date unice despre relatiile dintre muzica, culoare si valenta.

In ciuda relatiei dintre muzica si culoare fiind subiectiva, speram ca oamenii se pot conecta cu playlisturile generate! Va multumim ca ati citit, daca v-a placut terapia cu culori, va rugam sa jucati repo-ul nostru si sa il impartasiti cu prietenii!

Mai multe aplicatii de lista de redare de verificat

  • spoticlean: stergerea in masa a listelor de redare folosind RegEx (util pentru dezvoltarea aplicatiilor de redare)
  • singlespotify: creati o lista de redare bazata pe un singur artist
  • spotifork: furnizati o lista de redare Spotify