vault backup: 2025-12-19 13:13:11
This commit is contained in:
+104
-16
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id:
|
||||
aliases: []
|
||||
title: "2025-12-19"
|
||||
title: 2025-12-19
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
@@ -16,33 +16,121 @@ PowerShell module to assist in translating between banjo fingerings and concert
|
||||
as well as between [[lilypond]] and conventional notation.
|
||||
|
||||
```powershell
|
||||
$Db4 = [Note]::FromLilyPond("des'")
|
||||
$Db4.PlayInTime(1/4,120)
|
||||
$Db4 = [Pitch]::FromLilyPond("des'")
|
||||
[Note]::($Db4,1/4).PlayInTime(120)
|
||||
|
||||
$str1 = [FrettedStringTuning]::FromOpen([Note]::FromLilyPond("d,,,"))
|
||||
$str1 = [FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("d,,,"))
|
||||
$str1c2 = $str1.Capo(2)
|
||||
|
||||
$openGtuning = [FrettedStringInstrumentTuning]::FromStringTunings(@(
|
||||
[FrettedStringTuning]::FromOpen([Note]::FromLilyPond("d,,,")),
|
||||
[FrettedStringTuning]::FromOpen([Note]::FromLilyPond("b,,")),
|
||||
[FrettedStringTuning]::FromOpen([Note]::FromLilyPond("g,")),
|
||||
[FrettedStringTuning]::FromOpen([Note]::FromLilyPond("d")),
|
||||
[FrettedStringTuning]::FromOpen([Note]::FromLilyPond("g'")),
|
||||
[FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("d,,,")),
|
||||
[FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("b,,")),
|
||||
[FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("g,")),
|
||||
[FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("d")),
|
||||
[FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("g'")),
|
||||
# note: the notation used above is concert octave,
|
||||
# banjo is transposed up one octave.
|
||||
))
|
||||
$openGtuning.GetNoteFromFingering(4,11).PlayInTime(1/4,120) # play Db4
|
||||
[Note]::($openGc2tuning.GetPitchFromFingering(4,11)/4).PlayInTime(120) # play Db4
|
||||
|
||||
$openGc2tuning = $openGtuning.Capo(2)
|
||||
$openGc2tuning.GetNoteFromFingering(4,9).PlayInTime(1/4,120) # play Db4
|
||||
[Note]::($openGc2tuning.GetPitchFromFingering(4,9),1/4).PlayInTime(120) # play Db4
|
||||
|
||||
# TODO: class FrettedStringInstrument
|
||||
# TODO: class iFrettedStringInstrument
|
||||
# class Banjo implements iFrettedStringInstrument
|
||||
|
||||
```
|
||||
|
||||
```powershell
|
||||
class Note {
|
||||
[Note] TransposeOctave([Note]$note1,[Note]$note2) {}
|
||||
[Note] TransposeOctave([int]$modifier) {}
|
||||
class Pitch {
|
||||
[Pitch] TransposeOctave([Note]$note1,[Note]$note2) {}
|
||||
[Pitch] TransposeOctave([int]$modifier) {}
|
||||
}
|
||||
```
|
||||
|
||||
class Duration {
|
||||
# 1/4, 1/8, etc.
|
||||
# does not encode timing.
|
||||
}
|
||||
|
||||
class Note {
|
||||
[Pitch]$_pitch
|
||||
[Duration]$_duration
|
||||
}
|
||||
```
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
%% simple score definition, does not support polyphony
|
||||
class Score {
|
||||
List~Note~ notes
|
||||
float beatsPerMinute
|
||||
+Beep() void
|
||||
}
|
||||
|
||||
Score *-- Note
|
||||
class Note {
|
||||
Pitch pitch
|
||||
float beats
|
||||
+BeepInTime(int bpm)
|
||||
}
|
||||
|
||||
Note *-- Pitch
|
||||
class Pitch {
|
||||
+Transpose(Pitch from, Pitch to) Pitch
|
||||
+TransposeOctave(int modifier) Pitch
|
||||
+FromLilyPond(string text) Pitch
|
||||
+GetFrequency() float
|
||||
+Beep(int milliseconds) void
|
||||
}
|
||||
|
||||
class Banjo {
|
||||
+FromNamedTuning(string tuningName) Banjo
|
||||
}
|
||||
|
||||
Banjo <|.. iFrettedStringInstrument
|
||||
class iFrettedStringInstrument {
|
||||
-FrettedStringInstrumentTuning tuning
|
||||
+GetPitchFromFingering(int string,int fret) Pitch
|
||||
+GetFingeringsFromPitch(Pitch pitch) todo
|
||||
}
|
||||
|
||||
iFrettedStringInstrument *-- FrettedStringInstrumentTuning
|
||||
class FrettedStringInstrumentTuning {
|
||||
-List~FrettedStringTuning~ stringTunings
|
||||
+GetPitchFromFingering(int string,int fret) Pitch
|
||||
+GetFingeringsFromPitch(Pitch pitch) todo
|
||||
+Capo(int fret) FrettedStringInstrumentTuning
|
||||
}
|
||||
|
||||
FrettedStringInstrumentTuning *-- FrettedStringTuning
|
||||
class FrettedStringTuning {
|
||||
Pitch openPitch
|
||||
int fretOffset
|
||||
+GetPitchFromFret(int fret) Pitch
|
||||
+SetOffset(int fret) FrettedStringTuning
|
||||
}
|
||||
```
|
||||
|
||||
## 2025-12-19 10:44
|
||||
|
||||
#occupational/takeoff
|
||||
|
||||
> [!quote] Art Baldwin 2025-12-19, in reference to Howard University East Towers (pp.)
|
||||
> When using PVC slab box assemblies where substantial insulation
|
||||
> (e.g mineral wool, spray foam) is to be applied,
|
||||
> add extension rings to compensate for the thickness
|
||||
|
||||
## 2025-12-19 10:44
|
||||
|
||||
#occupational/takeoff
|
||||
|
||||
This week (2025w51)
|
||||
William Bonn, as part of [[units-takeoff]] for Howard University East Towers,
|
||||
used an `Area` "Typical - Unit Balconies" for `Phase` "UNIT - RESIDENTIAL" takeoff.
|
||||
Our senior Joel Jansen approved of the method.
|
||||
|
||||
I'd like to use the method tentatively for takeoff strictly typical of all units
|
||||
(e.g. master switches, MSDE's, etc.),
|
||||
but there is potential for significant efficiency gains
|
||||
in treating units like panelboards in [[switchgear-takeoff]]:
|
||||
picking one unit type to be typical of many nearly identical types.
|
||||
|
||||
Reference in New Issue
Block a user