Jamulus

Jamulus
Utvecklare Volker Fischer och bidragsgivare
Initial release 2006 ; 17 år sedan ( 2006 )
Stabil frisättning
3.9.1 / 17 oktober 2022 ; 4 månader sedan ( 2022-10-17 )
Förvar
Skrivet i C++
Operativ system
Licens GPLv2
Hemsida jamulus.io

Jamulus är öppen källkod ( GPL ) nätverksansluten musikframställningsprogramvara som möjliggör liveövning, jamming och uppträdande med musiker som finns var som helst på internet. Jamulus är skriven av Volker Fischer och bidragsgivare med C++. Programvaran är baserad på Qt-ramverket och använder OPUS audio codec . Det var känt som "llcon" fram till 2013.

Ett av problemen med musik som spelas över internet i realtid är latens – tidsfördröjningen som uppstår när (komprimerade) ljudströmmar reser till och från varje musiker. Även om prioritetseffekten gör att små fördröjningar (upp till runt 40 ms) kan uppfattas som synkrona, gör längre fördröjningar det praktiskt taget omöjligt att spela live tillsammans. Ett ytterligare problem är jitter , en typ av paketfördröjning på grund av förändringar i latens över tiden, vilket resulterar i hackigt eller förvrängt ljud. Långa förseningar kan till och med leda till paketförlust (uppfattas som en "blackout"). Dessa kan lindras av fördröjningsbuffertar eller jitterbuffertar (som båda finns i Jamulus) - men dessa ökar sedan den totala fördröjningen tur och retur, så de måste balanseras.

Populär videokonferensprogramvara som Zoom eller Teams är olämplig för denna uppgift eftersom latensen kan vara mycket högre (Zoom rekommenderar "en latens på 150 ms eller mindre" och jitter på "40 ms eller mindre", och i vissa tester 2020 visade sig ha en genomsnittlig latens på 135 ms; "Ljudkvalitetsmåtten" för lag inkluderar att ha "Rundturstid >500 ms" och "Jitter >30 ms"). Dessutom är de flesta sådana program optimerade för tal snarare än musik, så ihållande musikaliska toner kan felidentifieras som bakgrundsljud och filtreras bort (även om detta kan lindras till en viss grad via inställningar som "Aktivera originalljud"). Konferensmjukvara är också ofta utformad för att en person ska höras åt gången (högtalaren blir "fokuserad") för att hindra människor från att prata över varandra, men detta gör det omöjligt att spela musik tillsammans. Dessutom tillåter konferensprogram normalt inte detaljerad inställning av individuella ljudströmmars volym eller panorering på användarsidan, som båda är integrerade funktioner i Jamulus.

För att minska latensen så mycket som möjligt använder Jamulus komprimerat ljud och UDP-protokollet för att överföra ljuddata. Total latens består av:

Jamulus är klient-serverbaserat; varje klient överför sitt eget komprimerade ljud till en server på internet. Servern blandar den (dekomprimerade) ljudströmmen för varje användare separat och återsänder den individuella komprimerade mixen till varje klient. Varje klient har sin egen mixerkonsol som styr sin mix på servern.

Servrar kan vara antingen offentliga eller privata (benämns "Registered" och "Oregistred", eftersom Jamulus inte har någon inbyggd användarautentiseringsmekanism), den förra listas av "kataloger" från vilka användare kan välja en server med den lägsta latensen för dem .

Användande

Redan 2018 väckte Jamulus uppmärksamhet som ett sätt för klassiska ensembler som stråkkvartetter att repetera på distans, men dess användning ökade dramatiskt under 2020 på grund av covid-19- pandemin . I april 2020 laddades den ner två tusen gånger per dag, med trenden ökande. Det valdes till SourceForge 'Månadens projekt' i juni 2020. Jamulus Storband, Sveriges första "virtuella storband" med över 20 medlemmar, startade också den månaden. Många förändringar gjordes senare för att stödja större grupper, som körer med så många som 98 medlemmar samt WorldJam , ett initiativ som låter musiker från hela världen spela tillsammans på en regelbunden basis.

Att ha en synkroniserad metronom för deltagarna i en session kan vara nyckeln till att hjälpa musiker att hålla takten i låten och vara synkroniserade med varandra. Många online-metronomer är tillgängliga, eller andra OpenSource-verktyg kan användas: som ett exempel använder Sychronome NTP (Network Time Protocol) med en nätverkstidsserver för att synkronisera metronomer för varje Jamulus-klient via smartphones.

Se även