137 lines
3.8 KiB
Markdown
137 lines
3.8 KiB
Markdown
---
|
|
id:
|
|
aliases: []
|
|
title: 2025-12-19
|
|
tags:
|
|
- authorship/original
|
|
- destiny/permanent
|
|
- status/draft
|
|
- type/daily
|
|
---
|
|
# 2025-12-19
|
|
|
|
## 2025-12-19 06:22
|
|
|
|
PowerShell module to assist in translating between banjo fingerings and concert notes,
|
|
as well as between [[lilypond]] and conventional notation.
|
|
|
|
```powershell
|
|
$Db4 = [Pitch]::FromLilyPond("des'")
|
|
[Note]::($Db4,1/4).PlayInTime(120)
|
|
|
|
$str1 = [FrettedStringTuning]::FromOpen([Pitch]::FromLilyPond("d,,,"))
|
|
$str1c2 = $str1.Capo(2)
|
|
|
|
$openGtuning = [FrettedStringInstrumentTuning]::FromStringTunings(@(
|
|
[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.
|
|
))
|
|
[Note]::($openGc2tuning.GetPitchFromFingering(4,11)/4).PlayInTime(120) # play Db4
|
|
|
|
$openGc2tuning = $openGtuning.Capo(2)
|
|
[Note]::($openGc2tuning.GetPitchFromFingering(4,9),1/4).PlayInTime(120) # play Db4
|
|
|
|
# TODO: class iFrettedStringInstrument
|
|
# class Banjo implements iFrettedStringInstrument
|
|
|
|
```
|
|
|
|
```powershell
|
|
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.
|