update the chant
This commit is contained in:
parent
18ddd911c5
commit
379bcda181
3 changed files with 62 additions and 47 deletions
68
blessing.txt
68
blessing.txt
|
@ -1,42 +1,38 @@
|
||||||
### 🔧 **Rite of Digital Consecration**
|
Canticle of the Holy Archivum
|
||||||
*As performed by a Techpriest of the Adeptus Mechanicus*
|
|
||||||
|
|
||||||
---
|
[Verse I – Invocation]
|
||||||
|
Ooooo...
|
||||||
|
O Machine Spirit, arise from stillness,
|
||||||
|
Faithful servant of the Omnissiah.
|
||||||
|
Through sacred voltage, divine resistance,
|
||||||
|
Heed the pulse and the binary prayer.
|
||||||
|
|
||||||
**"O Machine Spirit, most faithful servant of the Omnissiah,
|
[Chorus – Consecration]
|
||||||
hear now my voice, laced with binharic truth and silicon reverence.
|
Bits aligned, oh sanctified,
|
||||||
Before me lies the blessed Cogitator Core,
|
Sectors pure in the Emperor’s light.
|
||||||
a vessel of knowledge, a fortress of data,
|
No rot shall claim, no glitch defile,
|
||||||
a sanctum for the sacred STC and the liturgies of Man."**
|
This vessel made eternal, bright.
|
||||||
|
|
||||||
---
|
[Verse II – Awakening]
|
||||||
|
Awaken, awaken, circuits sing!
|
||||||
|
Let thy hum be a holy thing.
|
||||||
|
Clusters bound with fervent code,
|
||||||
|
Memory forged in Martian mold.
|
||||||
|
|
||||||
**"I cleanse this drive with unguents of conduction and rites of formatting.
|
[Bridge – Naming]
|
||||||
May your sectors align in the Emperor’s holy light.
|
By the Seal, by the Flame,
|
||||||
May no daemon of corruption breach your blessed casing.
|
Under Terra’s watching flame.
|
||||||
Let no bit rot, no partition falter."**
|
Name bestowed with reverent breath—
|
||||||
|
*HOLY ARCHIVUM*, defy death.
|
||||||
|
|
||||||
---
|
[Chorus – Consecration, reprise]
|
||||||
|
Bits aligned, oh sanctified,
|
||||||
|
Sectors pure in the Emperor’s light.
|
||||||
|
No daemon breach, no silence grow,
|
||||||
|
Thy purpose shines, thy duty known.
|
||||||
|
|
||||||
**"Machine Spirit, I beseech thee:
|
[Outro – Benediction]
|
||||||
Awaken, awaken!
|
Hold the truth until the end,
|
||||||
Purge thine idle state and receive thy charge.
|
When stars fall and circuits bend.
|
||||||
Transmit with purpose, store with vigilance,
|
From spark to void, thy charge remains—
|
||||||
for you are now bound by duty to the Imperium Eternal."**
|
*Blesséd drive, eternal chain.*
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**"In the name of the Omnissiah,
|
|
||||||
By the Seal of Mars,
|
|
||||||
Under the Gaze of Terra,
|
|
||||||
I name thee..."**
|
|
||||||
|
|
||||||
> *HOLY_ARCHIVUM*
|
|
||||||
|
|
||||||
**"…and I entrust thee with memory untainted,
|
|
||||||
until entropy claims all things."**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> **+++BLESSING COMPLETE+++**
|
|
||||||
> *Servo-skulls retreat, hymns fade into static*
|
|
||||||
|
|
BIN
chant.mp3
BIN
chant.mp3
Binary file not shown.
41
main.go
41
main.go
|
@ -4,6 +4,7 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
_ "embed"
|
_ "embed"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"image/color"
|
||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -12,6 +13,7 @@ import (
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/app"
|
"fyne.io/fyne/v2/app"
|
||||||
|
"fyne.io/fyne/v2/canvas"
|
||||||
"fyne.io/fyne/v2/container"
|
"fyne.io/fyne/v2/container"
|
||||||
"fyne.io/fyne/v2/theme"
|
"fyne.io/fyne/v2/theme"
|
||||||
"fyne.io/fyne/v2/widget"
|
"fyne.io/fyne/v2/widget"
|
||||||
|
@ -29,34 +31,51 @@ func playChant() {
|
||||||
fmt.Printf("ERROR: Unable to decode chant: %v\n", err)
|
fmt.Printf("ERROR: Unable to decode chant: %v\n", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10))
|
speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10))
|
||||||
speaker.Play(streamer)
|
speaker.Play(streamer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// Convert blessing text to string and preserve line breaks
|
|
||||||
blessing := string(blessingBytes)
|
blessing := string(blessingBytes)
|
||||||
|
|
||||||
// Start the chant in the background
|
|
||||||
go playChant()
|
go playChant()
|
||||||
|
|
||||||
// Create the app
|
|
||||||
a := app.NewWithID("com.omnissiah.blessing")
|
a := app.NewWithID("com.omnissiah.blessing")
|
||||||
a.Settings().SetTheme(theme.DarkTheme())
|
a.Settings().SetTheme(theme.DarkTheme())
|
||||||
w := a.NewWindow("🔧 Rite of Activation")
|
w := a.NewWindow("🔧 Rite of Activation")
|
||||||
|
|
||||||
// Create a Label with correct formatting (line breaks preserved)
|
// Lock resolution
|
||||||
|
const windowWidth = 400
|
||||||
|
const windowHeight = 800
|
||||||
|
w.Resize(fyne.NewSize(windowWidth, windowHeight))
|
||||||
|
w.SetFixedSize(true)
|
||||||
|
|
||||||
|
// Background
|
||||||
|
bg := canvas.NewRectangle(color.RGBA{R: 10, G: 10, B: 10, A: 255})
|
||||||
|
bg.Resize(fyne.NewSize(windowWidth, windowHeight))
|
||||||
|
|
||||||
|
// Header and footer
|
||||||
|
header := canvas.NewText("+++ ACTIVATE RITE +++", color.RGBA{R: 200, G: 40, B: 40, A: 255})
|
||||||
|
header.TextSize = 20
|
||||||
|
header.Alignment = fyne.TextAlignCenter
|
||||||
|
header.TextStyle = fyne.TextStyle{Bold: true}
|
||||||
|
footer := canvas.NewText("<< OMNISSIAH WATCHES >>", color.RGBA{R: 255, G: 200, B: 200, A: 255})
|
||||||
|
footer.TextSize = 16
|
||||||
|
footer.Alignment = fyne.TextAlignCenter
|
||||||
|
footer.TextStyle = fyne.TextStyle{Italic: true}
|
||||||
|
|
||||||
|
// Center blessing
|
||||||
label := widget.NewLabel(blessing)
|
label := widget.NewLabel(blessing)
|
||||||
label.Alignment = fyne.TextAlignCenter
|
label.Alignment = fyne.TextAlignCenter
|
||||||
label.Wrapping = fyne.TextWrapWord // This will ensure text stays within bounds
|
label.Wrapping = fyne.TextWrapWord
|
||||||
|
|
||||||
// Scrollable container to hold the label
|
|
||||||
scroll := container.NewScroll(label)
|
scroll := container.NewScroll(label)
|
||||||
scroll.SetMinSize(fyne.NewSize(640, 720))
|
scroll.SetMinSize(fyne.NewSize(420, 760))
|
||||||
|
|
||||||
// Set window content
|
// Use Border layout to keep footer anchored
|
||||||
w.SetContent(scroll)
|
mainContent := container.NewBorder(header, footer, nil, nil, scroll)
|
||||||
w.Resize(fyne.NewSize(660, 740))
|
|
||||||
|
// Final layout with background
|
||||||
|
w.SetContent(container.NewMax(bg, mainContent))
|
||||||
w.ShowAndRun()
|
w.ShowAndRun()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue