User Tools

Site Tools


projekt:kakrafoon

Table of Contents

Kakrafoon

Kakrafoon är mjukvaran som sköter uppspelningen av musik i t-salen. Systemet består av två delar: en serverdemon kakrafoond som kör på en dedikerad dator i T-salen som heter mixer och som är kopplad till förstärkaren som står ovanpå säkskåpet; och ett klientskript som användaren kör i sin terminal. De båda kommunicerar med varann över ett särskilt protokoll.

Den nuvarande kakrafoon är den tredje inkarnationen av systemet. De första två versionerna var bakändor till CUPS. Den andra utav dem skrevs av johannes och implementerade fler features än den första. Denna version gick förlorad i en diskkrasch, och det hela gjordes om igen av dr_root, denna gång i Python. Sedan dess har ytterligare hackande gjorts av lidbjork, bjarni, med flera.

Snabbguide

Kör kommandot kakrafoon i en terminal så får du en lista på alla kommandoradsväxlar som finns för tillfället. I princip kan man sammanfatta användandet såhär:

  • Köa låtar Man köar låtar genom att skriva kakrafoon följt av ett eller flera filnamn. Då skickas filerna över till servern och hamnar i kön. Kön ordnas dynamiskt så att den växlar rättvist mellan olika användare.
  • Visa kön För att titta vad som finns i kön kan man skriva kakrafoon -q eller kakrafoon -l, som ger lite olika output. Där står jobbnumret för varje låt.
  • Ta bort låtar ur kön För att ta bort en låt använder man kakrafoon -r <jobbnummer>. För att ta bort låten som spelas just för tillfället räcker det med kakrafoon -r. Man kan också ange namnet på en användare för att ta bort den användarens låtar, eller växeln -a för att ta bort allting.
  • Ändra volymen Kör telnet mixer så får du upp en volymkontroll.

Diverse olika filformat stöds. Det går också att strömma ljud med ESD eller NAS. Då ska ljudservern vara satt till mixer:0. För NAS heter miljövariabeln AUDIOSERVER, för ESD heter den ESPEAKER.

Det finns också en websida som visar statistik över spelade låtar.

Det anses lite ofint att köa hela album när det är fler personer som spelar musik, och det anses väldigt ofint att köa musik om man inte är i T-salen, annat än om det är någon i T-salen som har bett en göra det. Det kan vara så att volymen är uppskruvad väldigt högt, och det syns inte på telnet-volymkontrollen om det av nån anledning är ratten på själva förstärkaren som är uppskruvad.

Utveckling

Kakrafoon 2 (i bruk)

Serverdemonen är installerad som /usr/local/bin/kakrafoondButlerelfia (alias mixer) och körs i en screen.

Arbetsversioner av kakrafoond finns i /home/lidbjork/kakrafoon2mixer och är döpta med datum. Filen med senaste datumet ska vara identisk med den i /usr/local/bin.

Senaste versionen av kakrafoon (klienten) är /home/update/lidbjork/develop/python/kakrafoon.py. Den ska vara installerad som kakrafoon på maskinerna som är öppna för allmän inloggning (Psilocybe, Tricholoma, mfl).

Vill du hjälpa till att utveckla ett bättre kakrafoon så rekommenderas det starkt att strunta i kakrafoon 2 och ge sig på version 3, som hittills utvecklas av josk (läs mer nedan). Vill du modifiera kakrafoon 2-demonen ska du prata med lidbjork eller bjarni. Vill du hacka på klienten är det bara att kopiera det nuvarande exemplaret till din egen hemkatalog och börja pilla, och be någon admin installera den nya versionen sen. Då är det också bra om du upplyser lidbjork om det så han kan uppdatera sin kopia till den senaste versionen som inkluderar dina ändringar.

Kakrafoon 3 (under utveckling)

I februari 2016 startade byggandet av en helt ny, mer gedigen och mindre buggig, kakrafoon. Diskussion om projektet sker hittills på irc-kanalen #kakrafoon på Efnet, och koden finns på https://github.com/jolmberg/kakrafoon

TODO:

  • väl definierade uppgifter för demon resp. klient
  • databas-hantering av kö/låtar
  • schemaläggningsmodul med tydligt gränssnitt
  • olika lägen för t.ex. “anarki” och restriktioner
  • stoppa en låt först i kön
  • flytta en låt, t.ex. ta nästa låt och stoppa sist
  • ordna om en användares låtar slumpmässigt, bra för album etc
  • ange att flera låtar ska spelas utan andra låtar emellan
  • ogöra featuren ovan
  • volym +/-
  • ploppa upp volymkontrollen
  • mute
  • subtunestöd
  • ange att en låt ska spolas fram till en viss tidpunkt när den startas
  • youtube
  • ta bort låten som spelas
  • paus
  • bättre stats
  • bättre listning av kö
  • linjär volym som vet vilken kontroll som ska ändras
  • interaktiv volym
  • global konfigurationsfil på nåt vettig ställe, inte bara i hemkatalogen
  • klienten kukar ur med en exception om ett filnamn refererar en katalog
  • demonen fyller /tmp/kakrafoon efter ett tag
  • klienten skriver inte ut nånting medans den köar, vilket är störande när man köar flera låtar
  • klienten borde inte skriva ut nåt alls när kön är tom, för att göra outputten mer maskinläsbar
  • demonen kan svara med ett “500 internal server error”, vilket dels inte är särskilt informativt, och dels inte hanteras på nåt vettigt sätt av klienten
  • demonen verkar hänga sig helt och hållet medans en klient köar låtar
  • om en klient köar flera låtar börjar ingen av dem att spelas förrän alla låtarna har köat färdigt. de dyker inte ens upp i /tmp/kakrafoon
projekt/kakrafoon.txt · Last modified: 2017/12/28 03:37 by bjarni

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki