GIER/Lydattentat (Hip Hurra) 2011
< GIER
GIER lydattentat (Hip Hurra) 2011
Detaljer om GIER lydattentatet, at få GIER til at "sige noget" i anledning af jubilæet 2011-Sep-14, i form af beskedent redigeret e-mail korrespondance mellem de sammensvorne.
Til angreb
Date: Thu, 12 May 2011 21:16:35 +0000 From: Poul-Henning Kamp To: Mogens Kjaer Cc: Thorkil Naur Subject: GIER lyd attentat...
Mogens du er lige blevet medsammensvoren i Thorkils og min plan om et GIER lyd attentat. Vi skal have GIER til at sige noget til jubilæet og der skal ikke være andre end os 3, eller til nød hele ungdomsafdelingen der kender noget til planen.
Groft sagt er ideen at lave en 1bit oversampling af en eller anden lydstump og afspille den igennem GIERs højtaler.
Thorkil og jeg lavede lidt hovedregning på det i toget:
320 [spor] * 40 [ord/spor] * 40 [bit/ord] * 50e-6 [sec/bit] = 25.6 [sec]
Alternativt kunne man afspille den direkte fra RC2000:
1500 [tegn/sec] * [7 bit/tegn] = 10500 [bit/sec]
Men det ville kræve en masse strimmel og lyde meget ringere.
Jeg ved ikke lige hvilken 'sound-bite' vi skulle bruge, det kunne være stort hvis vi kunne finde et eller andet relevant NIB har sagt på en af de videostumper vi fik fra DR, men alternativt kunne det være ungdomsafdelingen der synger "Idag er det GIER's fødselsdag.." eller hvad ved jeg.
Der kommer til at mangle et sample for hvert ord og hver gang vi skal parke tromlen igang osv, men hvis vi skriver en delta-sigma modulator selv kan vi tage højde for det ved at sprede de manglende samples ud til siderne.
Er du med på ideen ?
Poul-Henning
PS: Hvordan ved vi at polariteten er korrekt på alle dataspor på det tromle image vi uploadede her til aften ? Kunne der ikke risikere at være polaritetsfejl ligesom på clocksporet ?
38 x tk 1
Date: Fri, 13 May 2011 01:42:44 +0200 From: Thorkil Naur To: Poul-Henning Kamp, Mogens Kjaer Subject: Re: GIER lyd attentat...
On Thu, May 12, 2011 at 09:16:35PM +0000, Poul-Henning Kamp wrote: > ... > Groft sagt er ideen at lave en 1bit oversampling af en eller anden > lydstump og afspille den igennem GIERs højtaler.
Hvis man som grundide siger noget i retning af
a: arn _0 t 1 tk 2 tk 1 ... tk 1 hv ra NA
med 38 tk 1 ordrer, så "afspilles" der omtrent en bit pr. ordre fra en liste af ord, det sidste A-mærket. Uden om denne løkke kunne der så ligge noget indlæsning fra tromlen, der jo gerne skulle foregå samtidig.
Separat kunne man så have et program og en datastrimmel, der lagde lyddata ud på tromlen.
> ...
Hilsner Thorkil
Megasecret 1010101010...
Date: Fri, 13 May 2011 09:17:10 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 05/13/2011 01:42 AM, Thorkil Naur wrote: > Hvis man som grundide siger noget i retning af > > a: > arn _0 t 1 > tk 2 > tk 1
http://www.datamuseum.dk/megasecret/
Programmet skriver 1010101010... ud på tromlekanal 200-319 og starter afspilning fra kanal 200 imens 201 bliver indlæst, etc.
Programmet stopper med tromlefejl når kanal 320 forsøges læst.
I sound.dat har jeg opsamlet det, der bliver sendt til lydkortet i simulatoren.
Der samples med 150 KHz, dvs. for hver 3. klokpuls.
Der er én byte per sample, som er hhv. 0 eller 255 hvis fortegnet er 0 eller 1.
Mogens
Tonen A
Date: Sat, 14 May 2011 14:20:34 +0200 From: Thorkil Naur To: Mogens Kjaer, Poul-Henning Kamp Subject: Re: GIER lyd attentat...
Hej,
On Fri, May 13, 2011 at 09:17:10AM +0200, Mogens Kjaer wrote: > ... > Programmet stopper med tromlefejl når kanal 320 forsøges læst.
Med "help3demo.gier", fortsætter den ud over een eller anden kant og det ender vistnok galt. Men det er nok en detalje.
> ...
For at få lidt erfaring med GIER lyd, har jeg lavet nogle eksperimenter med tonegenerering med den foreslåede tk 1-metode. For enkelthedens skyld udenom tromlen, bare med repeteret afspilning af en liste, der ligger i lageret, således:
> _b i=10, a10 > a3: > pa ra5 t a9 ; > a5: > arn _0 t 1 ; > tk 2 > tk 1 > ... > hv ra5 NA ; > hv ra3 ; > a9 = i-1 > _m > -1, 0a > _e a3
Listen ligger efter a9-definitionen og er her vist med et eksempel med blot to celler, den ene lutter 1'er, den andet lutter 0'er, der bare repeteres.
I mit hovede havde jeg, naivt, forestillet mig, at man kunne bruge enkeltstående 1'er, som var adskilt af et passende antal 0'er, men nærmere omtanke bragte mig til at mene, at det nok er bedre med en nogenlunde jævn fordeling af 0'er og 1'er. Men overalt set, er det ikke så enkelt, som vi ser lidt senere, at ramme et bestemt, ønsket lydmønster. Og vi skal jo hele tiden huske, at jeg er på Mogens' simulator og den virkelige GIER kan jo sagtens opføre sig anderledes på dette detailniveau.
Men til sagen: I første omgang forsøgte jeg mig med listen 60*[-1,0] + 120*[-1/-1/0/0] + 120*[-1/0/-1/0], hvor 60*[-1,0] betyder 60 gange repetition af to celler, den ene -1 (lutter 1'er), den anden 0, efterfulgt af 120 gange en celle med -1/-1/0/0 (som jo er slip-notationen for 1111111111 1111111111 0000000000 0000000000) og endelig 120 celler med -1/0/-1/0, altså 1111111111 0000000000 1111111111 0000000000. Der skulle således gerne komme en tone, efterfulgt af samme tone en oktav højere, og så samme tone igen og endnu en oktav højere. Varigheden af hver tone skulle gerne, med det samme antal celler (120, valgt som et multiplum af tromlespor uden nogen særlig begrundelse), være den samme.
Og det spillede fint, genkendelige toner, oktav intervallet let genkendeligt. Jeg fandt tonerne på min mors gamle elektriske klaver, som jeg har stående, og den dybe ligger i klaviaturets miderste oktav, et sted mellem D# (halvtonen over D) og E, altså cirka på en kvarttone. Og dette ligger jo 11 kvarttoner under oktavens A, som jo har frekvens 440 Hz, så vi kan regne tonens frekvens ud med lidt Haskell som:
> let u = exp( log( 2 ) / 24 ) in 440 / u^11 > 320.2437002252812
Her er u 24'nde-roden af 2 - frekvensfaktoren mellem kvarttoner på det veltemporerede klaver.
For denne tone, skifter GIER fortegn fra 1 til 0 og tilbage igen de 60 gange, der står [-1,0], så tonen (hvor frekvensen antages at handle om den komplette svingning) varer altså 60/320.24 = 0.18736 sekunder.
Jeg talte også, mens jeg kiggede på et ur, hvor mange gange de tre toner blev spillet på et minut og fik det til 107. Det betyder jo så, at vi kan regne tonelængden ud som 60/107/3 = 0.18692 sekunder, så det stemmer jo fint.
Med disse konstanter, kan vi jo så prøve at generere en tone med en givet frekvens. Tonen A er jo, som nævnt, 440 Hz og det giver så behov for at generere skiftevis 0'er og 1'er i et antal på mellem 29 og 30 og dertil passe sekvensen ind i 40-bits cellerne, således:
> let > s f t = sin $ f*t*2*pi; > b f k = s f $ k*60/(3*120*40*107); > ch n [] = []; > ch n l = let (l1,l2) = genericSplitAt n l in l1:ch n l2 > in > putStrLn > $ concat > $ intersperse "\n" > $ take 120 > $ map (concat . (intersperse "/") . (map (show . (foldl1 (\v -> \d -> 2*v+d))) . (ch 10))) > $ ch 40 $ map ((\x -> if x<0 then 0 else 1) . b 440) [0..]
Med dette resultat:
> 1023/1023/1023/0 > 0/1/1023/1023 > 1020/0/0/7 > 1023/1023/1008/0 > 0/15/1023/1023 > 992/0/0/63 > ... (112 linier) > 3/1023/1023/1016 > 0/0/15/1023
Og, ja, sådan en Haskell ooonnneee llliiinnneeerrr udvikler sig nogengange i en ikke nødvendigvis hensigtmæssig retning. Men uanset, var tonen A bestemt genkendelig.
Men der var en del støj også, ligesom jeg undervejs stødte på flere ejendommeligheder: F.eks. er 120*[0] helt stille, til forskel fra 120*[-1], der er en støjende udgave af 120*[-1/-1/0/0]. Det kan jo sagtens være ejendommeligheder, der hører til simulatoren, og GIER selv vil jo sikkert have tilsvarende, men nok andre, ejendommeligheder. Så må jo bare prøve og se, hvordan det lyder.
Til slut: Jeg vil da egentlig foreslå, at vi indvier den øvrige ungdomsafdeling i disse ting, det bliver da lidt besværligt ikke at kunne tale om det så længe, ligesom vi jo skal have "hemmelig" maskintid.
Hilsner Thorkil
Vi lister os ...
Date: Sat, 14 May 2011 14:35:11 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 05/14/2011 02:20 PM, Thorkil Naur wrote: > Med "help3demo.gier", fortsætter den ud over een eller anden kant og det > ender vistnok galt. Men det er nok en detalje.
Hej Thorkil,
Det er en diskmaskine med hvad der svarer til 30 tromler. Der er "langt" til kanten.
Jeg vil helst undlade at skulle have test for kanalnr. i koden.
Når vi når lidt længere kan jeg måske snige mig ud til Tapeten en weekend og prøve det af.
Poul-Henning, du må så fjerne sporene i loggen over lys&temperatur :-)
Mogens
arn kan klikke
Date: Sat, 14 May 2011 16:31:38 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 05/14/2011 02:20 PM, Thorkil Naur wrote: > Men der var en del støj også, ligesom jeg undervejs stødte på flere > ejendommeligheder: F.eks. er 120*[0] helt stille, til forskel fra > 120*[-1], der er en støjende udgave af 120*[-1/-1/0/0]. Det kan jo > sagtens være ejendommeligheder, der hører til simulatoren, og GIER selv > vil jo sikkert have tilsvarende, men nok andre, ejendommeligheder. Så må > jo bare prøve og se, hvordan det lyder.
Den tror jeg er god nok i simulatoren.
Med "arn" udføres jo først en nulstilling af R, heraf kommer der et klik i højttaleren.
Måske skal man læse ind i M og så skifte langt ind i R?
Mogens
arn -> pm X
Date: Sat, 14 May 2011 16:49:30 +0200 From: Thorkil Naur To: Mogens Kjaer Cc: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
Hej,
On Sat, May 14, 2011 at 04:31:38PM +0200, Mogens Kjaer wrote: > ... > Med "arn" udføres jo først en nulstilling af R, heraf kommer der et > klik i højttaleren.
Bravo, pinligt, jeg ikke selv tænkte på det. Og: pm .. X virker i hvert fald bedre, 120*[-1] er helt stille. Men der er stadig noget støj på mit A.
> ...
Hilsner Thorkil
Simultan tromletransport
Date: Fri, 13 May 2011 07:36:00 +0200 From: Mogens Kjaer To: Poul-Henning Kamp CC: Thorkil Naur Subject: Re: GIER lyd attentat...
On 05/12/2011 11:16 PM, Poul-Henning Kamp wrote: > Der kommer til at mangle et sample for hvert ord og hver gang vi skal > parke tromlen igang osv, men hvis vi skriver en delta-sigma modulator > selv kan vi tage højde for det ved at sprede de manglende samples ud > til siderne. > > Er du med på ideen ?
Hej PHK og Thorkil,
Den er jeg med på.
Vær også opmærksom på at GIER kører lidt langsommere imens en simultan transport fra tromlen er i gang. Jeg er ikke helt sikker på at min simulator helt svarer til virkeligheden hvad dette angår.
Mogens
Keld Hansen og Hans Erik Deckert spiller Beethoven
Date: Sun, 29 May 2011 18:36:05 +0200 From: Thorkil Naur To: Mogens Kjaer, Poul-Henning Kamp Subject: Re: GIER lyd attentat...
Hej Megasecret,
On Fri, May 13, 2011 at 07:36:00AM +0200, Mogens Kjaer wrote: > On 05/12/2011 11:16 PM, Poul-Henning Kamp wrote: > >Der kommer til at mangle et sample for hvert ord og hver gang vi skal > >parke tromlen igang osv, men hvis vi skriver en delta-sigma modulator > >selv kan vi tage højde for det ved at sprede de manglende samples ud > >til siderne. > >... > ... > Vær også opmærksom på at GIER kører lidt langsommere imens en simultan > transport fra tromlen er i gang. Jeg er ikke helt sikker på at min > simulator helt svarer til virkeligheden hvad dette angår. > ...
Helt uden at tage sådanne avancerede hensyn, har jeg gjort et amatør-angreb på problemstillingen: Der er meget støj, men det er lykkedes at få Mogens' simulator til at gengive lyden fra en .wav-fil. Således:
> tn@tn24:~$ sox -V /home/tn/tn/tmp/Skar/gnome-sound-recorder/work/Jesper/KeldHansen_2_1.wav -b 8 -e unsigned-integer -c 1 -r 25680 -t raw - +trim 15 6 | /media/TN_4/tn/GIER/Haskell/ToTromle 128 200 > KeldHansen_2_1_trim_15_6.tromle > sox: SoX v14.3.0 > sox INFO formats: detected file format type `wav' > > Input File : '/home/tn/tn/tmp/Skar/gnome-sound-recorder/work/Jesper/KeldHansen_2_1.wav' > Channels : 2 > Sample Rate : 44100 > Precision : 16-bit > Duration : 00:09:03.60 = 23972814 samples = 40770.1 CDDA sectors > File Size : 95.9M > Bit Rate : 1.41M > Sample Encoding: 16-bit Signed Integer PCM > Endian Type : little > Reverse Nibbles: no > Reverse Bits : no > > > Output File : '-' (raw) > Channels : 1 > Sample Rate : 25680 > Precision : 8-bit > Sample Encoding: 8-bit Unsigned Integer PCM > Reverse Nibbles: no > Reverse Bits : no > Comment : 'Processed by SoX' > > sox INFO sox: effects chain: input 44100Hz 2 channels > sox INFO sox: effects chain: trim 44100Hz 2 channels > sox INFO sox: effects chain: channels 44100Hz 1 channels > sox INFO sox: effects chain: rate 25680Hz 1 channels > sox INFO sox: effects chain: dither 25680Hz 1 channels > sox INFO sox: effects chain: output 25680Hz 1 channels > tn@tn24:~$
Mellemresultatet KeldHansen_2_1_trim_15_6.tromle kan .gier-splejses:
> tn@tn24:~$ cat /home/tn/tn/install/GIER/20100713large/20100713/configs/drum1.gier KeldHansen_2_1_trim_15_6.tromle > default.gier > tn@tn24:~$
Så køres GIER med den fremkomne default.gier og bin 0 strimlen play1_bin0.flx indlæses med r<. Herved startes afspilningen, der blot gentager de samme 6 sekunder indtil reset+HP.
Som sagt, der er meget støj, så for at muliggøre en vis grad af genkendelsens glæde, vedhæfter jeg et udsnit med de første 30 sekunder af KeldHansen_2_1.wav, i en grovere kvalitet, for at reducere størrelsen: Keld Hansen på klaver og Hans Erik Deckert på cello spiller en Beethoven cello-sonate. Den .gier-splejsede udgave indeholder et udsnit af dette på 6 sekunder, startende ved det 15. sekund.
Indledningsvis konverterer sox-programmet .wav-filen til et format, der er en række 8-bits heltal uden fortegn og med en sample frekvens på 25680 Hz, der er tiltænkt at passe med den tid, det tager for GIER at "spille" en enkelt bit. Vi har jo tidligere set, at GIER kan spille 3 gange 120 ord 107 gange på et minut, så det er jo 3*120*40*107/60 Hz = 25680 Hz. Vi kan kigge på disse heltal:
> tn@tn24:~$ sox /home/tn/tn/tmp/Skar/gnome-sound-recorder/work/Jesper/KeldHansen_2_1.wav -b 8 -e unsigned-integer -c 1 -r 25680 -t raw - trim +15 6 | od -t x1 | head > 0000000 7e 7d 7c 7e 7d 7f 7e 7f 80 80 80 80 81 81 81 81 > 0000020 81 82 82 83 83 84 84 84 84 84 85 85 84 85 86 85 > 0000040 86 85 85 85 86 85 85 84 84 83 83 83 82 83 81 81 > 0000060 80 80 7f 7e 7d 7c 7c 7c 7c 7b 7b 7b 7a 79 7a 7a > 0000100 7a 7a 7a 7a 7a 7c 7c 7c 7b 7e 7e 7e 7d 7f 7e 7e > 0000120 7f 7f 7f 81 80 81 81 82 82 83 83 83 84 85 85 86 > 0000140 86 86 86 86 86 85 84 84 84 84 84 83 84 83 83 83 > 0000160 82 81 80 80 80 80 80 7e 7e 7e 7e 7d 7e 7d 7e 7e > 0000200 7d 7e 7c 7d 7c 7d 7d 7d 7d 7d 7e 7e 7e 7e 7f 7f > 0000220 7f 7f 80 80 80 80 81 81 80 81 81 82 82 82 83 82 > tn@tn24:~$
Og det kunne jo se ud til at være en række tal, der varierer fra et midtpunkt omkring 128 og så svinger til den ene eller den anden side. Jeg aner jo ikke noget om det her, men det er jo nærliggende blot at reducere dette yderligere til kun en enkelt bit, så tal < 128 bliver til 0 og tal >= 128 bliver til 1. Det foregår i programmet ToTromle, der ydermere pakker bitlisten i ord og ordene i tromlekanaler, klar til .gier-splejsning:
> tn@tn24:~$ head KeldHansen_2_1_trim_15_6.tromle > Tromle[8000] 2FFFFFFFC > Tromle[8001] 7FE00000000 > Tromle[8002] 67FFFFFFFD0 > Tromle[8003] BFFC > Tromle[8004] 7E80000001C > Tromle[8005] 7FFFFFFFF00 > Tromle[8006] 7FFC > Tromle[8007] 7FED500001C > Tromle[8008] 7FFFFFFFF00 > Tromle[8009] 7FFFC > tn@tn24:~$
Mellemresultatet KeldHansen_2_1_trim_15_6.tromle er vedhæftet. Også programmet play1.asc og den genererede strimmel play1_bin0.flx er vedhæftede. Afspilningen sker i en løkke, der meget ligner de tidligere udgaver fra Mogens og jeg selv og der er lidt KA/KB-styret fejlfindingslogik.
Jeg skal spare Jer for ToTromle.hs og tilbehør, blot bemærke, at den første parameter er grænsen mellem 0 og 1, den anden er den ønskede tromlekanal, hvor lyden skal starte.
Jeg fik også lyst til at prøve afspilning af tale. På vedhæftede GIERErEnGodMaskine1.wav bruger Thorkil Naur ca. 2 sekunder på at sige "GIER er en god maskine" og vedhæftede GIERErEnGodMaskine1.tromle er de tilsvarende tromle data, klar til .gier-splejsning.
Det lyder jo rædderligt, med denne kvalitet skal vi nok ikke regne med at kunne få publikum til at genkende andet en ret stereotype lydbilleder. Så Poul-Hennings forslag med at lade ungdomsafdelingen synge "I dag er det GI-ER's fødselsdag" er nok i virkeligheden en rigtig god ide.
Hilsner Thorkil
Floyd-Steinberg dither
Date: Sun, 29 May 2011 21:23:30 +0000 From: Poul-Henning Kamp To: Thorkil Naur cc: Mogens Kjaer Subject: Re: GIER lyd attentat...
In message <20110529163558.GA6766@tn24>, Thorkil Naur writes:
>Hej Megasecret,
Interressant!
Men jeg tror vi kan få lyden meget bedre.
Det du har brugt er en nulte-ordens sigma-delta modulation, det svarer til at lave en hård segmentering af et billede til sort/hvid.
Med mindre man er Andy Warhol, ser den slags rædsomt ud.
En første orden sigma-delta svarer til en floyd-steinberg dither: Man laver en accumulator der holder rede på hvor meget man har ramt ved siden af indtil nu og vægter det næste input dermed.
Noget i stil med:
a = 0 for i in inputs; a += i if a < 0: output(0) a += 128 else output(1) a -= 127
(for input [-128...127] og output {0|1})
2. ordens sigma-delta får et led mere på, men vist nok ikke nær samme forholdsmæssige forbedring af lyden.
Diverse variationer
Date: Mon, 30 May 2011 23:13:38 +0200 From: Thorkil Naur To: Poul-Henning Kamp Cc: Mogens Kjaer Subject: Re: GIER lyd attentat...
Hej,
On Sun, May 29, 2011 at 09:23:30PM +0000, Poul-Henning Kamp wrote: > ... > Men jeg tror vi kan få lyden meget bedre. > ... > a = 0 > for i in inputs; > a += i > if a < 0: > output(0) > a += 128 > else > output(1) > a -= 127 > > (for input [-128...127] og output {0|1}) > ...
Prøvede dette forslag og det gjorde bestemt en forskel. Man må bruge en anden værdi end -127/128 til at repræsentere bidraget fra 1/0: I et af de eksempler, jeg arbejder med, er gennemsnittet af de negative værdier omkring -3,5 og for de positive værdier er gennemsnittet omkring 3.0. Så bruger man -127/128, får man mest en hidsig 0101010-sekvens, der fortvivlet prøver at ramme de forholdsvis beskedne værdier inde omkring +- 2-3 stykker med disse -127/128 kanonkugler.
Men meget bedre? Tjah, det er ikke så let det her, det er bestemt anderledes, og giver en masse muligheder for at variere, men en oplagt bedste mulighed har jeg ikke fundet.
Andre ting:
- Jeg har forsøgt at øge "præcisionen", altså antallet af bits for hver sample. Med kun en enkelt byte og behersket udsving fra nulpunktet 128, var der i virkeligheden ikke så mange forskellige værdier, der blev genereret.
- sox-programmet har jo en lang række "effekter", der kan anvendes, en enkelt, vol xxDb, har jeg prøvet med en mærkbar effekt.
- Jeg har jo ikke gjort noget forsøg på at tage hensyn til de forsinkelser, der opstår ved skift til næste celle eller næste tromlekanal. Celleskift sker ca. hvert 39*40 mikrosekund, dvs med en frekvens omkring 641 Hz. Tromlekanalen skifter så igen med en frekvens, der er 40 gange lavere, dvs. omkring 16 Hz. 641 Hz er en hørbar tone mellem D# og E i oktaven over det basale A på 440 Hz. Jeg har ind imellem kunnet skelne en tone med sådan en frekvens, men det har ikke været markant. De 16 Hz foklarer nok den hørbare "bævren" eller "vibrato" i lydbilledet: 16 Hz er nok under det hørbare frekvensområde. Støj forekommer mig at være det største problem.
Hilsner Thorkil
lydtest.gier
Date: Tue, 31 May 2011 08:18:08 +0200 From: Mogens Kjaer To: Thorkil Naur, Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 05/30/2011 11:13 PM, Thorkil Naur wrote: > Men meget bedre? Tjah, det er ikke så let det her, det er bestemt > anderledes, og giver en masse muligheder for at variere, men en oplagt > bedste mulighed har jeg ikke fundet.
Hej Thorkil og Poul-Henning,
Jeg har prøvet at lave et eksempel.
Prøv at hente lydtest.gier fra megasecret, læs den ind i simulatoren og tryk på normal start.
Programmet ds1.c sammesteds læser en 8 bit signed 1-kanals raw lydfil og genererer slip kode. Den genererede slipkode skal erstatte linierne 107-4096 i filens dshal1.asc, som så kan indlæses med r<
Den store tabel i starten af ds1.c tager hensyn til at bit'ene ikke afspilles med konstant hastighed. 25'erne i starten skyldes DMA fra den simultane tromletransport. Deres placering afhænger af positionen af klokspor II, så det er ikke helt nemt at synkronisere - men det er nok en mindre detalje.
Afspilningen slutter med noget støjsnask når den når til kanalerne 295-319 hvor ferritlagerbilledet ligger og stopper så med tromlefejl når den når til kanal 320.
Mogens
Musik til morgenkaffen/teen
Date: Tue, 31 May 2011 08:35:48 +0200 From: Mogens Kjaer To: Thorkil Naur, Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 05/31/2011 08:18 AM, Mogens Kjaer wrote: > Prøv at hente lydtest.gier fra megasecret, læs den ind i simulatoren og > tryk på normal start.
Lidt musik til morgenkaffen/teen i lydtest2.gier :-)
Mogens
GIER forudsætninger og strimmeltanker
Date: Tue, 31 May 2011 22:15:20 +0200 From: Thorkil Naur To: Mogens Kjaer Cc: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
Hej Mogens og Poul-Henning,
On Tue, May 31, 2011 at 08:35:48AM +0200, Mogens Kjaer wrote: > ... > Lidt musik til morgenkaffen/teen i lydtest2.gier :-) > ...
Glimrende: Jeg prøvede at kværne mine lydstumper igennem din pølsemaskine og i hvert fald forsvandt denne "vibrato", som jeg har henført til tromle-kanal skift og som jeg jo ikke tager hensyn til. Men derudover var det overordnede indtryk, at vores mekanismer er tilsvarende og genererer lyd med en sammenlignelig mængde af hvislen og støj.
En anden gren af denne problemstilling: Vi vil vel gerne undgå at afhænge alt for meget af, at GIER139 (det var nummeret, ikke?) med tilhørende systemprogrammel osv. skal virke, for at dette lyd attentat kan finde sted? Så jeg forestiller mig at bringe os i en situation, hvor "kun" tromlen behøver at fungere, udover hvad der ser ud til at fungere til husbehov nu, dvs. lager, ordreafkodning og -udførelse. Så vi skal have et bin 0 program, der kan indlæse en lydfil til tromlen fra een eller anden ydre enhed og så afspille den. Sådan at vi i princippet kun behøver at prikke de berømte 3 ordrer ind, lægge en (lang) strimmel i RC2000 og så kører (spiller) det.
Poul-Henning er karrig med u-hullede strimler, men lad os glemme det for et øjeblik og tænke os tilbage til 70'erne, hvor det ikke var noget problem. Den tænkte hulstrimmel kunne skabes således:
1. binout i bin 0 format af programmet til indlæsning og afspilning. 2. binout af data, dvs. lydfilen.
Indlæsningsprogrammet skulle kunne forstå det almindelige binout format og lægge lyd-data på tromlen efter een eller anden bekvem aftale. Med "mit" lydformat, så fylder et sekunds lyd omkring 16 tromlekanaler, så hvis vi skal have en rimelig mængde tid at gøre med, må vi nok undgå at antage, at nyttige dele af tromlen overlever.
Og så, for at spare fysisk og uhullet strimmel: Vi må arrangere os, så indlæsning af lyd data og måske også det bin 0 formaterede program, kan foregå, med passende by-skift ved zq stop, via Poul-Hennings fuglerede og sikkert via noget Mogens programmel. Men jeg er noget på glatis her, jeg kan ikke sige præcis, hvad der skal til.
Hilsner Thorkil
Flere strimmeltanker
Date: Tue, 31 May 2011 20:58:51 +0000 From: Poul-Henning Kamp To: Thorkil Naur cc: Mogens Kjaer Subject: Re: GIER lyd attentat...
In message <20110531201513.GA2844@tn24>, Thorkil Naur writes:
>Poul-Henning er karrig med u-hullede strimler,
Det er ikke ved denne slags lejligheder vi behøver sparer, det er netop for at have strimmel til den slags jeg synes det er vigtigt at spare hvor vi kan.
Mht input via fuglereden er det pt. begrænset til ca. 10 tegn i sekundet...
Help 3 og algol skal virke
Date: Wed, 01 Jun 2011 07:40:00 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 05/31/2011 10:15 PM, Thorkil Naur wrote: > En anden gren af denne problemstilling: Vi vil vel gerne undgå at > afhænge alt for meget af, at GIER139 (det var nummeret, ikke?) med > tilhørende systemprogrammel osv. skal virke, for at dette lyd attentat > kan finde sted?
Nej, det vigtigste er at få help3 og algol til at virke - ellers er der ikke så meget at vise frem.
Så kan vi vise ting frem som folk, der har set en GIER før, kan huske: 20 spørgsmål, nogle musikeksempler, min fars demoprogrammer.
Jeg tror heller ikke vi er langt fra at det virker.
Om maskinen så er så stabil at den vil makke ret på dagen er så et andet spørgsmål.
Hvis jeg koder musikdata lidt mere kompakt bliver strimlen heller ikke så stor - det hjælper gevaldigt bare at skrive
1023/1023/1023/1023
i stedet for
qq 1023.9+1023.19+1023.29+1023.39
så kan det være på én strimmel som kan læses med r<
Mogens
Strimmeldata format
Date: Wed, 1 Jun 2011 20:00:25 +0200 From: Thorkil Naur To: Mogens Kjaer Cc: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
Hej Mogens,
On Wed, Jun 01, 2011 at 07:40:00AM +0200, Mogens Kjaer wrote: > ... > Nej, det vigtigste er at få help3 og algol til at virke - ellers er der > ikke så meget at vise frem.
Ok.
> ... > Hvis jeg koder musikdata lidt mere kompakt bliver strimlen heller ikke > så stor - det hjælper gevaldigt bare at skrive > > 1023/1023/1023/1023
Eller måske bare
-1
> ...
Hilsner Thorkil
Tommy Seebach på banen
Date: Fri, 03 Jun 2011 18:24:01 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 06/01/2011 08:00 PM, Thorkil Naur wrote: > Eller måske bare > > -1 >
Touché. Nu har jeg lavet det så det er en binær strimmel.
Den fylder 52082 tegn. Det er alle ledige tromlekanaler 103-319.
Jeg har lavet endnu et eksempel: hurra.gier som måske er mere relevant for dagen :-)
Mogens
En første anmeldelse
Date: Sun, 12 Jun 2011 17:32:47 +0200 From: Thorkil Naur To: Mogens Kjaer Cc: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
Hej Mogens,
On Fri, Jun 03, 2011 at 06:24:01PM +0200, Mogens Kjaer wrote: > ... > Jeg har lavet endnu et eksempel: hurra.gier > som måske er mere relevant for dagen :-)
Glimrende. Et par bemærkninger:
1. Kunne du måske repetere lyden? Jeg bruger bare et C-mærke til sidste celle og dekorerer en passende ordre med V NB, der springer et hop til starten over. Jeg tror ikke dine finpudsede timings bliver skudt mærkbart i sænk af dette.
2. Nu har jeg selvfølgelig fået Tommy Seebach på hjernen og det forekommer mig, at denne karakteristiske "diuhhhhhh ... diuhhhh"-lyd, der jo kommer efter den første gennemspilning af omkvædet, mangler lidt kvaliteter. Lyder den sådan (nogenlunde) på din original? Eller er det bare fordi programmet ikke spiller længere?
3. Hvornår skal vi have hemmelig maskintid, så vi kan prøve at høre disse vidunderligheder på den rigtige maskine?
> ...
Hilsner Thorkil
Sandhedens time
Date: Sun, 12 Jun 2011 18:00:58 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 06/12/2011 05:32 PM, Thorkil Naur wrote: > 3. Hvornår skal vi have hemmelig maskintid, så vi kan prøve at høre > disse vidunderligheder på den rigtige maskine?
Hej Thorkil og Poul-Henning
Vi skal være enige om hvad vi skal prøve med inden vi laver en strimmel.
De eksempler jeg har lavet indtil nu fylder 76562 tegn, der kan være ca. 120000 tegn på en hel, ny rulle strimmel.
Mogens
Seebach til sammenligning
Date: Sun, 12 Jun 2011 18:08:02 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 06/12/2011 05:32 PM, Thorkil Naur wrote: > 2. Nu har jeg selvfølgelig fået Tommy Seebach på hjernen og det > forekommer mig, at denne karakteristiske "diuhhhhhh ... > diuhhhh"-lyd, der jo kommer efter den første gennemspilning af > omkvædet, mangler lidt kvaliteter. Lyder den sådan (nogenlunde) på > din original? Eller er det bare fordi programmet ikke spiller > længere? >
Hej igen,
Jeg har lagt originalfilen (så I ikke behøver at styrte ned i Fona og ofre kr. 149 for hr. Seebachs samlede værker) på megasecret (28 Mb).
Der kan sikkert fintpudses med parameterne så det lyder bedre; vi må få det til at lyde bedst muligt på simulatoren og så høre om the real thing lyder ligesådan.
Mogens
Nettet strammes
Date: Sat, 18 Jun 2011 18:35:40 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 06/12/2011 05:32 PM, Thorkil Naur wrote: > 1. Kunne du måske repetere lyden? Jeg bruger bare et C-mærke til sidste > celle og dekorerer en passende ordre med V NB, der springer et hop > til starten over. Jeg tror ikke dine finpudsede timings bliver skudt > mærkbart i sænk af dette.
Hej Thorkil,
Det var ikke så simpelt som det lyder.
Når jeg afspiller kanal 319 har jeg allerede sat indlæsningen af kanal 320 (som ikke findes) igang, så når jeg starter forfra med VK 1 hænger den fordi indlæsningen af 320 aldrig bliver færdig.
Man bliver så nødt til at undlade at bruge kanal 319 ved at lægge C-mærket på kanal 318.
Jeg kan tage på Tapeten fredag eftermiddag og prøve en strimmel af.
Umiddelbart er jeg mest stemt for hr. Seebach med en deltaout på 50.
Hvad siger I?
Mogens
Lidt slag i luften
Date: Mon, 20 Jun 2011 21:10:06 +0200 From: Thorkil Naur To: Mogens Kjaer Cc: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
Hej Mogens (og andre megasecret),
On Sat, Jun 18, 2011 at 06:35:40PM +0200, Mogens Kjaer wrote: > ... > Det var ikke så simpelt som det lyder.
Jeg synes nu alligevel, vi skulle give repetition lidt mere opmærksomhed: Hvis man nøjes med de første ca. 11,75 sekunder af Hip Hurra, får man den første fremførelse af omkvædet og den kan fint spilles i det uendelige og give en vis mening og, ikke mindst, hvad der måtte være af publikum (måske lidt hørehæmmede af alder) en mere fair chance for at genkende løjerne. (Faktisk kan jeg ikke finde en indstilling af "mine" parametre, som giver en rimelig gengivelse af den anden fremførelse af omkvædet, der er for mange bas-gange og stemmer med, vil jeg tro.) At vi så må forudsætte, med de aktuelle afspilningsmekanismer, at vi stopper senest på kanal 318, det synes jeg ikke er et problem i praksis.
Man kunne selvfølgelig også finde på andre mekanismer til repetition, tage tromlekanalen modulo noget, skrive kanalnummeret på næste kanal på den aktuelle, og andet godt. Men det vil sikkert kræve fornyet finpudsning.
> ... > Umiddelbart er jeg mest stemt for hr. Seebach
Enig.
> med en deltaout på 50.
Det ville så, med din ds1.c fra 2011-05-31 være:
> #define INPUT_RATE 11025 > #define OUTPUT_RATE 450000 > #define DELTAOUT 50
?
Lige nu har jeg en situation med min egen mekanisme, hvor jeg let kan eksperimentere med "min" udgave af deltaout: Jeg bruger jo, som skrevet tidligere:
> sox ... -D -b 16 -e unsigned-integer --endian big -c 1 -r 25680
hvor de 25680 er beregnet til at passe med den frekvens, hvormed GIER kan flytte bits ind i fortegnet for R-registeret. Jeg har ikke tilstækkelig indsigt til at forstå dit valg af INPUT_RATE og OUTPUT_RATE og hvordan disse parametre spiller sammen med DELTAOUT og giver det endelige resultat. Men med den aktuelle udgave af "min" mekanisme, kan jeg sige f.eks.
> tn@tn24:~$ sox tn/tmp/GIER/megasecret/Mogens/lydtest/gier.dk/megasecret/hip_hurra.wav -D -b 16 -e unsigned-integer --endian big -c 1 -r 25680 +-t raw - trim 9 3 lowpass -2 3000 1.0 | /media/TN_4/tn/GIER/Haskell/ToTromle 2 32768 39 4000 6000 8000 10000 >> default.gier > tn@tn24:~$ /home/tn/tn/install/GIER/20100713large/20100713/GIER GIER_load: default.gier > tn@tn24:~$
og så høre de samme 3 sekunder med fire forskellige "deltaout"-agtige værdier (4000, 6000, 8000 og 10000, som jo skal forstås i en helt anden målestok end din) lige efter hinanden og repeteret i det uendelige. (Her ses også et lowpass filter, een af mange "effects", man kan bruge med sox, som måske kan hjælpe os.) Og det giver en rimelig lejlighed til at vurdere de forskellige udgaver mod hinanden.
Hilsner Thorkil
Sidste chance ...
Date: Mon, 20 Jun 2011 22:16:41 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 06/20/2011 09:10 PM, Thorkil Naur wrote: > Det ville så, med din ds1.c fra 2011-05-31 være: > > > > #define INPUT_RATE 11025 > > > #define OUTPUT_RATE 450000 > > > #define DELTAOUT 50 > ? >
Jeg har lagt nogle nye filer på megasecret, svarende til hvad jeg vil prøve på fredag - med mindre I har nogle bedre forslag.
Mogens
Ok
Date: Mon, 20 Jun 2011 22:55:54 +0200 From: Thorkil Naur To: Mogens Kjaer Cc: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
Hej Mogens,
On Mon, Jun 20, 2011 at 10:16:41PM +0200, Mogens Kjaer wrote: > ... > Jeg har lagt nogle nye filer på megasecret, svarende til hvad jeg vil > prøve på fredag - med mindre I har nogle bedre forslag.
Det lyder (!) fint og værd at prøve.
> ...
Hilsner Thorkil
Det virker!
Date: Thu, 23 Jun 2011 18:48:57 +0200 From: Mogens Kjaer To: Thorkil Naur CC: Poul-Henning Kamp Subject: Re: GIER lyd attentat...
On 06/20/2011 10:55 PM, Thorkil Naur wrote: > Det lyder (!) fint og værd at prøve.
Det virker!
Nu er der desværre kommet andre, så jeg har lagt strimlerne i nederste skuffe i konsolbordet.
Det lyder måske lidt bedre end på simulatoren.
Mogens
Fedt!
Date: Thu, 23 Jun 2011 18:11:24 +0000 From: Poul-Henning Kamp To: Mogens Kjaer cc: Thorkil Naur Subject: Re: GIER lyd attentat...
In message <4E036E79.2070206@lemo.dk>, Mogens Kjaer writes: >On 06/20/2011 10:55 PM, Thorkil Naur wrote: >> Det lyder (!) fint og værd at prøve. > >Det virker!
Fedt!
Afsløret
Date: Thu, 23 Jun 2011 22:50:08 +0200 From: Mogens Kjaer To: Poul-Henning Kamp Cc: Thorkil Naur Subject: Sv: Re: GIER lyd attentat...
Hej Poul-Henning,
Thorkil og jeg tog en rask beslutning:
Vi har afsløret projektet for Ole og Henrik.
Ikke et øje var tørt da de hørte det.
De har fået at vide at det er hemmeligt.
Mogens
En slags slutning
Date: Thu, 23 Jun 2011 21:32:04 +0000 From: Poul-Henning Kamp To: Mogens Kjaer cc: Thorkil Naur Subject: Re: Sv: Re: GIER lyd attentat...
In message <PFwXwryyjJHq.Lsd7rR43@mail.sonofon.dk>, "Mogens Kjaer" writes:
>Vi har afsløret projektet for Ole og Henrik.
Ok med mig.
Henrik er sandsynligvis noget mere DSP haj end mig, så jeg kunne forestille mig at han har ideer til at forbedre lydkvaliteten.
Poul-Henning
Og hvordan gik det så egentlig?
Date: Sat, 9 Nov 2019 00:06:27 +0100 From: Jesper Naur To: Thorkil Naur Subject: Re: http://datamuseum.dk/wiki/GIER/Lydattentat_(Hip_Hurra)_2011 [Re: https://datamuseum.dk/wiki/DEC/PDP11] ... Det er en sjov historie med lydattentatet – det eneste jeg savner er: Hvordan gik det ved showtime? ...
Hertil:
Date: Sun, 10 Nov 2019 00:39:35 +0100 From: Thorkil Naur To: Jesper Naur Subject: Re: http://datamuseum.dk/wiki/GIER/Lydattentat_(Hip_Hurra)_2011 [Re: https://datamuseum.dk/wiki/DEC/PDP11] ... Ja, det mangler selvfølgelig.
Jeg kiggede efter et referat af begivenheden, 50-året for første GIER, det skulle være september 2011, men vores datamuseum.dk ser ud til at være et syndigt rod og jeg kunne ikke finde noget. Fra hukommelsen var det er velbesøgt arrangement med flere foredrag, måske Christian Gram eller Bent Scharøe om historien, formentlig et eller flere af Henrik Jacobsen, Poul-Henning Kamp, Mogens Kjær og/eller Ole Nielsen, om at få det gamle apparat på benene. Foredragene foregik i en større sal i Tapetens stueetage på grund af den store mængde af deltagere. Og arrangementet sluttede i kælderen, hvor den (heldigvis) velfungerende maskine blev demonstreret.
Jeg stod bagest da Tommy Seebach spillede og så det ikke selv, men har senere fået fortalt af Poul-Henning, at de tilstedeværende så mildt undrende ud, som om de halvvejs forventede, at det hele var snyd og vi havde en gemt højttaler. Ikke sådan at forstå, at lyden var som en fin indspilning, slet ikke, men alligevel.
Det er en udmærket demonstration, men kan stoppe maskinen, singlesteppe og se bittene i R-registeret skifte 1 til venstre for hver ordre, til "afspilning" i fortegnsbitten. Og de ca. 25 sekunders Seebach i en umådelig beskeden lydkvalitet, der fylder næsten en hel strimmelrulle, gør også indtryk.
Data til demonstrationen ligger på
http://privat.thorkilnaur.dk/GIER/lemo_dk_megasecret_20191109_2235.zip
der pakker ud til
> [tn@tn41 megasecret]$ ls -ltr > total 84 > -rw-r--r--. 1 tn tn 2954 Jun 20 2011 dstape.flx > -rw-r--r--. 1 tn tn 2791 Jun 20 2011 dstape.asc > -rw-r--r--. 1 tn tn 76322 Jun 20 2011 input.flx > [tn@tn41 megasecret]$
dstape er indlæsnings/afspilningsprogrammet i ASCII (.asc) og Flexowriter kode (.flx). Den sidste er nødvendig hvis man kører Linux-udgaven af Mogens' simulator
https://datamuseum.dk/wiki/GIER/Simulator
mens Windows udgaven (der ovenikøbet er direkte tilgængelig som een af to .exe-filer) godt kan læse .asc-filen direkte. Af uudgrundelige årsager.
Men ellers er den korte vejledning, forudsat lidt GIER-erfaring:
1. Læg dstape.flx i strimmellæseren. 2. Tast r< på skrivemaskinen. Strimlen læses af slip, som er maskinkodeoversætteren, og startes, men stopper i en zq (stop-ordre). 3. Læg input.flx i strimmellæseren. 4. Tryk NORMAL START på hovedkonsollen. Det kørende dstape læser strimlen og går igen i en zq-ordre. 5. Endnu et tryk på NORMAL START og Seebach er på banen: Ca. 25 sekunder af Hip Hurra gentages i det uendelige.
Operativsystemet skal genindlæses, når man bliver træt af Tommy Seebach. Nu jeg kigger på det, kan jeg ikke helt forstå hvorfor, men der er sikkert en god grund.
Indkaldelse til fødselsdagsfesten 2011
Indkaldelsen til GIER fødselsdagsfesten:
http://datamuseum.dk/2011/09/
Det fremgår, at min erindring om begivenheden ikke var ganske præcis.