Archive for the ‘Musik’ Category

Miniprojekt: Metronom i klockan

02/09/2020

Jag har köpt en del småsaker, främst elektronik, från Banggood som är ett kinesiskt företag. Hittills har beställningarna kommit ungefär enligt beräknad tid men COVID-19 ställer till med problem. Tidigare beställningar

 
  • Visningar
  • Besökare

leder till att Banggood via facebook synbarligen aktiverar reklam aktuell för mig.

Jag råkade stöta på reklam för en ny aktivitetsklocka Lilygo T-Watch-2020. Klockan är baserad på en ESP32 mikroprocessor med två kärnor. Klockan innehåller WiFi funktionalitet med bl.a. en webbserver och också Bluetooth funktionalitet. Det speciella med den här klockan är att den från början är avsedd att hackas d.v.s. källkoden finns på github och den programmeras direkt över USB-anslutningen.

Då man får en ny programmeringsleksak så uppstår naturligtvis genast problemet med vad man skall göra med apparaten.  Färdiga funktioner är bl. a.

  • Väderapp
  • Stoppklocka
  • Kryptovaluta
  • Navigering via kart-API

Då jag sysslar med folkmusik som hobby så slog det mig att det kunde vara praktiskt att ha en enkel metronom i klockan som innan jag börjar spela ett stycke slår t.ex. tio slag med hjälp av klockans vibrationsmotor. Tanken är alltså inte att jag skulle spela hela stycken med klockan som metronom utan klockan skulle endast upplysa mig om ungefär vilket tempot är, att mentalt tänka sig ett tempo kan ibland leda fel rejält eftersom hjärnan inte i alla sammanhang går i realtid …

Operativsystem

Klockan kör ett kompakt realtidsoperativsystem FreeRTOS som stöder multitasking d.v.s. jag kan köra flera applikationer parallellt. Det är också i princip möjligt att ladda in nya program medan klockan är i gång eller stänga av obehövliga program. Den senare funktionaliteten används inte utan gör jag förändringar så kompilerar jag om rubbet och laddar upp allt som ett paket till klockan.

Man hittar FreeRTOS dokumentation på nätet.

Metronom

Jag plockade hem en klockversion från Github. Då jag ögnade igenom applikationerna som fanns färdigt så såg jag att det fanns en exempel app som inte gjorde någonting men som visade vilken struktur en app har.

Jag beslöt att försöka göra en extremt enkel applikation där användaren använder sig av en slider d.v.s. en funktion där man drar en indikator i sidled för att ställa in tempot. Jag tänkte mig att tempot kan ställas mellan 50 och 200 slag per minut. Det finns inga tekniska problem med att använda lägre tempon men jag uppfattar 50 slg/minut som väldigt långsamt. Då klockan startar är det förinställda värdet 100 slag/minut och klockan kommer ihåg det senast valda värdet mellan olika körningar av appen.

I princip borde applikationen ha varit väldigt enkel att realisera men det visade sig att indikatorhuvudet som samtidigt användes för att visa valt tempo var alltför litet d.v.s. det var svårt att se det valda tempot. Jag försökte kringgå problemet genom att lägga till ett separat textfält som skulle innehålla det valda värdet. Det nya textfältet förorsakade en omedelbar crasch.

Efter att jag två dagar hade slagit huvudet i väggen beslöt jag att byta ut slidern mot en spinbox där man i mitten har ett textfält och på vardera sidan tryckknappar som sänker/höjer det valda värdet. Det var tydligen något problem med slidern för nu fungerade val av tempo som det skulle.

Jag modifierade setupdelen i exempelapplikationen så att man väljer tempot med spinboxen och då man går ur tempofunktionen så gör klockan tio slag i det valda tempot varefter det sker retur till appens huvudnivå.

Call back funktioner

static void exit_example_app_setup_event_cb( lv_obj_t * obj, lv_event_t event );
static void example_app_metr_spinbox_event_cb(lv_obj_t * obj, lv_event_t event );
static void lv_spinbox_increment_event_cb(lv_obj_t * obj, lv_event_t event );
static void lv_spinbox_decrement_event_cb(lv_obj_t * obj, lv_event_t event );

Då användaren trycker på olika funktioner måste användargränssnittet kunna ”skicka signaler” till användarens kod så att den kan köras. För detta ändamål behöver vi såkallade callback funktioner. Om jag t.ex. trycker på knappen ”-” så stegas det valda tempot ner med ett steg (systemet anropar lv_spinbox_decrement_event_cb). Trycker jag på ”+” så stegas värdet upp med ett steg( lv_spinbox_increment_event_cb anropas).

Då jag trycker på återgång till appens huvudnivå så anropas exit_example_app_setup_event_cb. Denna funktion anropar funktionen execute_taps() som vibrerar telefonen tio gånger i önskat tempo.

// Let the metronome do ten taps
static void execute_taps(int taps, int tempo){
  int i;
  int taplen=0;
  int fixed = 100;
  float ms=60000;
  taplen = ms/tempo; 
  // Buzzer pin output BUZZER=4
  for(i=0; i< taps; i++){ 
    pinMode(BUZZER,OUTPUT);
    digitalWrite(BUZZER,ON);
    delay(fixed);
    digitalWrite(BUZZER,OFF);
    delay(taplen-fixed);
  }
}

Spinnboxen

Då klockan programmeras så har man tillgång till ett enkelt grafiskt användargränssnitt lvgl vilket i ytterst hög grad förenklar programmeringen. Problemet är dock att det finns rätt många olika grafiska gränssnitt och det kräver alltid en del läsande att börja använda ett nytt gränssnitt … så även denna gång.

Koden för att sätta upp en spinbox är:

// Create a spinbox center box with value
lv_obj_t *example_app_metr_spinbox_cont = lv_obj_create(example_app_setup_tile,NULL);
lv_obj_set_pos(example_app_metr_spinbox_cont,90,100);
example_app_metr_spinbox = lv_spinbox_create(example_app_metr_spinbox_cont, NULL ); 
lv_spinbox_set_range(example_app_metr_spinbox,50,200);
lv_spinbox_set_digit_format(example_app_metr_spinbox,3,0);
lv_spinbox_set_value(example_app_metr_spinbox,100);
lv_obj_set_event_cb(example_app_metr_spinbox,example_app_metr_spinbox_event_cb);
// Create increment button
lv_coord_t h = lv_obj_get_height(example_app_metr_spinbox);
lv_obj_t * btn = lv_btn_create(example_app_setup_tile, NULL);
lv_obj_set_size(btn, h, h);
lv_theme_apply(btn, LV_THEME_SPINBOX_BTN);
lv_obj_set_style_local_value_str(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_SYMBOL_PLUS);
lv_obj_align(btn, example_app_metr_spinbox, LV_ALIGN_OUT_RIGHT_MID, -20, 0);
lv_theme_apply(btn, LV_THEME_SPINBOX_BTN);
lv_obj_set_style_local_value_str(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_SYMBOL_PLUS);
lv_obj_set_event_cb(btn, lv_spinbox_increment_event_cb);
// Create decrement button
btn = lv_btn_create(example_app_setup_tile, btn);
lv_obj_align(btn, example_app_metr_spinbox, LV_ALIGN_OUT_LEFT_MID, -30, 0);
lv_obj_set_event_cb(btn, lv_spinbox_decrement_event_cb);
lv_obj_set_style_local_value_str(btn, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_SYMBOL_MINUS);

Klockans skärm har upplösningen 240×240 pixlar. Först skapas ett kontext för spinboxen i filen example_app_setup.cpp utgående från specifikationer i appens huvudfönster. Därefter placeras spinnboxen på önskat ställe och programmet ställer in hurudant värdeområde (50-200 slag/minut) som är tillåtna. Programmet ställer också in vilket standardvärde (100 slag/minut) jag vill ha. Därefter skapar jag två tangenter/knappar som stegar spinboxens varde uppåt respektive nedåt.

Grafiska änvändargränssnitt fungerar så att skapade vidgetar själv detekterar om det händer något. I ovanstående fall så kommer tangenterna upp/ner att skicka en ”signal” som säger att en knapptryckning har detekterats. För att programmet skall kunna reagera på knapptryckningen så måste vi definiera såkallade callback funktioner d.v.s. funktioner som användargränssnittet anropar då aktivitet detekteras. I vårt fall är funktionen enkel:

static void lv_spinbox_increment_event_cb(lv_obj_t * obj, lv_event_t event ){
  if(event == LV_EVENT_SHORT_CLICKED || event == LV_EVENT_LONG_PRESSED_REPEAT) {
    lv_spinbox_increment(example_app_metr_spinbox);
  }
}

static void lv_spinbox_decrement_event_cb(lv_obj_t * obj, lv_event_t event ){
  if(event == LV_EVENT_SHORT_CLICKED || event == LV_EVENT_LONG_PRESSED_REPEAT) {
    lv_spinbox_decrement(example_app_metr_spinbox);
  }
}

När spinnboxens kontrollknappar detekterar aktivitet så anropas ifrågavarande funktioner ovan som i sin tur stegar upp spinboxens värde eller stegar ner det.

Aktivera metronomen

Jag valde att aktivera metronomen då man går ut ur inställningen av tempo tillbaka till appens huvudsida. Alternativet skulle ha varit att definiera en separat knapp för att aktivera metronomen. Jag har valt att begränsa antalet slag till tio helt enkelt för att jag uppfattar att jag då har hunnit uppfatta tempot tillräckligt bra.

static void exit_example_app_setup_event_cb( lv_obj_t * obj, lv_event_t event ) {
  switch( event ) {
    case( LV_EVENT_CLICKED ): 
      delay(2000);
      execute_taps(10,lv_spinbox_get_value(example_app_metr_spinbox));
      mainbar_jump_to_tilenumber( example_app_get_app_main_tile_num(), LV_ANIM_ON );
      break;
  }
}

Koden för execute_taps() finns litad tidigare i texten.

Att använda appen

IMGP7532

Fig. 1  Metronomappen syns till höger om väderappen nedanför tiden 20:57.

IMGP7533

Fig. 2  Applikationen metronom (Metr) huvudsida efter att man har valt applikationen genom att trycka på Metr i föregående bild. Kugghjulet leder till val av tempo. I framtiden lägger jag antagligen till t.ex. fyra knappar med fördefinierade tempon på denna sida.

IMGP7534

Fig. 3  Inställning av tempot med en spinbox. Det valda tempot stannar i minnet. Då man väljer retur (trycker på symbolen överst till vänster) så vibrerar telefonen tio gånger i det angivna tempot.

 

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).

Att hacka gammal elektronik

02/02/2020

Min goda vän Anders kom över en portabel, batteridriven, ljudanläggning som ursprungligen har planerats för en Apple mobiltelefon eller iPod … eller båda. Telefonen kunde ställas och stå i ett fack överst på spelaren och lådan kunde då spela upp musik som fanns lagrad på telefonen.

Förstärkarlådan hade några små problem:

  • Den var stendöd . Gissningen var att batteriet/ackumulatorn var död varför anläggningen som sådan inte visade några livstecken.
  • Musikanslutningen via iPhone/iPod var oanvändbar eftersom det inte längre finns telefoner med en mångpolig anslutning … alla använder idag USB i någon form eller ännu enklare trådlös överföring via WiFi eller Bluetooth.

Anders bytte batteriet/ackumulatorn som är ett litet ”motorcykelbatteri”. Ett nytt problem dök upp. Det såg ut som om batteriet inte laddades trots att lådan var kopplad till nätström. Orsaken var att lådans huvudsäkring hade brunnit. Efter byte av säkring verkade lådan fungera.

Förstärkaren har ingångar för mikrofon eller Line In d.v.s. den är nog användbar men inte helt bekvämt. Kunde man månne modernisera lådan så att den inte skulle behöva någon USB-anslutning utan vilken som helst modern telefon/platta med Bluetooth skulle kunna användas som musikkälla?

IMG-20200202-WA0003

Fig.  Den modifierade portabla spelaren ser ut så här. Där det svarta locket nu finns fanns tidigare en dockningsstation för iPhone/iPod. Under locket finns en Bluetooth adapter som är kopplad till baksidan av de vit/röda BNC kontakterna.

Jag hittade en lovande Bluetooth modul som jag beställde från kina. Som vanligt beställde jag två eftersom det alltid finns risk att man får ett defekt exemplar. Delarna är relativt billiga vilket gör att förlusten inte är så stor om ett exemplar flyttas till miljonlådan.

IMG-20200202-WA0007

Fig.  Frontpanelen kan skruvas loss vilket gör att det är relativt enkelt att komma åt baksidan. Här löder jag signalkablarna från bluetooth modulen till Line In ingången. Lödningarna görs på baksidan vilket blir snyggt.

Till vänster på spelaren syns den gamla dockningsstationen. Vi tar 5V från en USB-kontakt som tydligen har använts för laddning. Vi slipper på detta sätt att söka efter 5V inne i apparaten … eller att montera en egen spänningskälla för Bluetooth. iPhone kontakten plockades bort men den vita kontrollpanelen lämnades kvar under ett nytt 3D-utskrivet lock … som råkade bli svart eftersom mitt vita filament råkade vara nästan slut. Bluetooth modulen är det lilla röda kretskortet vid min högra hand.

IMG-20200202-WA0004

Fig.  Det finns en egen på/av strömbrytare som ursprungligen användes för att ladda en iPod. Vi använder denna strömbrytare för att slå på eller stänga av Bluetooth. Med Bluetooth avstängd torde Line In att gå att använda som förut utan problem.

Det slutliga testet

Då modifikationen var gjord och den gamla dockningsstationen hade mätts så att jag skulle kunna designa ett nytt lock så var det tid att testköra.

Vi kopplade på Bluetooth från strömbrytaren bak på förstärkaren och kunde inte se någon rök, röktestet var alltså ok. Elektronik har den intressanta egenskapen att den tydligen är beroende av rök för att fungera … släpper man ut röken så fungerar det inte längre!

Jag kopplade på Bluetooth i min telefon och hittade efter en kort stund en ny Bluetooth enhet med id koden JZ-B5W2 som telefonen trodde var Bluetooth hörlurar. Så långt helt OK!

Jag valde nu slumpmässigt ett teststycke från youtube och satte igång uppspelningen av videon.

Video:  Telefonen kopplar utan problem till bluetooth modulen och därifrån vidare till spelaren och ljudstyrkan är mer än tillräcklig och ljudkvaliteten OK d.v.s. den förväntade för denna typ av musikspelare.

Slutkommentar

Det var intressant att se hur enkelt det var att modifiera och modernisera en gammal musikspelare. Med Bluetooth anslutning så blev spelaren plötsligt helt användbar och kommer antagligen att tjäna i ytterligare att antal år.

Jag planerar att göra samma modifikation i min 2x30W ”klassiska” Radio-förstärkare. Jag räknar med att också i den kunna koppla Bluetooth till t.ex. Line In eller till bandspelaringången. Strömförsörjningen fixar jag antagligen via ett separat litet strömaggregat för nätström som jag räknar med att finna plats för på insidan. Genom att använda nätström direkt via eget nätaggregat så slipper jag att söka efter en lämplig spänning på ett obekant kretskort.

Om någon läsare råkar ha en klassisk Hi-Fi förstärkare som nu samlar damm till följd av att man så sällan spelar vinyl eller CD så går det att ta kontakt och diskutera en modifikation som kan ge trotjänaren, som ofta ljudmässigt är mycket högklassig, nytt liv!

Tack till Anders för bilder och video!

 

Att stämma f-hålen på en fiol

27/10/2019

F-hålen på en fiol bidrar, då de är rått justerade, till att ge fiolen en oboeliknande klang. Jag var länge omedveten om denna typ av ton. Min son, yrkesviolinist, använde ett lånat högklassigt instrument ägt av någon av de finlandssvenska stiftelserna. Då jag provspelade instrumentet hörde jag tydligt strängens grundton som den låter på alla instrument men ovan på denna fanns en varm oboeliknande ton som ger en mycket trevlig karaktär åt tonen.

Bekantskapen med toppinstrumentet gav mig orsak till att börja söka efter den saknade tonfärgen. Rätt mycket experimenterande ledde mig fram till att tonen genererades av de svängande ”vingarna” vid f-hålen. Vingarna drivs av de stora svängande områdena som man hittar då man går från vingspetsen längs fiberriktningen (se bild). Förutsättningen för att vingarna skall fungera korrekt är att de är mekaniskt impedansanpassade till de svängande områden som driver dem. Min uppfattning är att det är möjligt att knacka sig till när f-hålsvingarna är korrekt injusterade, mera om detta nedan.

Fhålsvinge.png

Justeringsprocessen är:

  • Justera botten och lock så att tonen blir jämn och klar men lämna vingarna helt i fred. Vi vill att knacktonen då vi knackar från vingspetsen mot det drivande området skall vara högre än i det drivande området.
  • Om det drivande området klingar högre än tungan måste det slipas tills knacktonen är lägre än i tunga, Detta betyder sannolikt rätt mycket arbete med att få locket i balans på nytt d.v.s. alla kvadranter måste slipas på nytt.
  • Slipa mycket försiktigt, 5-10 drag max, en vinge som klingar högre än det drivande området. Effekten hörs mycket kraftigt men den tenderar att delvis backa tillbaka inom minuter till timmar. Det lönar sig att göra små justeringar över flera dagar och att lyssna noga. Var extremt noggrann med att inte slipa för mycket eftersom detta betyder att hela locket måste bearbetas före att vingens stämning skall vara möjlig.

Knackning för att mäta impedansanpassningen

Knacka försiktigt stegvis från spetsen av vingen mot det stora svängande området och lyssna på tonhöjden. För en korrekt justerad vinge vill vi ha ungefär samma knackningstonhöjd i vingen som i det svängande området, vi har då mekaniskt impedansanpassat de två svängande områdena. Vi justerar vingarna sist eftersom en justering kräver att vingens knackton före justering måste vara högre än drivområdets knackton. Vi knackar i många steg mellan områdena eftersom detta gör det lättare att uppfatta skillnader i tonhöjd.

Notera att då vi slipar vingen från baksidan med magnet så är effekten dramatisk. Börja med maximalt t.ex. 5 slipdrag med magneten och lyssna på resultatet. Om du slipar för mycket så lönar det sig att vänta några dagar innan man ger sig på de stora områdena för att kompensera. En slipad yta ger genast en rätt stor effekt strax efter slipningen, en effekt som klingar av delvis inder minuter, timmar och dagar. Om du har klantat så vänta några dagar eller veckor innan du jobbar vidare … det kan hända att problemet löser sig själv.

Vilken är skillnaden?

Vilken är skillnaden mellan en stämd vinge och en ostämd vinge? Jag gjorde ett enkelt test där jag stämde D-strängens vinge på min ”Klezmerfiol” som är en billig kines jag har jobbat kanske två år med att akustiskt stämma.

Jag spelade in tonen E på d-strängen eftersom jag uppfattar att denna ton på det här instrumentet har en kraftig pålagd ”oboeton”.  Jag spelade in ett antal stråkdrag med endast tonen E på programmet Audacity. Därefter lät jag programmet rita ut spektret för denna ton.

Fhål_D__raw.png

Vi ser att vi i den stämda tungan har ett mycket jämnt och kraftigt övertonsspektrum.

Följande skede var att lägga till massa i tungan så att den igen blir ostämd. Jag gjorde detta genom att limma maskeringstejp på tungan men inte över själva f-hålet. Resultatet är vara att massan ökar vilket gör tungan ostämd. Spektret mäts igen på samma sätt som tidigare.

Fhål_D_tejpat.png

Vi ser att övertonerna från fiolen kraftigt försvagades och tonen försämrades. Observera att de två första övertonstopparna dämpades med 9-10 dB vilket betyder att den absoluta ljudstyrkan minskar till en tiondel! Människans öras känslighet är dock logaritmisk vilket gör skillnaden mindre dramatisk men skillnaden är stor.

Notera!

Ovanstående spektra är inte helt representativa! En korrekt bild fås naturligtvis endast om jag spelar in den ostämda tungan innan den justeras varefter jag gör samma sak efter att tungan justerats. Problemet är att jag tänkte på att göra mätningen först då tungan justerats. En tunga till vilken ja lägger massa uppför sig naturligtvis inte exakt som den ursprungliga vingen som hade både mera massa men också mera styvhet.

Notera!

Det är skäl att gå mycket försiktigt fram. Justera i mycket små steg och låt instrumentet vila mellan justeringar och spela på instrumentet. Då du uppfattar att tonen är vad du vill ha är det skäl att sluta justera. Det är mycket lätt att bli alltför girig så att man förstör ett instrument genom att justera alltför långt varefter det inte längre går att backa!

Notera!

Jag uppfattar att det bästa sättet att lära sig att justera fioler är att utgå från t.ex. billiga kinesiska fioler i prisklassen 100 – 200 dollar på Ebay. Instrumenten är tekniskt väl byggda men ljudet på det ojusterade instrumentet är inget vidare eftersom fabriken sannolikt väljer ut väljudande instrument som säljs till högre pris.

 

Nyckelharpa i barnstorlek justering

03/06/2019

Jag har byggt en barnharpa med mensuren 340 mm i huvudsak efter Sören Åhkers ritningar. Sören är en trevlig person som det är lätt att kommunicera med och samtidigt en av de nyckelhapsbyggare som regelbundet har fått mycket gott betyg för sina harpor. Avsikten med bygget är att undersöka om det är lättare eller svårare för en fiolspelman att spela på en mindre harpa där mensuren ligger betydligt närmare fiolens. Personligen har jag störts av att spela på en fullstorleksharpa då det gäller att spela i det högre registret d.v.s. det register där man på en fiol skulle spela på E-strängen. Klaviaturens storlek på en stor harpa leder till stora handrörelser motsvarande lägesspel på en stor altfiol.

IMGP5971.JPG

Bilden visar den nya barnharpan i relation till min fullstora harpa. Klaviaturen är ca. 50 mm kortare än klaviaturen på den stora harpan. En fullvuxen hand bör då ha betydligt bättre räckvidd på den lilla harpan är på en harpa av full storlek.

Följande skede i byggprocessen blir nu att i små steg börja justera in harpan. Min uppfattning om instrument är att ett bra instrument är ett instrument där man har lyckats eliminera så många fel som möjligt.  Jag hoppas kunna dokumentera felsökningsprocessen med ljud och bild i ett antal kommande artiklar.

Vilka fel har jag noterat i detta skede

Mina finstämmare för Cello (3/4 – 4/4 storlek) är för små. Detta gör att rörelsen i finstämmaren blir mycket liten innan strängens ändkula rör i stränghållaren. Min tanke är att jag byter till större finstämmare (storlek 4/4 cello) då de levereras efter någon vecka. Alternativet är att korta av stränghållaren en aning. Byte av finstämmare uppfattar jag vara enklare och mera rationellt i detta skede då stränghållaren redan är ytbehandlad. Det var naturligtvis en miss från min sida att inte i tid upptäcka att 3/4-cello finstämmarna egentligen är för små. Jag kan leva med detta problem en kort tid.

A-strängen fungerar i princip rätt bra men tonen är inte så brilliant som jag skulle vilja ha den. Detta justeras i ett senare skede.

D-strängen (jag stämmer C-G-D-A räknat från basen inte CGCA vilket är traditionellt) marginellt användbar men den tänder dåligt. Justeringen av G-strängen kommer också att påverka D-strängen positivt. Orsaken till att jag stämmer CGDA är att fingersättningen då är lika som på fiol vilket gör det lättare att spela både nyckelharpa och fiol.

G-strängen tänder mycket dåligt. Mycket ”murrig” och ”sträv” i tonen.

Det första steget blir att justera ljudpinnens plats för att hitta möjligast god ton utan andra justeringar. Det här steget är viktigt eftersom man vet att ljudet kan förändras kraftigt till följd av väldigt små ljudpinneförflyttningar. Jag vill inte göra oåterkalleliga justeringar på instrumentet innan ljudpinnejustering har gjorts eftersom senare förflyttningar av ljudpinnen annars kan leda till behov av ytterligare helt onödigt slipande.

Jag kommer att börja med att försöka få G-strängen att fungera korrekt och senare justera D- och A-strängarna. Det är möjligt att A-strängen fixar sig själv då man får G- och D-strängarna att fungera.

Det första steget i justeringen av G-strängen blir (om det behövs … vilket är sannolikt) att kontrollera och efterjustera kanalen mellan halsen och basbjälkens övre ända. På en fiol blir tonen väldigt torr och sträv om motsvarande område är för tjockt/styvt. Den här barnharpans nyckellåda har konstruerats så att det finns plats att slipa den kritiska övre basbjälkekanalen. Utrymmet mellan lock och nyckellåda i min fullstora harpa är för litet för att tillåta efterjustering genom inre slipning. Bara den lilla harpan fås spelbar så kan jag plocka isär den stora harpan och modifiera den så att den effektivt kan efterjusteras.

Om erfarenheterna från fioler går att applicera så kan det också vara värt att tunna ut området strax ovanför bassidans f-hål. Dessa förändringar bör tydligt förbättra G-strängens respons.

Om D-strängen efter justeringen av G-strängen blir för svag (relativt sett) så brukar man kunna förstärka tonen genom att slipa området några centimeter ner från bassidans  f-hål.

Också stallet kan justeras men min erfarenhet är att inre graduering ger betydligt starkare effekt än stallsjustering. Om andan faller på justerar jag eventuellt också stallet då harpan i övrigt börjar vara OK.

Fioljustering, kinesisk Guarnierikopia

29/03/2019

Då man justerar en fiol så att den skall bli spelbar är det viktigt att kontrollera ljudpinnens plats. Ljudpinnen har inte utan skäl kallats fiolens själ eftersom extremt små förflyttningar av ljudpinnen kan ge stora förändringar i instrumentets klang.

Jag deltog i Folklandiakryssningen 2018 till Tallin/Reval som representant för finlands fiolbyggare (Suomen viulunrakentajat r.y.). Själv demonstrerade jag inre justering av en kinesisk kopia på en Guarneri ”Cannon”.

Jag ropade in ”offret” på eBay för $111 + $56 för transport och jag fick ett i princip välbyggt instrument men med extremt nasal klang. Den enda modifikation jag gjorde före resan var att jag bytte de kinesiska metallsträngarna till billiga syntetsträngar av typen Pirastro  Tonica. Pirastrosträngarna är inga stora  höjdare men de fungerar och de är billiga vilket är viktig om man justerar många instrument och kör med principen att strängarna på okända instrument byts innan man börjar justera. Tanken är att jag vill höra instrumentets fel och inte strängarnas.

IMGP0483 Fig. 1  Kinesisk violin inköpt för demonstration av inre slipning av en spelbar fiol. Notera hur man har fått fiolen att se gammal ut genom att ge sig på den med t.ex. cykelkätting varefter man gnider in dem med smuts. Det ser rätt övertygande ut men man borde antagligen ha gett sig på f-hålen också 😉 . Personligen tycker jag att ett nytt instrument direkt från ugnen nog kan få se nytt ut … tids nog kommer skadorna.

Steg #1

Mätning av instrumentets respons helt generellt. Jag brukar spela en havtonsskala från G-strängen uppåt till ungefär H på E-strängen och därefter köra bl.a. ett spektrum samt eventuellt en mätning av Dünnvaldparametrarna. Mätning visade att basresponsen var mycket dålig vilket man kunde höra direkt så att G och D-strängarna lät ”sträva och torra”. Strävheten och torrheten är en följd av att G-strängens grundtoner nästan inte existerar. Örat hör alltså övertonerna men inte den grundton jag tror mig höra eftersom den inte existerar och min hjärna genererar själv, inne i huvudet, den grundton som borde finnas för att övertonsserien skall bli rätt. Korrektionen är aldrig fullständig resultatet är att vi uppfattar tonen som torr.

Jag brukar alltid starta med att justera basen, så även i detta fall. Basen är svag för att locket  är alltför tjockt på kritiska punkter. Den mest kritiska punkten är kanalen mellan halsklossen och ändan av basbjälken. Kanalen lämnas oftast alltför tjock i billiga fioler och resultatet blir en tunn sträv och torr bas. Situationen brukar gå att åtgärda med några tiotal slipdrag, man bör vara försiktig med slipande här för att inte göra basen alltför mörk. På den här fiolen blev jag tvungen att slipa baskanalen många hundra drag vilket betyder att tjockleken minskade med några hundradels millimeter och det betyder samtidigt att det slipade området var extremt tjockt vilket förklarar varför tonen var torr och sträv.

Följande skede är att kontrollera att bottenplattan klingar. Vi kan akustiskt lyssna oss till  var justeringar behöver göras. Då bottenplattan klingar som den skall är knacktonen relativt jämn över hela bottenplattan. Bottenplattan skall klinga som ett välstämt trumskinn.  I föreliggande fall var knacktonen betydligt högre mitt på bottenplattan än vid ändarna BH och LB. Notera att det ofta är lättare att höra om ett område är högt eller lågt genom att stegvis knacka sig från ett område till ett annat. Det är lättare att höra en förändring i en knackton än tonens absoluta tonhöjd. Orsaken till detta är att en knackton i huvudsak är brus …

baksida.JPG

Slipning uppe tvärs över bottenplattan BH strax nedanom halsklossen höjde knacktonen (i princip samma fel som i locket), i detta fall kan inte plattan svänga korrekt i längdled.  Det gäller att justera i små steg och provspela mellan justeringarna. Om man slipar för mycket på detta område kommer man så småningom att skapa en vargton vid Bb … B något man vill undvika. Samma justering, det krävdes mycket slipande, gjordes tvärs över plattan vid bottenklossen. Små finjusteringar gjordes vid kanterna men det gäller att vara försiktig eftersom justeringarna som behövs normalt är små. Det går inte att backa om man slipar för mycket.

Då bottenplattan klingar går vi tillbaka till locket. Fiolen provspelas och jag lyssnar noggrannt på klangen i strängarna (G,D,A och E) och också på den relativa ljudstyrkan i de olika strängarna. Om t.ex. D-strängen är svagare och ”tråkigare” än de övriga strängarna kan detta korrigeras genom att slipa området för maximal svängning i locket då D-strängen spelas. Detta område ligger strax nedanför bassidans f-hål.

IMGP0483_GDAE_omr

Strängarnas områden för maximal vibration. D-området klingade klart lägre än de övriga områdena. Slipning av D-området förstärkte D-strängen och höjde D-områdets knackton. Motsvarande justeringar gjordes därefter stegvis på de övriga områdena. Målet var att få tonen jämn på alla strängar och dessutom hitta en trevlig klang med lämplig karaktär.

Om klangen blir för ”snäll/rund/menlös” främst på G- och D-strängarna så kan detta åtgärdas genom försiktig slipning av en triangel med basen upp mot A-området. Triangelns spets ligger vid kanalen mellan basbjälkens nedre ända och den nedre ändklossen d.v.s. området motsvarar området uppe mellan halskloss och basbjälke. Alltför mycket slipande här gör klangen frän och rå, spela och lyssna!

Att lägga till brillians och övertoner

Då locket och bottenplattan fungerar som de skall och tonen i övrigt är jämn över alla strängar så gäller det att få instrumentets diskant att fungera korrekt. Diskanten genereras i huvudsak via små svängande områden kring båda f-hålen.

Om jag vill justera klangen i G-strängen så att den får mera luft, brillians och karaktär men behåller sin mustighet så gör jag detta genom att koppla G-strängens maximat svängande område till f-hålets kant. Då man betraktar situationen ser man att det går obrutna träfibrer från G-området mot f-hålets ytterkant.  Kontakten till f-hålets inre kant är blockerad av f-hålets övre böj. Jag knackar från det maximalt svängande området i små steg ner mot f-hålets yttre ”vinge”. För maximal energiöverföring vill jag mekaniskt impedansanpassa hela passagen från g-området ut till vingen. Om något område på vägen mot vingen ger en låg knackton i förhållande till andra delar av vägen G-område … vinge så slipar jag extremt försiktigt det låga området.

Eftersom den svängande vingen är väldigt liten så reagerar den mycket kraftigt då vi ”stämmer den” jämför med stämning av tungan i ett dragspel där en försiktig skrapning är direkt hörbar. Utgångspunkten är max tio slipdrag varefter man lyssnar innan man eventuellt går vidare.

Justering av D-strängen görs på motsvarande sätt så att man kopplar D-området till den inre kanten av f-hålet. Systemet är detsamma här knacka stegvis från D-området upp mot den inre vingen. Slipa mycket lätt de områden på vägen som har alltför låg knackton.

A- och E-strängarnas f-hålsvingar justeras på motsvarande sätt. Effekten är tydligt hörbar då vingarna börjar fungera korrekt.

Vad gör jag om f-hålsvingen (någon av vingarna) klingar alltför högt (för hög knackton)? Lösningen är då att höja knacktonen stegvis i motsvarande maximat svängande område t.ex. A-området så att detta område stiger till samma ton som vingens knackton. Höjer jag t.ex. A-området så kommer detta att återverka på G-, D-, E-områdena som också måste justeras på nytt. Resultatet är mycket svett och arbete … detta är orsaken till att jag inte rör f-hålens vingar innan jag i övrigt är nöjd med fiolens klang.

IMGP0483_f_trim.JPG

Bilden visar hur man kan knacka längs vägen från G-området mot den yttre vingen och på motsvarande sätt från D-området till den inre vingen för att höra ojämnheter i knacktonen. Det är lättare att uppfatta förändringar i knackton än absolut pitch.

Simo Vuoristo som testar fiolen nedan konstaterar att fiolen har fått betydligt mera klarhet/brillians jämfört med föregående testspelning. Skillnaden ligger i stämningen av f-hålen och sannolikt en vattenglasbehandling av G- och D-områdena i locket på insidan. Vattenglasbehandlingen gjordes med hjälp av en tygbit limmad på en supermagnet. På tygbiten appliceras en droppe utspädd vattenglas (50% utspädning). Den yttre arbetsmagneten vänds så att tyget inte ligger mot lockets insida. Jag kan då föra vattenglas till önskad plats med hjälp av den yttre magneten varefter jag svänger den yttre magneten upp och ned vilket svänger den inre magneten mot träytan varefter jag kan stryka vattenglas på det önskade området.

Nedan ges ett eget exempel på samma fiol. Fiolen är i mitt exempel inte speciellt långt trimmad jämfört med Simo Vuoristos exempel. Man hör nog också att Simo Vuoristo är proffs och jag ren amatör 😉 .

Sången/visan är skriven av min morfar Ole Eklund och tonsatt av Lasse Mårtensson. Jag spelade in melodin som separata track d.v.s. alla stämmor är mina egna.

Fantasier i realtid

11/05/2015

Jag har igen gjort en serie modifikationer på min Hardangerfiol. Jag har uppfattat att fiolens låga register har blivit rätt torrt eventuellt till följd av att lacket med åren hårdnar eller att träet långsamt oxiderar. Jag har försiktigt slipat lock och botten på insidan för att ge instrumentet lite mera must/djup. En justering är dock alltid en balansgång. Jag gillar mitt instrument och jag vill inte modifiera det så att det blir ett helt annat instrument eller så att den ljusa klangen i instrumentet försvinner.

P1040108

Min Kinesiskbyggda hardangerfiol.

 

fiol_botten

Slipning av området A gör tonen rundare/mörkare. Det är skäl att slipa extremt försiktigt här. Jag slipade denna gång området A ungefär 20 drag på insidan. Området B gör tonen ljusare. I allmänhet är man tvungen att slipa både A och B flera gånger för att hitta den balans i tonen man vill ha. Slipning av området C i bottenplattan ger en effekt som påminner om slipning i området B. Området E i bottenplattan påminner om området A i locket men effekten är mycket svagare.

Jag deltog i en sång/musikkväll i ”Fredsstationen” i Böle i Helsingfors torsdagen den 7.5.2015. Publiken bestod av främst ungdomar i åldern 15 – 30 år. Då jag blev uppmanad att spela/sjunga efter ett antal stycken tydligt inspirerade av Sufimusik beslöt jag att spela en improviserad ”meditation” på den modifierade Hardangerfiolen. Nedanstående ljudexempel är återskapad ur minnet vilket betyder att tonarten är densamma och den allmänna känslan bör bara rätt lika … men liksom all improviserad musik är det fråga om någonting som skapas i stundens ingivelse och sedan försvinner i intet. Stycket har ingen egentlig rytm och längden är rätt exakt 5 minuter. Stycket får spelas/reproduceras fritt utan ersättning. Källan får gärna anges men det är inget krav.

Alternativ färg för fiol

22/02/2015

Maestronet har man diskuterat olika tekniker för att lacka fioler. Det finns antagligen tusentals eller tiotusentals olika recept på lack både färgat och ofärgat. Personligen har jag köpt färdigt lack och jag har inte sett något behov av att börja koka lack själv. Genom de olika lackrecepten strävar man efter:

  • En vacker färg
  • Djup/lyster som framhäver träets struktur
  • En lackyta som håller i flera hundra år
  • Lack som inte förhindrar plattornas svängningar
  • Lack som inte är för tungt

Det finns många metoder för att ge instrumentets dess grundfärg. Den äldsta metoden var att hänga upp den trävita fiolen så att den utsattes för ljus varvid ytskiktet kommer att oxideras vilket gör att fiolen gulnar. Modernare metuder är att man hänger upp fiolen i ett UV-skåp, resultatet blir detsamma som för solbehandling men processen är snabbare … och processen lämpar sig bättre för vårt nordiska klimat.

Andra alternativ är att man tätar träytan med något lämpligt material. Många olika material används såsom gelatin, benlim, kasein etc. Tanken är att man ”tätar” porerna i träytan innan man lägger på färg eller lack. Färgämnet, bränt socker, i den här episteln både färgar och tätar ytan.

IMGP1289

Sockergrund på fiol. Ena halvan (den nedre halvan som är matt) av instrumentet har endast ett sockerlager. Den övre halvan har ett lager lack ovanpå sockerlagret.

Så här ser instrumentet ut som nästan färdigt:

IMGP1528

Sockerfiolen börjar vara färdig att provspela.

Hur tillverkar man sockertätningsmedlet/färgämnet

Häll upp mellan en halv och en deciliter mörk sirap i en liten kastrull. Sirapen kan inte användas obehandlad även om färgen kunde vara lämplig eftersom den obehandlade sirapen inte torkar! Genom att hetta upp sirapen kommer den att delvis förkolna vilket ger en djupare rödbrun färg och samtidigt polymeriseras sockret så att längre sockerkedjor bildas vilket gör att materialet torkar utan att vara klibbigt.

Det har visat sig att det är praktiskt att följa med processen med hjälp av en infrarödtermometer som mäter det smälta sockrets temperatur utan kontakt. Biltema säljer en lämplig IR-termometer för några tior (Euro).

IMGP1897_PEF_embedded

Kokprocessens första skede. Vatten avgår men färgen ändrar inte.

IMGP1898_PEF_embedded

Temperaturen ligger nu på ca. 130 grader C. Färgen börjar tydligt mörkna.

IMGP1899_PEF_embedded

Temperaturen ligger nu på ungefär 150 grader.

IMGP1900_PEF_embedded

Temperaturen är nu mellan 170 och 180 grader C. Längre än detta gick jag inte vid detta kok.

 

Uppvärmningen sker på elspis där plattan kan regleras i sex steg. Jag har kört på halv effekt. Då uppvärmningen startar börjar sirapen bubbla då vattnet avgår som ånga. Då vattnet har kokat bort börjar sirapens temperatur stiga från något över 100 grader upp till ca. 130 grader. Temperaturen kommer att ligga rätt länge på denna nivå medan färgen långsamt mörknar. Efter en stund börjar temperaturen stiga ytterligare. Jag slutade koket då temperaturen gick upp till 175 – 180 grader. Min gissning är att färgen skulle ha blivit bättre om jag hade fortsatt kokningen till ca. 200 grader. Färgen skulle ha blivit brunare och mörkare än den nu relativt gulbruna färgen.

Då sockret har fått den färg jag vill ha lägger jag försiktigt till vatten. Observera att det gäller att vara extremt försiktig eftersom det finns risk för stänk av tvåhundragradigt socker om man lägger till alltför mycket vatten på en gång. Vatten måste läggas till medan sockerfärgen är het eftersom materialet annars då det svalnar blir stenhårt och det krävs mycket tid att lösa upp materialet efter att det stelnat. Resultatet blir sockerfärg som i vattenlösning ser nästan svart ut. Då färgen dras på fiolen blir den guldbrun.

Sockerfiolen nummer två fick nu ett lager sockerfärg. På sockergrunden läggs därefter ett lager klarlack. Efter detta arbetsskede måste resultatet utvärderas. Om det behövs kan jag lägga på lite bärnstensfärgat lack och därefter mera klarlack beroende av vilken slutlig kulör jag vill ha.

Artikeln kommer att uppdateras med bilder på det nya instrumentet.

 

 

 

Experiment med konvertering av musik till noter

18/02/2015

Bakgrund

Min äldre bror stötte nyligen på ett nytt intressant programspråk ”Julia” som har influerats av Python, Matlab och många andra programmeringsspråk. Julia har en relativt intuitiv syntax vilket betyder att det är rätt enkelt att lära sig språket då man har använt andra programmeringsspråk. Julia påminner om språket Python men Julia kan vara tiotals gånger snabbare … nästan lika snabbt som kompilerad c-kod trots att Julia är ett tolkat språk med alla de fördelar detta medför (bl.a. enkelt att skriva program stegvis och tista medan man skriver).

Problemet att ur spelad musik har intresserat mig länge men jag har inte kommit mig för att skriva verktyg. Julia råkade nu bli den faktor som gjorde att jag började experimentera med notgenerering för att samtidigt lära mig språket Julia.

Det här kommer antagligen att bli en serie artiklar där olika aspekter av problemet behandlas … och det finns inga garantier för att slutresultatet på riktigt blir användbart.

Existerande hjälpmedel

Tanken är inte att skriva allt som behövs själv utan existerande programkod kommer att användas. Följande program används för närvarande.

  • Programmet Audacity används för inspelning. I samband med inspelningen normaliseras ljudfilen till standardamplitud eftersom detta förenklar analysen.
  • Julia används för programmeringen och Julia innehåller de FFT (fast fourier transform) rutiner som behövs för att plocka ut toner ur ljudmassan.
  • Programmet LilyPond används för att generera noter

Konvertering av ljudfilen till musikaliska toner

Det första programmet extract_notes.jl läser block om 8152 ljudsampel från ljudfilen som är samplad i CD-kvalité d.v.s. 44100 Hz. Ett datablock motsvarar då ungefär 200 ms ljud och den teoretiska upplösningen i spektret som skapas med FFT är ungefär 5 Hz.

Tanken är att analysera hela filen i 200 ms block. blocken/tonerna kan senare kombineras till något som motsvarar verkliga noter men detta är något för framtiden. Det är självklart att inte endast en ton utan en hel serie toner kommer att hittas i varje tonblock eftersom en fiolton innehåller en lång serie övertoner. Hur jag väljer att utnyttja övertonsserierna är också ett problem som lämnas för framtida optimering.

Programmet extract_notes.jl skapar en textfil som innehåller de noter programmet hittade samt amplituden för de olika tonerna (tonstyrkan). Textfilen ser för närvarande inte vacker ut:

Length:605696
Längd i sekunder:13.734603174603174
N ASCIIString[”d'”,”a””,”a”'”,”c”””,”d”””,”?”,”?”,”?”,”?”,”?”,”?”, … ,”?”,”?”,”?”,”?”,”?”]
A [-31.890321498989003,-30.634769023040928,-32.27245706229339,-30.018825559930626,-29.475444684452142,-9999.0,-9999.0, … , -9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0,-9999.0]
N ASCIIString[”d'”,”d””,”a””,”c”””,”d”””,”?”,”?”,”?”,”?”,”?”,”?”,”?”,”?”,”?”, … , ”?”,”?”,”?”,”?”,”?”,”?”]

o.s.v.

En rad som börjar med ”N” innehåller detekterade noter t.ex. ” d’ ”  , ” a” ” . ”?” betyder att ingen not har hittas för denna position i tabellen.

En rad som börjar med ”A” innehåller amplituder. En amplitud med värdet -9999.0 betyder att ingen amplitud finns för denna not.

Notnotationen är den som används i LilyPond.

Generering av noter

För att generera noter behöver vi nu endast plocka ut notvärdena ur tabellen och skriva ut noterna (de harmoniska övertonerna) som ett ackord i LilyPond.

Ett ackord i LilyPond betecknas med:

< not0 not1 not2 … >

Då vi plockar ut noterna får vi:

<   d’    a”   a”’  c””  d”” >

Vi kan titta på noterna genom att helt enkelt lägga till LilyPond startkod och slutkod så att man får en LilyPondfil som kan kompileras. Jag har skrivit ett separat litet program som läser textfilen ovan och konverterar den till kompilerbar LilyPond-kod. Programmet heter process_notes.jl .

Startkoden är:

\version  ”2.16.2”
{

Slutkoden är:

}

Resultatet för melodin ”Gubben noak” blev:

\version  ”2.16.2”
{< d’  a”  a”’  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  fis”’  a”’ >
< d’  dis’  d”  a”  fis”’ >
< d’  d”  a”  a”’  c”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  fis”’  a”’ >
< cis’  d’  d”  a”  c”” >
< d’  d”  a”  fis”’  c”” >
< d’  d”  a”  a”’  c”” >
< d’  d”  a”  fis”’  a”’ >
< d’  dis’  d”  a”  a”’ >
< d’  dis’  d”  a”  a”’ >
< fis’  cis”’  fis”’  cis”” >
< fis’  fis”  cis”’  fis”’  cis”” >
< fis’  fis”  cis”’  fis”’  cis”” >
< fis’  fis”  cis”’  fis”’  cis”” >
< fis’  fis”  cis”’  fis”’  cis”” >
< e’  g”’ >
< e’  e”  b”  g”’  gis”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< dis’  e’  e”  b”  g”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  e”’  gis”’ >
< dis’  e’  e”  b”  gis”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< g’  d”’  g”’  b”’  d”” >
< g’  d”’  g”’  b”’  d”” >
< g’  d”’  g”’  b”’  d”” >
< g’  d”’  g”’  b”’  d”” >
< fis’  g’  cis”’ >
< fis’  cis”’  fis”’  cis”” >
< fis’  fis”  cis”’  fis”’  ais”’ >
< fis’  cis”’  fis”’  ais”’  cis”” >
< fis’  cis”’  fis”’  cis”” >
< fis’  fis”  cis”’  fis”’  ais”’ >
< fis’  fis”  cis”’  fis”’  ais”’ >
< fis’  fis”  cis”’  fis”’  ais”’ >
< fis’  fis”  cis”’  fis”’  ais”’ >
< fis’  cis”’  cis”” >
< e’  e”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  b”  gis”’  b”’ >
< e’  e”  gis”’  b”’ >
< e’  e”  gis”’  b”’  cis”” >
< e’  e”  gis”’  b”’  cis”” >
< e’  e”  gis”’  b”’  cis”” >
< e’  e”  gis”’  b”’  cis”” >
< cis’  d’ >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  d”  a”  c””  d”” >
< d’  a” >

Den här filen kan nu LilyPond processa:

lilypond mellanresultat.ly

Resultatet blir en pdf-fil som heter mellanresultat.pdf .

ofiltrerad

Rå notutskrift då programmen har analyserat början av ”Gubben Noak”.

Mängden av toner är en följd av att en fiolton är mycket övertonsrik och spektret således inte innehåller endast en ton utan en mycket lång rad harmoniska och icke harmoniska övertoner.

Då man betraktar bilden så ser man en hel del dubletter som ligger på ett halvt tonstegs avstånd från varandra. Detta betyder inte att tonen är skärande dissonant utan på att ifrågavarande ton är relativt kraftig och spektraltoppen relativt bred. Resultatet är att analysprogrammet kommer att få flera träffar vid en ton. Frågan blir då hur man bäst filtrerar bort de oönskade tonerna?

Svaret på frågan får vila till nästa artikel 🙂 .

Fiolbygge: Experiment med omöjligt material (8)

06/06/2014

Att mäta attack

Det är ett känt faktum att det för en violinist har en stor betydelse hur snabbt, och pålitligt, tonen tänder i instrumentet. Om tonen tänder långsamt tvingas violinisten hela tiden tänka på detta och accentuera varje ton. Om instrumentet tänder genast och distinkt kan mera, mental, energi användas till att göra musik i stället för att medvetet jobba med att få tonen att tända distinkt.

Efter diskussion med min son Sebastian kom vi fram till att pizzicato borde vara en enkel och relativt reproducerbar metod för att mäta instrumentets respons. Vid pizzicato (knäppning) matas en extremt kort puls ljudenergi in i instrumentet. Vi kan sedan t.ex. använda fördröjningen mellan det första detekterade ljudet och maximinivån som ett mått på instrumentets respons. Det verkar rätt självklart att fördröjningen bör vara en funktion av hur instrumentets resonanser ligger men också en funktion av plattornas massor. Ju tyngre plattor desto långsammare kommer plattornas svängningar igång.

Nedan visas tre inspelningar med Audacity. Den första bilden visar Strad #1 som jag jobbar med för tillfället. Bild två är en tysk altfiol Edmund Paulus och det tredje instrumentet är min Guarnerius #1. Experimentet visar klart att Edmund Paulus med tjocka plattor kommer igång mycket långsammare än de båda fiolerna. Notera också hur de tjocka plattorna i Paulus altfiol har mycket högre dämpning än de båda fiolerna. Tonen försvinner mycket snabbare  i altfiolen än i fiolerna.

Strad1_g-string_pizzicato

Stradivarius ”birds eyes” pizzicato på G-strängen. Tonen når maxvolym på ca. 5 ms.

Paulus_g-string_pizzicato

Altfiol Edmund Paulus Markneukirchen pizzicato på G-strängen. Tonen når maxvolym på ca. 18 ms d.v.s. två till tre gånger långsammare än fiolerna.

Guarnerius1_G-strin_pizzicato

Guarnerius #1 pizzicato på G-strängen. Tonen når maxvolym på 5 – 8 ms.

Jag är intresserad av synpunkter på hur det lönar sig att mäta instrumentets respons på något enkelt sätt. Om du känner till något annat enkelt sätt att mäta en fiols respons så kommentera gärna.

 

 


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 news about TED Talks and TED Conferences.

Larsil2009's Blog

Lars Silén: Reflex och Spegling

%d bloggare gillar detta: