Coronaviruset designat i labb?

19/04/2020

19.4.2020 kl. 23.22 GMT +2

I början av februari ställde jag frågan om CoVid19 eventuellt var ett ”biovapen” som av misstag rymt från laboratoriet. Det finns flera faktorer som eventuellt kan peka på detta:

  • Det biokemiska laboratoriet i Wuhan som utpekats som en möjlig ursprungskälla för CoVid19 viruset ligger några hundra meter från den köttmarknad som av kineserna utpekats som källa.
  • De första patienterna verkar inte ha varit i kontakt med marknaden.
  • De kinesiska myndigheterna tog i ett mycket tidigt skede d.v.s. innan det ännu fanns många smittade eller många döda till storsläggan och stängde ner hela samhället fullständigt. Man tar inte till denna typ av åtgärder utan att sitta på information som inte är allmänt känd … t.ex. att myndigheterna via egna kanaler fått veta att en för laboratoriet känd virusstam kommit ut.

För ca. två timmar sedan såg jag en intressant video som hänvisar till Franska nyheter om att nobellpristagaren virologen Luc Montagnier konstaterar att CoVid19 viruset innehåller komponenter från både HIV och Malaria som inte kan ha kommit in i viruset utan att människan har haft sitt finger med i spelet.

French_virologist

Att forskning kring olika kända svåra sjukdomar sker runt om i världen är självklart och arbetet kan motiveras med att man måste känna till på vilket sätt dödliga virus fungerar för att kunna hitta botemedel.

En helt annan sak är om man tar ett vanligt ”förkylningsvirus” och lägger till komponenter från andra virus, komponenter som man vet att sannolikt gör det ursprungliga viruset farligt. Arbete med att konstruera nya virus med tillsats av kända dödliga komponenter är däremot rent militär forskning som entydigt bryter mot internationella avtal. Det är intressant att notera att just Coronavirus under många år har studerats så väl att man känner till hela genomet för specifika stammar. Bl.a. har Bill Gates varit aktiv på detta område. Att vid modifikation av ett virus, så att nya komponenter läggs till, använda ett välkänt basmaterial d.v.s. Coronavirus verkar då rätt självklart.

Den 10.4.1972 undertecknades ett internationellt avtal som förbjuder bl.a. lagring och utveckling av biologiska vapen. Om det visar sig att Montagnier har rätt så är dagens epidemi mycket allvarligare än en enstaka farsot eftersom det då sannolikt är ett biovapen som kommit ut … samtidigt som lagring och utveckling av denna typ av vapen entydigt är förbjuden enligt internationella avtal.

Om det har bedrivits militär biovapenforskning på laboratoriet i Vuhan så är det också lätt att förstå de extrema åtgärder som myndigheterna vidtog redan i ett tidigt skede. Om myndigheterna har varit medvetna om att det har forskats i SARS, MERS, HIV och andra sjukdomar på laboratoriet så har man säkert i ett tidigt skede kunnat upplysa myndigheterna om vilka komponenter det förrymda viruset kan innehålla.

Vem borde stå för de kostnader om tusentals miljarder som epidemin ger upphov till?

Notera!

Videon nämner komponenter från också malaria. Malaria är inget virus. Det kan trots detta naturligtvis vara möjligt att man har hittat någon intressant komponent i Malariagenomet som man har velat testa …

Att hacka GarageBand (del 3)

15/04/2020

Landet är nedstängt till följd av Coronaepodemin. Vårt spelmanslag har inte spelat ihop på flera veckor … vi är naturligtvis laglydiga medborgare men det må vara tillåtet att som finnens säger ”purna” eller på svenska svära över situationen.

Jag har i tidigare artiklar skrivit om hur vi försöker hålla igång verksamheten trots att det inte går att samlas för att spela. Vi försöker spela in låtar på distans så att någon startar projektet genom att skapa ett bottenspår till vilket var och en hemma kan utarbeta ett eget spår som sedan kan mixas ihop med bottenspåret … bottenspåret kan naturligtvis falla bort under processen då det inte längre behövs.

Patrik Harald vår basist gjorde ett trevligt basspår med bakomliggande rytmtrack. Vi har i olika sammanhang improviserat kring motsvarande spår (ofta då gitarrackord). Här är mitt försök till improvisation på Patriks spår.
Arbetsgången var följande:
  • Jag försökte sjunga till spåret d.v.s. hitta vettig tonhöjd som inte skär sig med bakgrunden. Bluesskalan är relativt enkel vilket gör att det finns ganska få toner att välja mellan.
  • Började lägga till lite text … helt ur fantasin d.v.s. ”sjöng vad spottet förde i min mun”.
  • Tog fasta på någon textrad och skrev så småningom ner ett antal verser. Det är oftast lättare att utveckla en melodi om verserna har en fast form och textens rytm från vers till vers någorlunda passar ihop.
  • Började försöka sjunga texten till spåret med många förändringar på vägen. Gissar att det spår som finns på videon kanske är version 20, eller mer,  och det innehåller fortfarande många fel som kunde slipas bort och förbättras.
  • När sången fanns på plats gjorde jag detsamma på hardangerfiol men följde naturligtvis sången. GarageBand var här till god hjälp eftersom det gick att följa ljudspåret grafiskt vilket gjorde att jag kunde se hur mycket tid jag hade i luckorna mellan sångdelarna att lägga till fiolgnissel.
  • När ljudet någorlunda låg på plats så att man inte behöve skämmas allt för mycket körde jag ut resultatet som MP3 och använde gratisprogrammet OpenShot på PC (Linux) till att göra en video. Jag grävde igenom mitt bildarkiv och sökte möjligast mörka hotande bilder för att matcha musiken. Jag tog en serie bilder av hus ritade av arkitekten/vissångaren Bosse Österberg mitt på natten i fullmåne.  Bilden för nästsista versen med löv av guld är tagen vid samma tillfälle på natten i gul gatubelysning (natriumljus) som matchar bra mot det naturliga månskenet. Det videospår man ser är kanske version fem eller något åt det hållet.

Låten nedan (som fanns också i den föregående artikeln) har alltså skapats utan att personerna som har gjort låten över huvudtaget har träffats fysiskt. Det skulle naturligtvis ha varit trevligare att träffas för att jamma i grupp men eventuellt är Coronametoden mera produktiv då det blir kvar ett hörbart resultat.

 

 

Musik i Coronatider

15/04/2020

Sverige och Finland hanterar Coronaepidemin på olika sätt. Vi har i Finland haft en betydligt striktare nedstängning av samhället än Sverige. Tiden får utvisa vilken linje som var bättre. Min personliga gissning är att Sveriges val i detta fall antagligen totalt sett är bättre eftersom samhällsskadorna sannolikt blir mindre än skadorna av att stänga ner samhället.

Hur är det då med ”riskgruppen”? Jag finns inte ännu själv i riskgruppen men åldersmässigt är jag nära gränsen. Det blir intressant att analysera Coronaepidemin efter ett år då man fått in tillräckligt med data om det verkliga utfallet. Kommer man t.ex. att överhuvudtaget kunna se någon signifikant förändring i den totala dödligheten eller leder Coronaepidemin till att de gamlingar som redan såg Liemannen vinka på nära håll beslöt att ge sig iväg några dagar tidigare än vad som annars skulle ha varit fallet?

Nedanstående Coronatiders råa blues är en fullständigt politiskt inkorrekt låt men som jag som 67-åring kanske har rätt att skriva och sjunga.

Hur stor del av dödsfallen i riskgruppen är en direkt följd av en extremt omfattande användning av statiner i riskgruppen. Man vet att kolesterol har en stor betydelse direkt och indirekt för vårt immunförsvar. Plötslig död i hjärtstopp kan vara en följd av att produktionen av Q10 blockeras av statiner. D-vitamin uppfattas spela en viktig roll i immunförsvaret. För att bilda D-vitamin behövs solljus … och kolesterol.

Världen har i många år gått och väntat på den stora ekonomiska recessionen. En värld där centralbanken lånar pengar till negativ ränta är garanterat sjuk. Är Coronaepidemin nu syndabocken som man entusiastiskt tar emot för att rensa bokföringen och skinna den vanliga befolkningen?

Hur kommer det nu att gå för den tidigare skrämselkampanjen d.v.s. klimathysterin där en positiv svag uppvärmning under många år i media har presenterats som ett existentiellt hot mot människosläktet. Absurditeten kan lätt ses då man uppskattar att uppvärmningen skall vara störst i norr. Av någon outgrundlig anledning så går de nordiska semesterresorna fortfarande söderut och inte i riktning Svalbard i norr!

Att ”hacka” GarageBand (del 2)

02/04/2020

I den första delen av den här artikelserien diskuterade olika inspelningsprogram för Windows, Mac och Linux. Eftersom det finns Mac-användare i spelmanslaget så verkar GarageBand vara ett möjligt relativt enkelt program som kunde användas för utspridd inspelning av olika låtar så att de olika medlemmarna i spelmanslaget spelar in olika spår som sedan kombineras.

En känd begränsning som GarageBand har är att det är möjligt att importera MIDI till GarageBand men programmet tillåter inte export av MIDI. Ett problem är då att det kan vara besvärligare att modifiera existerande bas- och andra slingor i programmet än om man använde ett annat program bättre lämpat för just detta ändamål.

Programmet GbConverter, ett enkelt övningsarbete

Programmet GarageBand hanterar internt MIDI men exporterar inte spår eller delar av spår som midi. Detta är sannolikt ett medvetet marknadsföringsval.

GarageBand är ett gratisprogram som kan laddas ner från Apple store. Till programmet kan dessutom laddas ner ett rätt stort paket med ljud för Midi-instrument och låtslingor. Totalt bortåt 15GB färdiga ljud och slingor finns tillgängliga utan kostnad.  Trots att det finns mängder av slingor så hör en stor del till kategorin ”pop” vilket inte är speciellt intressant för ett spelmanslag som spelar traditionell, främst nordisk, folkmusik. Nya slingor, som passar bättre till folkmusik, borde alltså skapas. GarageBands oförmåga att exportera slingor som MIDI-filer gör att det är svårare att ”stjäla” och modifiera existerande slingor. Modifikation av en MIDI-fil  kan rätt enkelt göras i MuseScore som är ett notskriftsprogram med öppen källkod d.v.s. ”gratis”.  Orsaken till att export av MIDI saknas är sannolikt att GarageBand har en storebror med i princip samma användargränssnitt men med utökad funktionalitet bl.a. export av MIDI. Storebror heter Logic Pro som naturligtvis klarar av att exportera MIDI-filer.

Skärmavbild 2020-04-01 kl. 11.30.35

Bilden visar utt urklipp från GarageBand där jag har importerat en sekvens grundackord från MuseScore i form av en MIDI-fil. Jag har i GarageBand klippt spåret i fyra delar (ackorden C, F, G och slutackord C). Antag nu t.ex. att jag vill ha tillgång till motsvarande eventuellt något modifierade slingor också i tretakt (vanligt i nordisk folkmusik) och i de vanligaste tonarterna C-, G-, D-, A-dur … I MuseScore har jag bra kontroll över transponering och kan enkelt lägga till rytmfigurer. Att modifiera melodislingor eller MIDI track i GarageBand kan göras men det är jobbigare än att använda en noteditor.

MIDI-export kan trots begränsningen i GarageBand göras rätt enkelt genom att utgå från GarageBands melodislingor (loop) som är lagrade i filer av typen .aif . Då man Googlar på detta filformat så hittar man t.ex. följande information:

Data format

En AIFF fil är uppdelad på ett antal block (chunk). Varje block idetifieras genom ett block ID (chunk ID) som som kallas FourCC. FourCC har sina rötter i Amiga datorns (i saligt minne) filformat. FourCC är en unik serie på fyra tecken som identifierar innehållet i ett block. Det MIDI-block vi plockar ut ur .aif filen börjar med teckensekvensen ‘MHdr’.

En AIFF fil kan innehålla följande blocktyper:

  • Ett allmänt block (måste finnas). Common Chunk
  • Ljuddatablock (måste finnas). Sound Data Chunk
  • Utmärkning. Marker Chunk
  • Instrumentblock. Instrument Chunk
  • Kommentarblock. Comment Chunk
  • Namnblock. Name Chunk
  • Författare block. Author Chunk
  • Copyright block. Copyright Chunk
  • Annoteringsblock. Annotation Chunk
  • Audio inspelningsblock. Audio Recording Chunk
  • MIDI datablock. MIDI Data Chunk
  • Applikationsblock. Application Chunk
  • ID3-block. ID3 Chunk

Vi ser att filen innehåller ljuddata (okomprimerad i princip .WAV) samt en hel del annan information. Det vi är intresserade av ligger nära slutet d.v.s. vi hittar ett MIDI-datablock.

Vi googlar vidare och hittar en beskrivning på hur en MIDI-fil är uppbyggd. MIDI-blocket börjar med rubriken ‘MHdr’ och MIDI-blocket avslutas med  ‘CHS’. För att en MIDI-fil skall kunna läsas in i ett program behövs ytterligare kodsekvensen ’00’, ‘FF’, ‘2F’ och ’00’ som hexadecimala tal. Sekvensen anger att MIDI-filen är slut.

För att plocka ut MIDI ur en GarageBand .aif fil behöver vi alltså skriva ett program som läser .aif-filen och söker efter ‘MHdr’ samt ‘CHS’. Om dessa markörer hittas så skrivs hela området mellan makörerna (inklusive markörerna) till en fil som avslutas med kodsekvensen ’00’, ‘FF’, ‘2F’ och ’00’ (notera att sekvensen bestå av en Amiga fourCC kod). Ett enkelt program i t.ex. programmeringsspråket Python med denna funktionalitet kan hackas ihop mycket snabbt men det måste då köras i en terminal från kommandoraden. För att programmet skall se ut som en normal Mac applikation så måste det ha ett matchande grafiskt användargränssnitt.

Skärmavbild 2020-04-01 kl. 12.43.19

Konversionsverktyget GbConverter skrivet i Lazarus (Pascal).

Att skriva i Lazarus (Pascal)

Programmeringsprojektet inleds genom att projektet namnges i vårt fall GbConverter. Då projektet skapas så väljer man samtidigt vilket bibliotek som används vid bygge av användargränssnittet. Jag använder det nyare Cocoa eftersom nyare versioner av macOs kommer att använda Cocoa vilket bör ge längre livslängd på programmet eftersom den gamla varianten långsamt fasas ut då nyare versioner av operativsystemet lanseras.

Jag startar Lazarus (Version 2.0.6) som jag tidigare hade installerat, installationen hör inte till denna artikelserie. Projektet är GbConverter.

Jag börjar med att fundera ut vilka grundkomponenter, fönster och fönsterkomponenter, jag behöver. Jag identifierar följande komponenter:

  • Ett huvudfönster som heter GbConverter och som är det användaren normalt kommer att se.
  • På huvudfönstret lägger jag en kortfattad instruktion.
  • Jag behöver ett katalognamn för den plats dit den extraherade midifilen skall skrivas.
  • Jag behöver ett filnamn för den extraherade midifilen.
  • Jag behöver ett fönster som visar konversionsprocessen och som ger information om eventuella fel.
  • En knapp öppnar en väljare för destinationskatalog.
  • En knapp väljer filen som skall konverteras.

Jag behöver ett fönster som beskriver programmet. Detta fönster kopplas till den standardmenu som skall finnas på varje programs Menurad överst på skärmen då programmet kör och är aktivt.

I den här versionen av programmet öppnar jag ett separat fönster för val av fil som skall konverteras. Detta görs som ett experiment för att se hur kommunikation mellan fönster kan göras. I en senare version av programmet plockar jag antagligen bort detta fönster eftersom en filvalsdialog lika väl kan anropas direkt från huvudfönstret.

Skärmavbild 2020-04-01 kl. 23.19.45

Lazarus programmeringsomgivning där de tre fönstren har ritats upp med hjälp av en fönstereditor.  Dessa fönster och komponenterna i fönstren kommer att generera tre pascal källkodsfiler  unit1_GbConverter, Unit1 samt Unit2. Då fönstren + komponenterna skapas så skapas samtidigt skelettkod i ovanstående moduler (unit1_GbConverter, Unit1 samt Unit2). Det är nu programmerarens uppgift att skriva kod inne i de färdiga tomma procedurer som skapats. Ett enkelt exempel:

Knappen <Set up ‘mid’ destination> skall hämta namnet på den katalog till vilken den utplockade MIDI-filen skall skrivas. Detta hanteras så att då man klickar  <Set up ‘mid’ destination> så förstår programmet automatiskt att det skall anropa proceduren (skelettet):

procedure TForm1.Button3Click(Sender: TObject);
Begin
end;

Jag öppnar då ett annat fönster som öppnar en fildialog som ger stigen till den katalog jag vill skriva till. Jag behöver lägga till följande:

procedure TForm1.Button3Click(Sender: TObject);
Begin
  Form2.ShowModal;
  LabeledEdit1.Text := Form2.midPath;
end;

Den första raden Form2.ShowModal; öppnar fönster nummer två (Form2). Den andra raden jag skriver LabeledEdit1.Text := Form2.midPath; kopierar text från det nya fönstrets textområde till huvudfönstrets textområde.

På motsvarande sätt fyller jag stegvis i kod i övriga av Lazarus skapade procedurer som jag behöver. Programmet kan hela tiden kompileras och köras men om kod saknas så finns naturligtvis ingen funktionalitet och det kommer i det färdiga programmet att finnas procedurer som har skapats automatiskt men som inte innehåller någon kod och som således är inaktiva. Intresserade läsare kan titta på källkoden till programmet som finns i zip-filen i slutet av artikeln.

Programmet innehåller en enda procedur som utför hela arbetet efter att man har definierat skrivkatalog, filnamn på fil som skall skrivas samt namnet på den fil som skall konverteras.

Koden är följande:

procedure extractMidi(filename:String);
var Ms:TMemoryStream;
Fs:TFileStream;
startMidi,endMidi,endCodeStart:Int64;
B : array of Byte;
fileSize : Integer;
pattern: TPatternArray;
begin
  Form1.Memo1.Lines.Add('Get contents of:'+filename);
  if not FileExists(filename) then Exit;
  destPath := Form1.LabeledEdit1.Text;
  if destPath='' then
  begin
    Form2.ShowModal;
    Form1.LabeledEdit1.Text := Form2.midPath;
    destPath :=Form2.midPath;
    Form1.Memo1.Lines.Add('Selected MIDI output destination:'+destPath);
  end;
  destFile := Form1.LabeledEdit2.Text;
  Form1.Memo1.Lines.Add('Set destPath to:'+destPath);
  Form1.Memo1.Lines.Add('Set destFile to:'+destFile);
  Form1.Memo1.Lines.Add('Set destFile to:'+destPath+'/'+destFile);
  if not DirectoryExists(destPath) then
  begin
    Form1.Memo1.Lines.Add('Error:'+destPath+' does not exist');
    Exit;
  end;
  if FileExists(destPath+'/'+destFile) then
  begin
    if DeleteFile(destPath+'/'+destFile) then
    begin
      Form1.Memo1.Lines.Add('Deleted old version of .mid file');
    end else
    begin
      Form1.Memo1.Lines.Add('Error: Could not delete old version of .mid file');
    end;
  end;
  Ms := TMemoryStream.Create;
  Ms.LoadFromFile(filename);
  filesize := Ms.Size;

  try
  Ms.Position := 0;
  Form1.Memo1.Lines.Add('Read Loop file.');
  Form1.Memo1.Lines.Add('Size='+IntToStr(fileSize));
  { Searching for 'MTrk' in the FileStream }
  pattern := StringToByteArray('MThd');
  startMidi := DoSearch(Ms,pattern);
  { Ensure we continue from 'MThd' forward }
  Ms.Seek(4,startMidi);
  pattern := StringToByteArray('CHS');
  endMidi := DoSearch(Ms,pattern);
  Form1.Memo1.Lines.Add('Looked for MIDI start=MThd, res='+IntToStr(startMidi));
  Form1.Memo1.Lines.Add('Looked for MIDI end=CHS, res='+IntToStr(endMidi));
  if (startMidi>0) and (endMidi>0) then
  begin
    Form1.Memo1.Lines.Add('Extract MIDI');
    //filePath := ExtractFilePath(filename);
    Form1.Memo1.Lines.Add('File path:'+destPath);
    Form1.Memo1.Lines.Add('Output File name:'+destPath+'/'+destFile);
    Fs := TFileStream.Create(destPath+'/'+ destFile, fmCreate);
    { Read into temporary buffer }
    SetLength(B,(endMidi-startMidi + 16));
    Ms.Position := startMidi;
    { We include the start and end codes (4=MTrk)(3=CHS)}
    Ms.Read(B[0],(endMidi-StartMidi+3));
    endCodeStart := endMidi-StartMidi+4;
    { Add MIDI end of track mark }
    B[endCodeStart]:= $00;
    B[endCodeStart+1]:= $FF;
    B[endCodeStart+2]:= $2F;
    B[endCodeStart+3]:= $00;
    { Write Buffer to FileStream }
    Fs.Write(B[0],(endMidi-StartMidi+3));
    Fs.Free;
  end else
  begin
    Form1.Memo1.Lines.Add('Invalid LOOP file, MThd and/or CHS not found.');
    Exit;
  end;
  finally
    Ms.Free;
  end;
end;

Programtexten bör vara relativt enkel att läsa. De första ca. 30-raderna är endast kontroll av möjliga fel d.v.s. kontroll att destinationskatalogen finns etc. Om filen som skall konverteras inte finns så ger programmet upp genast. Det egentliga arbetet börjar vid:

Ms.MemoryStream.Create;
Ms.LoadFromFile(filename);
filesize := Ms.Size;

Vi läser in hela .aif filen i maskinens minne. I mitt testfall är det ungefär 400 000 tecken eftersom aif-filen också innehåller ljuddata (WAV).  Alla rader som innehåller Form1.Memo … skriver till informationsfönstret så att man skall kunna se om något går fel. Dessa raders enda funktion är att informera om hur långt vi har kommit i konversionen och dessa rader kunde lämnas bort utan att programmets funktion ändras.

pattern := StringToByteArray('MThd');
startMidi := DoSearch(Ms, pattern);

Vi söker efter strängen som indikerar början på midi blocket.

Ms.Seek(4,startMidi);

Vi ställer en pekare så att vi fortsätter sökandet efter den hittade startpunkten. Det kunde annars, om vi skulle söka efter ‘CHS’ från början av filen,  hända att teckenserien vi härnäst söker efter ‘CHS’ kunde tänkas finnas i det redan avsökta området vilket skulle ge fel och eventuellt leda till mycket intressanta bieffekter då det funna blocket skall skrivas till skiva (sannolikt skulle krogrammet krascha och eventuellt skulle maskinen låsa sig). Därefter söker vi slutet på midifilen på motsvarande sätt.

pattern := StringToByteArray('CHS');
endMidi := DoSearch(Ms, pattern);

Om vi har hittat både en startpunkt och en endpunkt så antar vi att det som finns mellan dessa punkter är den MIDI-fil vi vill plocka ut.

Vi läser in MIDI-området i en temporär buffert som jag kallar B och som är tillräckligt lång för att rymma MIDI-filen.  Vi skapar en Fil-ström som vi senare använder för att skriva midifilen till skiva.

Fs := TFileStreamCreate(destPath+'/'+destFile);

Vi läser in midi-området i bufferten B innan vi skriver till skiva för vi vill modifiera filen en aning innan vi skriver den. Vi beräknar platsen i bufferten där midi-blocket är slut d.v.s. efter ‘CHS’ men så att ‘CHS’ också skrivs till skiva.

Ms.Read(B[0],(endMidi-startMidi+3);
endCodeStart := (endMidi-startMidi+4);

Vi lägger nu till stoppkoden som signalerar till något annat program som läser midifilen att midifilen är slut.

B[endCodeStart] := $00;
B[endCodeStart+1] := $FF;
B[endCodeStart+2] := $2F;
B[endCodeStart+3] := $00;

Slutligen skriver vi resultatet till skiva och är färdiga att börja behandla följande .aif fil.

Fs.Write(B[0],(endMidi-startMidi+8));
Fs.Free

Sökning i minnet

Att söka efter en textsträng i en s.k. binärfil är besvärligare än att söka i en normal textmassa. Sökning i en text kan göras med en mängd färdiga verktyg. Sökning i en binärfil blir mera komplicerad av att vilka tecken som helst kan förekomma också tecken som har specialbetydelse i en vanlig text och som kan få en sökfunktion att tappa bort sig. Sökningen görs med hjälp av en kort sökfunktion :

function DoSearch(Stream: TMemoryStream; Pattern: TPatternArray): Int64;
var
  idx :Integer;
begin
  result := -1;
  for idx := Stream.Position to Stream.Size - Length(Pattern) do
  begin
    if CompareMem(Strem.Memory + idx, @Pattern[0], Length(Pattern))
    then exit(idx);
  end;
end;

Wi söker alltså direkt i maskinens centralminne i en kopia på GarageBands aif fil vilket gör sökningen snabb också på en gammal och i princip långsam iMac som den jag har.

Det kan vara kul att titta på kostnaderna för de iMac-ar jag har satt upp för musikprojektet.

Den maskin jag skrivit programmet på är en 21,5 tums iMac från 2009 med 12 GB centralminne och 500 GB SSD hårdskiva. Totalpris ca. 100E efter minnesuppgradering och byte av en urgammal mekanisk hårdskiva som sannolikt sjöng på sista versen till SSD-skiva.

Anders, en god vän kör en 24 tums iMac årsmodell 2007 uppgraderad till maximalt 6GB centralminne med SSD hårdskiva. Pris totalt under 100E efter uppgradering … inköpt för 10E utan hårdskiva.

Det är intressant att notera att då jag inte spelar datorspel så fungerar båda maskinerna utmärkt utan att visa några som helst ålderskrämpor i form av störande tröghet gällande de program jag använder (Garageband, OpenOffice, Vebbläsare och Lazarus).

(Följande artikel beskriver hur det ”hackade” systemet används)

 

 

Musik med Corona, att ‘hacka’ GarageBand (del 1)

01/04/2020

Vårt spelmanslag ”Altra Volta” har inte spelat ihop på några veckor och något borde göras för att gruppen skall kunna fortsätta att spela utan risk för smitta.

Ett sätt att fortsätta med musikhobbyn är att t.ex. börja spela in vår repertoar men så att inspelningen görs stämma för stämma och instrument för instrument över nätet. Det är inte med dagens teknik möjligt att göra inspelning i en virtuell studio där de olika deltagarna sitter hemma och spelar ihop i realtid. Problemet är fördröjningarna i nätet. Man uppfattar inom telefoni att den maximala fördröjningen är ca. 400 ms vilket hörs som ett obehagligt ”eko” om man över telefon talar med en annan person i samma rum. Om man spelar i tempot 120 slag/minut så motsvarar en fördröjning på 400 ms nästan ett taktslags fördröjning vilket inte är acceptabelt. Min gissning är att fördröjningen borde fås ned till under 100 ms (1/10 s) för att fördröjningen inte skall störa i amatörsammanhang … yrkesmusiker störs antagligen av ännu mindre inexaktheter. Kanske jag med 5g teknik kan planera den virtuella studion i framtiden?

Inspelningsprogram

Det finns mängder av inspelningsprogram på olika plattformer.

Gratisprogrammet  Audacity fungerar rätt bra under Windows, Linux och på Mac … problemet är att det verkar finnas vissa fel då man skall lägga till externa spår till ett lokalt inspelat spår, fel som gör att programmet i vissa fall vägrar köra.

På Windows finns t.ex. programmet Cubase men jag har ingen praktisk erfarenhet av detta program.

Vill man betala för ett inspelningsprogram så finns t.ex. ProTools för både Windows och Mac men inte för Linux. ProTools verkar dock relativt komplicerat utgående från erfarenheterna med att hjälpa en vän som har gått över från Windows till Mac och ProTools. Väldigt jobbigt med ett kopieringsskyddat program som dessutom inte är helt billigt.

På en Mac finns programmet GarageBand som, trots vissa buggar, verkar fungera rätt pålitligt och samtidigt innehåller en rätt stor mängd effekter som dock främst verkar vara gjorda för popmusik och inte den typ av folkmusik vi spelar. Garageband verkade dock så intressant att jag köpte mig en 21,5 tums iMac från 2009 för 50 Euro (500 SEK). Efter byte av den mekaniska hårdskivan till SSD och uppgradering av minnet till 12 GByte (billigt) så fungerar maskinen utmärkt och är trevlig att jobba med. Ljudkortet jag använder och som fungerar väl både under Linux och i Macen är Behringers Uphoria UMC404HD. Jag kan spela in elektroniska (simulerade) instrument m,ed hjälp av ett elektroniskt keyboard av typen M-Audio KeyRig 25.

För att skriva noter använder jag programmet MuseScore som finns för Windows, Mac och Linux.

Användning av GarageBand

Jag har spelat in några stycken på GarageBand flerstämmigt. Inspelningen går till så att jag skapar ett akustiskt spår (track) på vilket jag spelar in t.ex. melodin med användning av metronom (som finns i programmet). Jag kan efter detta lyssna på det inspelade bandet och spela in en stämma i taget eventuellt på olika instrument. För denna typ av extremt enkel inspelning fungerar programmet utmärkt.Jag kan också spela in piano eller en rätt stor grupp MIDI-instrument med hjälp av keyboardet.

Om jag vill lägga till t.ex. kompslingor med gitarr eller bas så visar det sig att det finns väldigt lite slingor som inte är överdrivet ”pop”-iga. Ett intressant alternativ vore att helt enkelt modifiera någon eller några existerande slingor som passar bättre till nordisk folkmusik. Det går att skapa egna slingor i GarageBand men verktygen kunde vara bättre och det är relativt besvärligt att modifiera existerande slingor. Ett alternativ vore att modifiera MIDI-spår med något lämpligt program utanför GarageBand och därefter läsa in den modifierade musiken  tillbaka i GarageBand.

GarageBand problem

GarageBand tillåter inte export av MIDI men nog att MIDI läses in utifrån. Jag kan alltså inte läsa in t.ex. en GarageBand slinga i MuseScore, transponera, ändra tempo eller taktart etc. Hur skall det problemet lösas?

Det visar sig att GarageBand sparar sina slingor i filer av typen .aif . Dessa filer är binära d.v.s. det är inte möjligt att studera dem i en texteditor däremot kan man titta på dem i en såkallad HexEditor d.v.s. ett program som visar innehållet som Hexadecimal nummerkod parallellt med att tecken som är skrivbara visas i ett eget fält. Med hjälp av en HexEditor kan man se att en .aif sling från Garageband innehåller en komplett MIDI-fil sannolikt tillsammans med ljuddata för det instrument som slingan spelar.

Lite sökande på nätet visade att en MIDI-fil alltid startar med rubriken ‘MHdr’ (MidiHeader). Filslutet utmärks med ‘CHS’ samt ytterligare de hexadecimala tecknen ’00’, ‘FF’, ‘2F’ och ’00’. På nätet hittar man instruktioner för hur man t.ex. med en hexeditor kan plocka ut MIDI ur en fil geno att söka efter ‘MHdr’ och ‘CHS’. Försöker man läsa in en fil baserat på detta i GarageBand så låser sig systemet eftersom slutkoden saknas.

En midifiles upphyggnad finns beskriven här i detalj.

Problemet med modifiering av slingar löses alltså genom att skriva ett program i Pascal. Systemet inklusive ett grafiskt gränssnitt heter ‘Lazarus’. Programmeringen görs som man under antiken d.v.s. på 1990-talet skrev t.ex. i Visual Basic. Programmets användargränssnitt ritas i ewn grafisk editor som automatiskt genererar tom kod för de skapade elementen. Programmerarens uppgift blir då att lägga till kod i de olika komponenterna så att programmet får önskad funktion. Liksom alltid då man börjar skriva i ett nytt och okänt språk så är problemet att omgivningen och alla verktyg är okända. Jag börjar med att skriva ett program med ett enda fönster och t.ex. en enda tryckknapp.

Arbetsprocessen med det nya programmety blir då ungefär följande:

Alternativ 1

  • Skriv melodislingor på MuseScore och exportera dem till GarageBand

Inget konversionsprogram behövs i detta fall.

Alternativ 2

  • Sök upp en intressant slinga i Garageband
  • Läs in slingan i MuseScore efter konvertering i GbConverter
  • Modifiera slingan i MuseScore
  • Importera den modifierade slingan som MIDI till GarageBand

För att arbetet skall göras bekvämt så körs tre program parallellt d.v.s. GarageBand, MuseScore och GbConverter. Eventuellt kan man säga att fyra program används eftersom importering av en MIDI-fil till GarageBand görs så att man från filhanteraren drar midifilen till önskat spår i GarageBand.

En liten introduktion till GarageBand från nätet:

(Fortsättning: Programmet GbConverter skrivet i omgivningen Lazarus i Pascal).

Malariaområde –> lite Coronavirus, varför!

20/03/2020

Jag har tidigare skrivit om Kinins möjliga effekt mot Coronavirusinfektion . Det här är en mycket kort fortsättning som grafiskt visar situationen. Källa WUWT.

Den övre bilden visar områden där Malaria förekommer och där följaktligen också Kinin används även om det idag också finns andra mediciner mot Malaria. Den nedre bilden visar områden där Coronaviruset idag är ett problem. Notera att det finns överlappning t.ex. indonesien etc. är ett sådant område. Jag vet inte vad osaken till detta är inte heller hur utbredd Malaria är i detta område.

Kinin, det finns olika kemiska varianter, verkar påverka replikeringen av virus på två olika sätt.

  • Den första effekten är, att Kinin tydligen förändrar receptorerna på cellväggen så att det blir svårare för ett virus att ta sig igenom cellväggen. Eftersom ett virus inte ”lever” så betyder detta att viruset inte kan reproducera sig utanför en värdcell och nya virus produceras alltså inte vilket bör leda till mindre allvarlig virusinfektion jämfört med att Kinin inte hade använts.
  • Den andra effekten av Kinin är att ämnet effektiverar införseln av grundämnet Zink i cellen. Ett överskott av Zink i en cell blockerar virusets replikeringsenzym vilket betyder att även om ett virus har tagit sig in i cellen så är det inte självklart att viruset kan replikera sig … igen är resultatet att färre virus produceras med samma resultat som i punkt ett.

Ovanstående resonemang leder till att:

  • Det lönar sig att få i sig små mängder Kinin. Kinesiska och Japanska uppgifter talar om ca. 9 mg som den behövliga dagsdosen.
  • Om de preliminära resultaten visar sig stämma så lönar det sig att ta extra Zink eftersom effekten då sannolikt förstärks.
  • Om man inte har tillgång till Kinin så kan det fortfarande löna sig att ta lite extra Zink eftersom högre koncentration Zink i blodet i motsvarande grad bör höja Zinkkoncentrationen också inne i cellerna, dock inte lika mycket som då Kinin finns tillgängligt.

Var hittar jag det receptbelagda läkemedlet Kinin?

Kinin används som smakgivare i vissa livsmedel. Kinin är extremt beskt vilket betyder att endast små mängder Kinin behövs för att ge t.ex. en dryck en kännspak smak. En dryck som innehåller kinin är Tonic Water d.v.s. den läskedrck man traditionellt har blandat med Gin för att göra Gin & Tonic.

Är mängden Kinin i Tonic Water tillräckligt hög för att den kan tänkas ha någon effekt? Amerikanska normer säger att Tonic Water maximalt får innehålla 83 mg Kinin per liter läsk. Om vi antar att Tonic Water innehåller ungefär denna maximala mängd kinin så ser vi att vi får ungefär 27 mg Kinin per flaska (3dl) Tonic Water vilket är en 3ggr högre dos än vad kineser och japaner har använt.

Vill man försöka sig på alternativ medicinering så kan alltså eventuellt Tonic Water vara något att satsa på. Det är sedan fråga om användarens eget val om man ytterligare vill ta kål på virusets fettskikt med hjälp av alkohol i strikt medicinsk användning … skål!

Var hittar jag Zink?

Zink säljs i hälsokostaffärer och helt vanliga marketar bland vitaminer etc. Det finns också varianter som förutom Zink också innehåller grundämnet Selen. Som jag tidigare har skrivit så kan det också finnas en koppling mellan virus aggressivitet och Selenbrist.

Annat

Personligen uppfattar jag efter några års användning att en ökning av cvitamindosen alltid är värd att pröva på. Den dos jag själv tar ligger på ungefär 5g per dag vilket är ca. 700 ggr det läkarvetenskapen säger att människan behöver för att inte få akut skörbjugg. Brist på C-vitamin kan leda till kransartärssjukdomar, tandproblem, ledproblem, depression och mycket annat … sjukdomar som också dyker upp vid akut skörbjugg.

Ett överskott C-vitamin går ut med urinen. Detta kommenterar läkare idag med att man slösar pengar på att urinera ut onödigt C-vitamin (min 5g dos kostar ungefär 10 cent vilket inte gör att jag går i konkurs). Mitt svar på detta är att samma läkare inte brukar klaga på att den urinmängd en frisk människa producerar per dygn är ett tecken på att vi dricker för mycket. En människa som försöker göra som en kamel och spara på vatten kommer att få många problem bl.a. i form av njursten.

 

 

Intressanta spekulationer kring Coronaviruset

17/03/2020

Man kan åtminstone för tillfället se en intressant situation gällande Coronavirusets spridning och eventuellt virusets dödlighet.

De riktigt besvärliga områdena verkar för närvarande vara:

  • Wuhan kina
  • Iran
  • Italien

Problematiska_omr_Corona20200316

Fig. 1  Notera hur problemområdena i början av Februari 2020 ligger på temperaturområdet ca. 11 grader 47% relativ fuktighet.

Den intressanta frågan blir då vilken mekanism som gör att viruset är känsligt för temperatur och luftfuktighet? Varför verkar temperaturen 11 grader eventuellt vara kritisk? En intressant fråga uppstå också genast: Ljuger Turkiet om antalet fall i landet?

Vi kan nu kombinera ihop ovanstående bild med intressanta data som dykt upp flera gånger under Coronaepidemin. Det finns indikationer på att Malariamedicinen Kinin d.v.s. den traditionella medicinen mot Malaria förbättrar kroppens cellers upptagning av Zink som allmänt i folkmun uppfattas ha en viss effekt på förkylningar. Zink i cellerna påverkar (stoppar) replikeringen av viruset i cellerna.

Antag nu att de problemetiska områdena ovan är kopplade till en bästa spridningstemperatur men att sydligare, röda, områden som tydligen inte har några större problem med Coronaviruset besparas genom att befolkningen äter malariamedicin eller använder Kinin som krydda i t.ex. drycker.

I SWEBBTV diskuteras bl.a. frågan om varför t.ex. Thailand inte åtminstone ännu verkar vara svårt drabbat trots att landet är tättbefolkat.

Om dessa spekulationer skulle visa sig stämma så skulle det betyda att vi skulle se infektionstoppen krypa norrut med temperaturen under våren så att toppen hos oss antagligen skulle infalla i maj.

Vilka slutsatser kunde man då eventuellt dra som en individ kunde ha nytta av. Jag uppfattar att tillskott av Zink sannolikt är något att tänka på så länge man inte går till våldsamma överdrifter. En högre koncentration av zinkjoner bör leda till ett proportionellt något större upptag av zink i cellerna även om det inte finns kinin i omgivningen vilket fortsättningsvis bör störa virusets replikering.

Det finns en intressant källa för kinin i vår näromgivning. Tonic Water innehåller små mängder kinin (max. 83 mg/liter) … det är nog svårt att komma upp i en riktig malariados genom att dricka Tonic Water men det smakar ju rätt bra!

Det kan vara intressant att Googla på t.ex.  ”Quinine against CoViD-19”. En rätt intressant träff är An effective treatment for #Coronavirus #COVID-19 has been found in a common anti-malarial drug .

 

Fjärrstyrd kamera

15/03/2020

Man hittar idag mängder av intressanta elektroniska moduler som är relativt enkla att kombinera ihop till något man inte hittar färdigt på butikshyllan.

Jag köpte i slutet av senaste sommar en radiostyrd drönare (drone) av typen Dji Phantom 3 Professional. Jag betalade inte speciellt mycket för drönaren eftersom kameran inte fungerade. Det här blev en ny inkörsport till rc-flygandets värld, jag har sysslat med RC-flygande för kanske tjugo år sedan,  och samtidigt ett intressant sätt att lära sig modernare teknik på området. Efter många om och men flyger nu drönaren och kameran fungerar men vissa störningar kan förekomma. Bildkvaliteten är god.

DCIM100MEDIADJI_0008.JPG

Fig. 1   Bilden är tagen med den reparerade drönaren ca. 50 m ovanför gårdsplanen till vårt hus på Sommarö i Esbo skärgård. Man ser Helsingfors i bakgrunden. Den vita röken kommer från ett kraftverk vid Drumsö bro.

Reparationen av drönaren gav inspiration till att eventuellt modifiera ett existerande RC flygplan med fast vinge så att förbränningsmotorn byts mot elmotor och kamera monteras så att flygaren kan beundra utsikten från flygplanet. Jag har ett lämpligt flygplan som bör vara lätt att modifiera. Ett elflygplan ger möjlighet att flyga betydligt friare än tidigare eftersom planet är väldigt tyst i jämförelse med en konventionell förbränningsmotor.

Jag har en hel del RC-servon i miljonlådan och de mekaniska komponenter jag behöver kan jag skriva ut på 3d-skrivare. Jag stötte på en enkel mycket vidvinklig kamera på en kinesisk vebbsida, på samma sida hittade jag en videosändare som sänder inom området 5.8 GHz samt en matchande mottagare som kan kopplas till dator och i princip mobiltelefon. Kameran kommer att av datorn uppfattas som en vebbkamera och det är möjligt att spela in videosignalen om så önskas.  I princip borde samma sak gå att göra på mobiltelefonen men jag har någon typ av kompatibilitetsproblem som gör att telefonen inte åtminstone ännu fungerar som bildskärm.

Det första experimentet med kameran blir en jordbunden fjärrstyrd kamera som jag tänker studera våra rådjur med. Det springer en flock på 5-6 rådjur på området.  Att bygga en radiostyrd kamera betyder att jag inte genast i försöksskedet slår sönder systemet … hoppas jag.

Fjärrstyrd viltkamera

Jag beslöt att använda två RC-servon för att styra kameran i sid- och i höjdled. Ett RC-servo monteras i systemets bas och styr kameran horisontellt. Ett annat servo monteras på en 3d-utskriven L-formad bit. Kameran är via en enkel adapter kopplad till detta servo som alltså vrider kameran i höjdled.

På den L-formade biten limmades två 3d-utskrivna fickor/hållare för videosändaren och ett styrkort för kameran.

Spänningsmatningen till systemet görs via en såkallad UBEC som är en chopper spänningsregulator som förvandlar en inspänning på 5,5 -27V till konstant 5V spänning som kameran, servona och RC-mottagaren behöver. En chopper/hackare har en mycket bättre verkningsgrad än en linjär spänningsregulator. En god verkningsgrad är speciellt viktig i ett RC-flygplan där mycket el behövs för drivmotorn.

Styrningen av kameran kan göras med en normal RC-sändare och matchande mottagare. Jag har åtminstone två sändare liggande som bör fungera.

Tillverkning av de mekaniska komponenterna

De mekaniska komponenterna konstruerades i programmet OpenScad som egentligen är ett programmeringsspråk för 3d-konstruktioner. Precis samma slutresultat fås naturligtvis också genom att använda ett CAD-program (det finns många gratisversioner) som kan generera STL-kod d.v.s. som kan översätta CAD-bilden till STL-kod som förstås av 3d-skrivarens styrprogram.  För mig känns OpenScad bekvämt genom att jag har skrivit programkod i tiotals år. Ett CAD-program som jag använder sporadiskt och således hinner glömma kräver mera jobb än att skriva koden direkt. Det är självklart att det här kan verka konstigt för personer vana vid helt grafiskt konstruerande. OpenScad har ett relativt bekvämt användargränssnitt där jag i grafisk form kan se resultatet av kodskrivandet … skillnaden mot ett rent CAD program är eventuellt inte speciellt stor.

Styrprogrammet, i mitt fall ”RepetierHost”, använder ett ”slicer”-program som skivar konstruktionen i 0,2mm höga skivor som omvandlas till 0,2mm höga och 0,4mm breda plaststrängar som lager för lager bygger upp komponenten jag har skapat. Utskriften av de olika delarna tog 5 minuter till ca. en och en halv timme beroende av komponentens storlek. De större komponenterns skrevs ut med en fyllnadsgrad på 50% vilket betyder att komponenten inuti består till ca. 50% av luft. Delarna som kopplas till servona skrevs ut med en fyllnadsgrad på 100% för att göra dem möjligast styva och starka.

Camera_box_bearing

Fig. 2  Hållare för servot som vrider kameran i horisontell riktning.  Uppe till vänster finns askens lock med plats för ett kullager som gör konstruktionen stadigare.

Camera_ball_bearing

Fig. 3  Locket med plats för kullagret konstrueras med hjälp av två moduler.

Modulen (subrutinen) ballBearingBase() skapar den fyrkantiga bottenplattan med ett 10.5 mm hål i mitten. Detta görs så att en låda (cube) skapas från vilken man tar bort en cylinder med diametern 10.25 mm. Därefter skapas hållaren för kullagret d.v.s. den centrala ringstrukturen genom att lägga en cylinder med diametern 26 mm ovanpå den fyrkantiga plattan varefter man tar bort en cylinder med diametern 22.8 mm vilket leder till att endast ringstrukturen blir kvar.

Modulen ballBearing() använder sig av den tidigare skapade plattan med ringstruktur och hål i mitten och tar bort fyra cylindrar med radien 2 mm d.v.s. borrar fyra st 4 mm hål för fastsättningsskruvar. Skruvarna fästs så att man smälter fast fyra gängade mässingsholkar i lådans hörn.

Camera_L-part

Fig. 4  L-biten i vilken servot som vrider kameran i vertikalriktningen. Den lilla biten till vänster trycks fast i servots axel. Denna lilla bit limmas fast i L-bitens skåra närmast betraktaren. Orsaken till att det lönar sig att skriva ut den lilla biten separat är att det är mycket svårt att utan specialteknik skriva ut ”överhäng”. L-biten låg med servoöppningen mot skrivarens bottenplatta Det enda överhäng som fanns var skåran för limning av den lilla biten … detta klarar skrivaren utmärkt. Den lilla biten skrevs ut som på bilden.

Camera_komplett

Fig. 5  Kameran komplett men utan RC-mottagare för styrning av servona. Jag väntar ännu på några delar.

Servot för styrning i horisontalriktning är den lilla blå komponenten till vänster om kameran. Ett likadant mikroservo används för att vrida hela L-delen horisontellt. Det horisontella vridservot finns inne i den fyrkantiga asken som till storleken motsvarar ungefär två små tändsticksaskar. Under den fyrkantiga lådan kommer det att monteras en ungefär lika stor ask i vilket jag monterar RC-mottagaren och spänningsregulatorn UBEC. Ovanför servot finns det hållare för två olika elektronikmoduler Närmast kameran ser man kamerans kontrollpanel med fem tryckknappar. Bakom kontrollpanelen finns videosändaren som sänder på 5.8 GHz. Man skymtar antennens bas (mässing). Hela antennen är ungefär 60 mm lång varav den aktiva delen utgör ungefär 30 mm. Den aktiva delen utgör sannolikt ungefär en halvvågsantenn. Våglängden vid 5.8 GHz är ungefär 52 mm.

Kamerans dimensioner är ca. 30 mm i riktningen för den optiska axeln i övrigt ungefär kvadratisk 25×25 mm.

De följande stegen

  • Följande steg blir nu att fixa till ett batteripaket, jag har hittills använt ett laboratorienätaggregat.
  • Skriv ut fastsättning som tillåter montering t.ex. mot en trädstam.
  • Testa radiolänkens räckvidd. Jag förväntar mig åtminstone nåra hundra meters räckvidd vilket tillåter mig att ställa den portabla datorn i farstun och sitta inne i värmen medan jag tittar på rådjuren i skogen.

Jag återkommer med en senare artikel med bildmaterial på hur det hela fungerar i praktiken.

 

Ättestupan! Är Coronaviruset politikernas våta dröm?

29/02/2020

Det här är ett väldigt politiskt inkorrekt inlägg som skall uppfattas som ett diskussionsinlägg baserat på mycket grova uppskattningar. Notera att Coronaepidemin inte är något existentiellt hot mot vårt samhälle och att även i allra värsta fall så blir de drabbade relativt få.

Vi har i Norden, jag har främst tittat på Finland och Sverige, sett en intressant inställning hos beslutsfattarna som kan sammanfattas i att risken hos oss är mycket liten och därför behöver vi inte göra något. Transport av människor till/från smittodrabbade områden tillåts fritt.

Vi ser att smittan sprider sig mycket snabbt då den väl fått fotfäste. Ett exempel på detta är kryssningsfartyget Diamond Princess där man på några veckor bland ca. 3600 passagerare har fått ungefär 700 smittade och hittills 4 dödsfall. Smittoprocenten ligger alltså hittills på ca. 20% trots att människor har isolerats i hytterna. Notera att det finns uppskattningar på att andelen smittade globalt kan nå t.o.m. 40%.

Det verkar helt klart att vi står inför en global pandemi som de facto inte längre kan begränsas. De åtgärder som behövs är allt som kan göra smittospridningen långsammare. Orsaken till detta är att sjukvårdssystemet knappast klarar av en mycket stor patienttillströmning speciellt om en del av personalen är sjuk. Om sjukvårdssystemet kapacitet överskrids kommer det att ske en mängd ”onödiga” dödsfall där man någon blir tvungen att prioritera vem som lever och vem som dör.

SWEBBTV hade en intressant nyhetssändning igår där det konstaterades att det i hela Sverige finns en handfull platser för isolering av smittosamma virussjukdomar och att antalet intensivvårdsplatser ligger på något hundratal vilket stämmer bra med vad jag uppskattade på en diskussionstråd för någon dag sedan.  Jag uppskattade att kanske 15-20% av befolkningen kommer att smittas vilket verkar stämma rätt bra med erfarenheterna från fartyget Diamond Princess.

Jag har från olika källor plockat fram mortalitetsdata (dödligheten) för olika människogrupper för 2019-nCoViD. Det är självklart att det fortfarande är fråga om grova uppskattningar men uppskattningarna kan nog sannolikt åtminstone vara riktgivande.

Mortalitet per åldersgrupp Mortalitet i % av insjuknade
Dödsfall 80+ 14,8
Dödsfall 70-79 8
Dödsfall 60-69 3,6
Dödsfall 50-59 1,3
Dödsfall 40-49 0,4
Dödsfall 30-39 0,2
Dödsfall 20-29 0,2
Dödsfall 10-19 0,2
Dödsfall 0-9 0,2

Tabell 1.  Mortalitet per åldersgrupp i % av antalet insjuknade.

Som väntat är dödligheten högst i den äldsta åldersgruppen där allmänkonditionen självklart är sämst. Vi ser också att för åldersgruppen under 40 år så är dödligheten marginellt högre än för en normal vinterförkylning d.v.s. inget speciellt. I de äldre årsklasserna är dödligheten däremot rätt betydande.

Vad kostar Coronaepidemin samhället?

Det här är en fråga som inte får ställas i den politiska renlärighetens namn men en fråga som säkert har analyserats många gånger av någon byrokrat. För att kunna svara på frågan så behöver vi befolkningsstatistik från Norden (jag ser på hela Norden). Befolkningspyramidens form tog jag från Norge. Jag antar att vi ser ungefär samma typ av ålderfördelning (ålderspyramid) i hela Norden.

Gr 80+ 1,02
Gr 70-79 2,05
Gr 60-69 3,41
Gr 50-59 3,42
Gr 40-49 3,42
Gr 30-39 3,42
Gr 20-29 3,42
Gr 10-19 3,42
Gr 0-9 3,42

Tabell 2.  Antalet människor per åldersgrupp.

Tabellen visar antalet människor i miljoner. Befolkningspyramiden är en låda med en pyramid på toppen, vi är intresserade av en grov bild av situationen. Notera att den verkliga åldersfördelningen inte är riktigt så här enkel.

Åldersgrupp_miljoner

Om vi nu antar att ungefär 20% av befolkningen, lika i alla åldersgrupper, blir smittad och att mortaliteten varierar enligt tabell 1 så kan vi räkna fram det sannolika antalet dödsfall per åldersgrupp. Resultatet blir:

Dödsfall totalt per åldersgrupp
”80+” 30349
”70-79” 32810
”60-69” 24607
”50-59” 8886
”40-49” 2734
”30-39” 1367
”20-29” 1367
”10-19” 1367
”0-9” 1367

Tabell 3.  Antalet förväntade dödsfall per ålderkategori om mortalitetsuppskattningen stämmer.

Dödsfall_per_åldersgrupp

Den politiskt icke uttalbara frågan blir då om det samhällsekonomiskt är vettigare att inte göra något än att sätta in kraftiga åtgärder för att förhindra smittospridning?

Antag nu att samhällskostnaden för att hålla personer vid liv är ungefär följande:

Kostnad per dag Faktor Årskostnad Månadskostnad
”80+” 3 39600 3300
”70-79” 1,5 19800 1650
”60-69” 1 9600 800
”50-59” -1 -37200 -3100
”40-49” -1 -37200 -3100
”30-39” -1 -37200 -3100
”20-29” -1 -18000 -1500
”10-19” 1 13200 1100
”0-9” 0 0 0

Tabell 4.  Kostnaden för att hålla en individ vid liv för olika ålderskategorier.

Notera att en negativ kostnad i tabell 4 betyder att personen bidrar till samhällets försörjning d.v.s. personen bidrar till att hålla icke verksamma ålderskategorier vid liv eller utbilda kommande försörjare.  Jag vet inte om kostnaderna är helt realistiska men jag gissar astt storleksordningen bör vara korrekt. Gruppen ”60-69” år har en låg ”vinstfaktor” eftersom man kan anta att åtminstone en del av denna ålderskategori bidrar till försörjning.

Kostnaden för dödsfall till följd av epidemin kan nu uppskattas:

Kostnadsinbesparing_åldersgrupp.png

Ser vi rått på situationen (/sark) så är naturligtvis det vettigaste att låta så många som möjligt snabbt drabbas av sjukdomen. På sjukvårdspersonalens lott faller då att välja ut de relativt unga drabbade som kräver intensivvård medan äldre icke produktiva individer får klara sig som de kan…

Den teknokratiska lösningen som samtidigt är billigast är då att inte göra något och eventuellt att inte förhindra spridningen för att snabbt komma igenom epidemin med möjligast kortvariga störningar i samhällsfunktionerna. Är det den här Fascistiska tankegången man nu tänker implementera?

Inbesparingen uppskattar jag till 2000 miljoner Euro för Norden. På Europeisk nivå ligger vi på en summa som är kanske 10 ggr högre.

Notera att det finns mängder av kostnader och fördelar som inte har beaktats i den här extremt förenklade bilden.

  • I ett land med svår bostadsbrist (Sverige?) så frigörs ett mycket stort antal bostäder. Vi tackar och tar emot! (/sark)
  • Ett redan nu överbelastat sjukvårdssystem får en andningspaus då en stor grupp som kräver en stor arbetsinsats plötsligt försvinner ur systemet. Vi tackar och tar emot! (/sark)

Är det här nu politikernas våta dröm om Ättestupan?

SWEBBTVs nyhetsinslag var igen intressant!

 

C-vitamin versus konventionell intensivvård

24/02/2020

Test av C-vitamin vid akut sepsis indikerar att massiva intravenösa doser C-vitamin kraftigt minskar dödligheten. Två grupper av patienter (47 per grupp) jämfördes på följande sätt.

En grupp patienter behandlades konventionellt under sju månaders tid med intensivvård (detta är kontrollgruppen).  Samma antal patienter behandlades därefter under sju månader med intravenös C-vitamin, hydrocortison och tiamin. Den faktor man studerade var dödligheten i de två grupperna.

I kontrollgruppen där patienterna behandlades med konventionell intensivvård dog 40,4% (19 av 47). I gruppen som behandlades med massiva doser intravenös C-vitamin, hydrocortison och tiamin var dödligheten 8.5%   (4 av 47). I kontrollgruppen minskade blodförgiftningsindikatorn för alla patienter och inget fall av organsvikt uppträdde.

Notera att dödligheten i gruppen som behandlades med C-vitamin, hydrocortison och tiamin var en bråkdel av dödligheten i kontrollgruppen som behandlades konventionellt genom normal intensivvård.

Resultat:

Vårt resultat indikerar att tidig användning av intravenös C-vitamin kombinerat med kortisteroider och tiamin effektivt motverkar progressiv organsvikt inklusive akut njursvikt och reducerar dödligheten hos patienter med svår sepsis och septisk shock. Vidare studier behövs för att verifiera dessa preliminära resultat.

 

Den här historien har en intressant knorr:

Det finns ett antal bloggar på nätet som utger sig för att vara faktagranskare. Ett exempel är factcheck.org som varnar för att C-vitamin inte har någon effekt på t.ex. Coronaviruset. Det jag främst slogs av då jag tittade på vilka skribenterna på factcheck.org är var att alla är journalister medan den naturvetenskapliga basen helt verkar lysa med sin frånvaro. Skall man tolka detta som att dessa journalister som gör faktagranskningen inte förstår vad de skriver om eller är det fråga om en trollfabrik i läkemedelsindustrins tjänst vars uppgift är att säkerställa att billiga ämnen såsom C-vitamin inte tränger ut vinstgivande läkemedel. C-vitamin kostar i doser om ca. ett kg ungefär 20 Euro (200 SEK).

Observera att man via munnen inte kan uppnå lika höga C-vitaminnivåer i blodet som man kan göra intravenöst. Däremot kan man uppnå förvånande höga doser också oralt (via munnen) genom att ta. t.ex. 1 – 2g C-vitamin per timme dygnet runt. Om man får diarré halveras dosen. Då man tar C-vitamin genom munnen är det viktigt att sprida ut dosen över dygnet eftersom C-vitamin rätt snabbt utsöndras bl.a. via urinen. Många mindre doser höjer nivån i blodet mycket bättre än  en ensam stor dos.

Jag har tidigare skrivit om Kinesisk användning av maxidoser C-vitamin vid kritiska fall av 2019-nCoV . Notera att en orsak till detta naturligtvis är att ett eventuellt vaccin sannolikt ligger kanske ett år i framtiden varför alla tänkbara verktyg används.
Användning av maxidoser C-vitamin har en relativt lång historia. Man kan t.ex. googla på Klenner för att hitta resultat från 1950-60-talet. Några intressanta sökresultat resultat (på engelska):

Om Dr Klenner (en av banbrytarna bakom maxidoser C-vitamin).

En intressant diskussion om bl.a. C-vitamindos med Dr. Andrew D. Saul.

 


Pointman's

A lagrange point in life

THE HOCKEY SCHTICK

Lars Silén: Reflex och Spegling

NoTricksZone

Lars Silén: Reflex och Spegling

Big Picture News, Informed Analysis

This blog is written by Canadian journalist Donna Laframboise. Posts appear Monday & Wednesday.

JoNova

Lars Silén: Reflex och Spegling

Climate Audit

by Steve McIntyre

Musings from the Chiefio

Techno bits and mind pleasers

Bishop Hill

Lars Silén: Reflex och Spegling

Watts Up With That?

The world's most viewed site on global warming and climate change

TED Blog

The TED Blog shares interesting news about TED, TED Talks video, the TED Prize and more.

Larsil2009's Blog

Lars Silén: Reflex och Spegling

%d bloggare gillar detta: