' ******************************************** ' * * ' * a chamber apero for Man and Machine * ' * by * ' * Godfried-Willem Raes * ' * 21th century * ' ******************************************** ' globals and constants for TechnoFaustus compilation ' Act1 : Prologos.inc - 5' ' Act2 : lithos.inc - 15' ' Act3 : earylis.inc - vocal utterances, motoric equilibrium 5-10' ' Act4 : flexes.inc - gesture control 6'00 ' Act5 : wander.inc - = Wandering Quadrada space: discovery of space and geometry 8'00 ' Act6 : gnos.inc - uses Goethe text materials. - knowledge ' Act7 : tekne.inc - Mefistodans 7' ' Act8 : paradiso.inc - Walpurgisnacht 10' ' Act9 : tango.inc - Mefisto & Faust / Wagner & Homunculus or triotango ' Act10: descent.inc - descent from the homunculus from the olympos ' Act11 : plebs.inc - the others ' Act12 : Aux Arbres - Mefistos slotaria ' Act13 : Kybernos.inc ' Act14 : Chorus Mysticus ' Act15 : TransiTrance - Transition 11'30" %ID_Acts_Dlg = 100 ' voor actselection listbox callbackwindow GLOBAL sr AS SonarType PTR ' new 14.04.2003 - used in , , and GLOBAL pr() AS RadarType PTR ' new 18.09.2003 - dimmed on init GLOBAL pDoppler AS DopplerType PTR ' new 07.07.2009 - will become the device of choice. GLOBAL Sonar_Radar AS LONG ' switch: 0 = Sonar ' 1 = Radar, added 18.09.2003 ' 2 = Doppler sonar input, added 11.06.2009 ' -1 = No device selected. GLOBAL pADXL202 AS AccelSensDevice PTR ' for 10.06.2003 GLOBAL CQT AS Pitch2MidiType ' used in , , , GLOBAL listboxchoice AS DWORD ' all robots play, so we have 70 robots. ' all are declared global in g_mm.inc/bi %Drip_Test = 59 ' voor afregeling druppels in Lithos. ' *********************************** ' * Act 1 : PROLOGOS * ' *********************************** %Prologos_Meta = 32 %Prologos_So = 34 %Prologos_Piano = 35 %Prologos_Harma = 36 %Prologos_Bourdonola = 37 '%Bourdonola_Test = 60 ' was voor test op bourdonola. %Prolog = 38 ' temporary for Enschede - prologos %Prologos_HybrLo = 40 ' added 15.10.2016 ' *********************************** ' * Act 2 : LITHOS - OPS * ' *********************************** ' 1999: all robots play except Rotomoton, so we have 12 robots. ' 2016: extended with Asa, HybrLo, Tinti, Whisper... %Lithos_Drip = 17 ' on %Litho_HideHarm = 18 %Lithos_SolveHarm = 19 %Lithos_tc = 20 ' transposition task - on Belly %litho_command = 21 ' voor user interaction %litho_scoretime = 22 %Litho0 = 32 ' 23 '32 ' Vox Humanola and AutoSax %Litho1 = %Litho0 + 1 ' Vox Humanola and Klung %Litho2 = %Litho0 + 2 ' Piano and Harma %Litho3 = %Litho0 + 3 ' Piperola and Bourdonola %Litho4 = %Litho0 + 4 ' now piano & vibi %litho_meta = %Litho0 + 5 %lithoSax = %Litho0 + 6 ' coupled to Litho0 - saxophone alone - now Asa %lithoperc = %Litho0 + 7 ' percussion on piperola and humanola %Lithos_Whisper = %Litho0 + 8 ' gesture interactive on Whisper %Lithos_Tinti = %Litho0 + 9 ' gesture interactive on Tinti ' *********************************** ' * Act 3 : Eary Lis Trimbl * ' *********************************** ' takes a complete cockpit column for %Eary_monitor = 18 '%cqt+1 ' 18 - remmed in Flexes. '%Eary_SilenceMonitor = 19 '%cqt + 2 '%cqt+14 ' 19 - also used in %Eary_piano = 32 '%cqt+2 %Eary_klung = 33 '%cqt+3 %Eary_troms = 34 '%cqt+4 %Eary_piperola = 35 '%cqt+5 %Eary_humanola = 36 '%cqt+6 %Eary_harma = 37 '%cqt+7 %Eary_Rotomoton = 38 '%cqt+8 %Eary_Thunderwood = 39 '%cqt+9 %Eary_Vibi = 40 '%cqt+10 %Eary_Springers = 41 '%cqt+11 %Eary_Bourdonola = 42 '%cqt+12 %Eary_Castagnets = 43 '%cqt+13 %Eary_Gesture = 47 '%cqt+15 'GLOBAL Eary AS SoloPiType ' also used in - removed 09.10.2003, fields now included in Pitch2MidiType GLOBAL Spekfak AS SINGLE ' also used in TEKNE and Trance!!! ' ********************************** ' * Act 4: * ' * FLEXES * ' ********************************** ' changed to new AXE3 sensor , 10.2007 ' needs revision as we did a rebuild of Flex in 2016 %Axe3ListenTaskNr = 2 ' 27.10.2007 GLOBAL pAXE3 AS Axe_Type PTR ' new version 27.10.2007 %Flexes = 32 ' 2 ADXL devices as controllers for Flex: one connected to the Flex-server, one ' from the central server, steering Flex with midi commands. ' Done this way, since we do not have enough serial ports on the laptops. ' The code for this piece should be started with a midi command from the M&M server. ' It is part of the Faust compilation. The constant is both defined in the Faust code and in ' the flex code. %Flexes_pip = %Flexes + 1 ' 20 - piperola task %Flexes_tubi = %Flexes + 2 ' 21 - tubi task %Flexes_vibi = %Flexes + 3 %Flexes_klung = %Flexes + 4 %Flexes_harma = %Flexes + 5 ' harma task %Flexes_Har = %Flexes + 6 ' global harmony task %Flexes_Calm = %Flexes + 7 ' intro - bemastering of homunculus by Faust ' the flex section starts on stopping this task. %Flexes_Last = %Flexes + 7 ' shift up if more procs are added ' *********************************** ' * Act 5 : TEKNE * ' *********************************** TYPE TekneType DWORD speedprop AS SINGLE ' added 24.07.2002 duur AS DWORD ' in seconds Klung_Tog AS DWORD Troms_Tog AS DWORD Bourdonola_Tog AS DWORD Piperola_Tog AS DWORD Harma_Tog AS DWORD Rotomoton_Tog AS DWORD Piano_Tog AS DWORD Vibi_Tog AS DWORD Thunderwood_Tog AS DWORD Sax_Tog AS DWORD ' implemented 24.07.2003 Belly_Tog AS DWORD Humanola_Tog AS DWORD Springers_Tog AS DWORD Xy_Tog AS DWORD ' 14.05.2007 Klung_Level AS DWORD Troms_Level AS DWORD Bourdonola_Level AS DWORD Piperola_Level AS DWORD Harma_Level AS DWORD Rotomoton_Level AS DWORD Piano_Level AS DWORD Vibi_Level AS DWORD Thunderwood_Level AS DWORD Sax_Level AS DWORD Belly_Level AS DWORD Humanola_Level AS DWORD Springers_Level AS DWORD Xy_Level AS DWORD Klung_on AS DWORD Troms_on AS DWORD Bourdonola_on AS DWORD Piperola_on AS DWORD Harma_on AS DWORD Rotomoton_on AS DWORD Piano_on AS DWORD Vibi_on AS DWORD Thunderwood_on AS DWORD Sax_on AS DWORD Belly_on AS DWORD Humanola_on AS DWORD Springers_on AS DWORD Xy_On AS DWORD END TYPE GLOBAL Tekne AS TekneType GLOBAL f_Fakt AS SINGLE ' for scaling and remapping of velocities with radar. GLOBAL f_ex AS SINGLE ' dito exponent ' *********************************** ' * Act 6 : PARADISO * ' * scene for the Walpurgisnacht * ' * orgie * ' *********************************** TYPE ParadisoType DWORD duur AS DWORD ' in seconds spekfak AS SINGLE ' spectral modulation factor oTc AS INTEGER ' previous fundamental section AS DWORD ' = duur / 12 marker(0 TO 20) AS DWORD ' markers for score clock AS DWORD ' synchronisation clock v1flag AS DWORD ' vibi part1 signal v2flag AS DWORD ' vibi part2 signal v3flag AS DWORD ' harma part signal v6flag AS DWORD ' piperola part signal v7flag AS DWORD ' player piano signal endflag AS DWORD ' set when the second part is to start demping AS DWORD ' voor vibi sustain AS DWORD ' voor vibi dampmode AS WORD ' voor vibi END TYPE %tvp0 = 33 ' start-up task for ca.10' ' following tasks may be overwritten: (They are created when is started) %tvp1 = 48 '0 ' vibi %tvp2 = 49 '1 ' vibi %tvp12 = 24 ' Vibi %tvp3 = 50 '2 ' Harma %tvp4 = 25 ' Klung %tvp5 = 26 ' motor task for 'Vibes' %tvp6 = 52 '4 ' Piperola / Bourdonola %tvp7 = 51 '3 ' Player piano %tvp8 = 27 ' real musicians %tvp9 = 28 ' ending task. GLOBAL Paradiso AS ParadisoType '*************************************** '* Act: WANDERN * '* Wandering Quadrada Space * '*************************************** ' constants in wander.inc '*************************************** '* Act: GNOS * '*************************************** %Goethe = 32 ' Reads Goethe Faust 1 & 2, outputs each verse as H() en Ritm structure %Gnos_Gesture = 34 %Gnos_Larynx_Bour = 36 %Gnos_Larynx_Huma = 37 %Gnos_Sire = 39 ' gesture on sire %Gnos_Sirlit = 48 ' lites only task (Gesture controlled) %Softsnar = 47 ' switches snar's snares gently on. '%Sax_No_Wind = 46 ' emergency patch - removed 31.03.2009 TYPE Gnos_Type DWORD voicenote AS BYTE ' basic pitch of speaking voice - depends on persona rol AS STRING * 1 ' F= Faust, M=Mefisto, H=Homunkulus, W=Wagner, K= vrouwelijk personage, P= mannelijkpersonage oldrol AS STRING * 1 vibi AS LONG piperola AS LONG so AS LONG bourdonola AS LONG krum AS LONG humanola AS LONG ake AS LONG bako AS LONG ' added 01.01.2007 heli AS LONG ' added 21.03.2009 sax AS LONG ' added 31.03.2009 bono AS LONG ' added 31.03.2009 ob AS LONG ' added 31.03.2009 qt AS LONG ' added 31.03.2009 tekst AS DWORD ' sets the parameter for the text input files. faustfile AS STRING * 40 END TYPE %gwkompil = 1968 ' params voor gnos.tekst %jwgoethe = 1800 GLOBAL Gnos AS Gnos_Type GLOBAL HR AS HarryType '06.06.06 - 32kByte ' ************************************** ' * Act : TANGO * ' * ************************************ %Faust_Tango = 48 ' test - doubled in the include! %Faust_Dance = 32 %Faust_Dop = 40 ' doppler test ii_2000 NiDAQmx TYPE Faust_Dance_Type DWORD tc AS BYTE ' tonal center - grondtoon akkoorden nextnote AS BYTE chordtype AS STRING * 20 ritpat (0 TO 30) AS STRING * 255 nrpats AS DWORD tiks_per_beat AS DWORD tiks_per_bar AS DWORD nrbeats AS DWORD maat AS DWORD ' maatteller beat AS DWORD ' beat teller tik AS DWORD ' tikteller velfak AS SINGLE ' scaling factor for velocities (normalized) END TYPE GLOBAL Fd AS Faust_Dance_Type ' ************************************** ' * Act : DESCENT * ' ************************************** TYPE Descent_Type DWORD Tprop AS SINGLE ' 0 - 1 in de loop van het stuk tc AS INTEGER ' descending tonal center in midi notes tcf AS SINGLE ' fractional midi f AS SINGLE ' frequency tcq AS SINGLE ' quartertones flex AS LONG ' on off switch for flex pipos AS LONG epos AS LONG lowtes AS DWORD hightes AS DWORD END TYPE GLOBAL Des AS Descent_Type ' task constants are declared in descent.inc '*************************************** ' * Act: AuxArbres * ' ************************************** ' instrumentatie: , , , , , ' + alle instrumenten met lichteffekten: , , , , ' 17.10.2004 %AuxArbres = 32 ' Aux Arbres %Hurdy_vl = 33 %hurdy_vh = 34 %AuxArbres_Fill = 35 %AuxArbres_Sync = 36 %AuxArbres_End = 37 %AA_Roffel = 38 TYPE AuxArbresType DWORD Hurdylow AS INTEGER ' sounding note on hurdy low string (with rhythm!) HurdyHigh AS INTEGER ' sounding note on hurdy high string (with rhythm) HurTransLow AS INTEGER ' note transposed such as hurdy should play it (without rhythm) HurTransHigh AS INTEGER ' note transposed such as hurdy should play it (without rhythm) Bnote AS INTEGER ' additionele basnoot berekend in de main task Mnote AS INTEGER ' additionele middennoot berekend in de main task Hnote AS INTEGER ' hurdy high note as it sounds (without rhytm) Lnote AS INTEGER ' hurdy low note as it sounds (without rhytm) cnr AS INTEGER ' chordnumber ctp AS LONG ' chordtype tc AS INTEGER ' induced tonal center tempofaktor AS SINGLE ' tempo modulatie in funtie van het harmonisch verloop (main task) fillfaktor AS SINGLE ' tempo relatie tussen main hurdy task en de fill task. H AS HarmType ' global harmony for aux arbres sync AS INTEGER endflag AS INTEGER ' for the Aux Arbres task. lowpress AS INTEGER ' bow pressure for hurdy low string highpress AS INTEGER ' bow pressure for hurdy high string bowspeed AS INTEGER ' motor speed (set via Hurdy.ctrl(7) mel(0 TO 63) AS LONG melsize AS LONG ' aantal intervallen in melodie Hurdy_LowEndflag AS BYTE Hurdy_HighEndFlag AS BYTE Ake_EndFlag AS BYTE Bourdonola_EndFlag AS BYTE Piperola_EndFlag AS BYTE END TYPE GLOBAL AA AS AuxArbresType ' ***************************************************************** ' * Act: TransiTrance * ' ***************************************************************** ' uses Quadrada radar setup as well as PicRadar! ' uses CQT device for audio feedback ' essential robots: ,,,,,,,,, ' , , ' secondary robots: ,,,, , ' not used sofar: ,,,, ' for RadarPic support: GLOBAL pRadPic() AS RadarPicController PTR ' in g_lib.dll - g_midi.inc TYPE TranceType DWORD Spekfak AS SINGLE Oldspekfak AS SINGLE Speklim AS WORD Hk AS Harmtype ' chromatic hartype, 12tone normal Hq AS Harmtype ' same for the quartertones so_noot AS INTEGER trump_noot AS INTEGER ake_noot AS INTEGER humanola_noot AS INTEGER harma_noot AS INTEGER piperola_noot AS INTEGER klung_noot AS INTEGER tubi_noot AS INTEGER vibi_noot AS INTEGER piano_noot AS INTEGER puff_noot AS INTEGER bourdonola_noot AS INTEGER sax_noot AS INTEGER belly_noot AS INTEGER vacca_noot AS INTEGER llor_noot AS INTEGER tc(20) AS INTEGER ' modulatieschema sf(20) AS SINGLE ' spectral exponents for modulations sectioncounter AS DWORD ' counter END TYPE GLOBAL Trance AS TranceType %Trance_Glob = 32 %Trance_Vacca_Object = 33 ' picra(0) mapped for belly parts. %Trance_Sp = 34 ' spectral compositional object - quadrada mapped %Trance_Ch = 35 ' chord object %TRance_Si = 36 ' sire object %Trance_Sl = 37 ' slierten objekt %TRance_SlVibi= 38 ' slierten objekt voor vibi %Trance_Ake = 39 ' ake object %Trance_Casta = 40 ' casta object %Trance_Hu = 41 ' hurdy object = picra(1) mapped %TRance_Pia = 42 ' piano object- cqt mapped %Trance_End = 47 ' final chord #IF NOT %DEF(%Radar_listen) %Radar_Listen = 17 ' Picra listentask. #ENDIF 'EOF