尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗En modern webbapp för körsånger med ackord, byggd som en PWA för GitHub Pages. ES-moduler, offline-stöd via Service Worker och valfritt byggsystem med esbuild.
Klicka på ett ackorddiagram för att se alternativa grepp för samma ackord:
En fast bottenrad används på alla enheter med tre knappar:
På desktop finns även i inställningsbladet:
Alla inställningar sparas lokalt på enheten.
?haft=demestkoren öppnar appen direkt i rätt häfteKnappen ⭳ Från urklipp (under ⚙ Inställningar) visas bara när appen körs lokalt, precis som låtredaktören. Den öppnar en dialog där du klistrar in ackord/text kopierad från valfri ackordsida (t.ex. Ultimate Guitar):
[G]text), samt [Vers]/[Refräng]-headers, byggs om till Låtboks format med bibehållen kolumnjusteringKey:/Capo:-rader om de finns med i den inklistrade texten (annars fyller du i själv)python server.py), precis som låtredaktörenKnappen ✎ Redigera låt öppnar ett strukturerat redigeringsläge direkt i webbläsaren:
| för att markera taktgränserlatbok/
├── index.html ← Huvudsida (HTML-skelett)
├── style.css ← All styling
├── app.js ← Huvudlogik (rendering, redaktör, autoscroll) — ES-modul
├── chords.js ← Ackordbibliotek, transponering, SVG-diagram — ES-modul
├── sw.js ← Service Worker (offline-caching)
├── package.json ← npm-skript och devDependencies
├── scripts/
│ └── build.js ← Fullständigt dist-bygge (esbuild + kopiera assets)
├── tests/
│ └── chords.test.js ← Enhetstester (Node.js test runner)
├── README.md
└── songs/ ← Låtfiler (en JSON-fil per låt)
├── index.json ← Lista med alla låtfiler (styr menyn)
└── *.json ← En fil per låt
songs/Definiera återkommande ackordföljder i chordTemplates och referera till dem med @mallnamn i "c"-fältet. Separera takter med | i både ackord och text.
{
"title": "Låtens namn",
"artist": "Artist / Kompositör",
"key": "Am",
"timeSignature": "4/4",
"difficulty": "Medel",
"chordTemplates": {
"vers": "Am|F|G|Am",
"refr": "F|G|C|Am"
},
"sections": [
{
"label": "Vers 1",
"lines": [
{ "c": "@vers", "l": "Här skrivs |texten uppdelad |i fyra |takter." },
{ "c": "@vers", "l": "Andra raden |med samma |ackord|följd." }
]
},
{
"label": "Refräng",
"lines": [
{ "c": "@refr", "l": "Refrängen |kan ha en |annan |ackordföljd." }
]
}
]
}
Varje rad har två fält:
"c" — ackordrad: antingen @mallnamn eller ackord separerade med |"l" — textrad separerad med | (ett segment per takt)Giltiga värden för difficulty: Lätt, Medel, Svår
Obs: Om ett ord delas av ett taktstreck hanterar appen detta automatiskt — hela ordet visas i rätt takt.
Många visor börjar med en eller några stavelser innan första taktslaget. Markera detta med . (punkt) som första takt i ackordmallen — cellen renderas då kursivt med streckad taktlinje och utan ackordnamn.
Tumregler:
| Förklaring | |
|---|---|
. som första takt | Förslag — texten visas kursivt med streckad kant |
Antal | i c och l | Måste vara lika — varje takt matchar ett lyrikavsnitt |
chordTemplates | Återanvänd ackordföljder med @mallnamn |
Avslutande | | Ok att ha — sista cellen lämnas tom |
{
"title": "En enkel visa",
"artist": "Trad.",
"key": "G",
"timeSignature": "4/4",
"difficulty": "Lätt",
"chordTemplates": {
"vers": "G|D|Em|C",
"refräng": "C|G|D|G"
},
"sections": [
{
"label": "Vers",
"lines": [
{ "c": "@vers", "l": "Solen skiner |över skog och |mark i dag |och det är |" },
{ "c": "@refräng", "l": "skönt att |vara här till |sist nu |äntligen." }
]
}
]
}
{
"title": "Sommarpsalm",
"artist": "Trad.",
"key": "C",
"timeSignature": "4/4",
"difficulty": "Lätt",
"chordTemplates": {
"vers_a": ".|C|Am|F|G",
"vers_b": ".|F|G|C|C"
},
"sections": [
{
"label": "Vers 1",
"lines": [
{ "c": "@vers_a", "l": "Nu är det |dags att |sjunga vår |sommarvisa |" },
{ "c": "@vers_b", "l": "för dig och |mig och |alla vi |känner. |" }
]
}
]
}
{
"title": "Vallvisa",
"artist": "Trad.",
"key": "Am",
"timeSignature": "3/4",
"difficulty": "Lätt",
"chordTemplates": {
"vers_a": ".|Am|Am|E7|E7",
"vers_b": ".|Am|E7|Am|Am"
},
"sections": [
{
"label": "Vers 1",
"lines": [
{ "c": "@vers_a", "l": "Långt i |skogen |bortom |stigen |" },
{ "c": "@vers_b", "l": "hördes |klockor |klinga |sakta. |" }
]
}
]
}
{
"title": "Låtens namn",
"artist": "Artist / Kompositör",
"key": "Am",
"sections": [
{
"label": "Vers 1",
"lines": [
{ "c": "Am F G", "l": "Här skrivs texten med ackord ovanför." },
{ "c": "C Am", "l": "Ackorden placeras med mellanslag." }
]
}
]
}
songs/index.json[
"amazing_grace.json",
"bella_ciao.json",
"din_nya_lat.json"
]
Ordningen i listan styr ordningen i menyn.
Appen läser songs/index.json vid laddning och hämtar varje låtfil dynamiskt.
Filen chords.js innehåller ~200 gitarrackord med fingersättningar plus ~120 alternativa
grepp. Samtliga kategorier täcker alla 12 grundtoner:
| Kategori | Täckning |
|---|---|
| Dur | Alla 12 grundtoner |
| Moll | Alla 12 grundtoner |
| 7 (dominant) | Alla 12 grundtoner |
| m7 (moll 7) | Alla 12 grundtoner |
| m6 (moll 6) | Alla 12 grundtoner |
| maj7 | Alla 12 grundtoner |
| sus4 | Alla 12 grundtoner |
| sus2 | Alla 12 grundtoner |
| add9 | Alla 12 grundtoner |
| dim | Alla 12 grundtoner |
| dim7 | Alla 12 grundtoner |
| aug | Alla 12 grundtoner |
| 9 (dominant) | Alla 12 grundtoner |
| m7b5 (halvförminskad) | Alla 12 grundtoner |
| 7+ (dominant #5) | Alla 12 grundtoner |
| Slash-ackord | C/G, C/B, C/E, G/B, Am/E, Dm/F, E7/G#, E7/B, A7/C# m.fl. |
Enharmoniska namn slås upp automatiskt (D#7 hittar Eb7), så en grundton per kategori
räcker med en stavning. Diagram genereras som SVG direkt i webbläsaren. Ackord som saknas
i biblioteket hoppas över (och visas som varning i redaktören).
tests/chords-lib.test.js räknar ut vilka toner varje grepp faktiskt ger och jämför med
ackordnamnet — nya grepp med fel band eller kategorier som tappar en grundton fastnar i CI.
För att lägga till ett nytt ackord, utöka CHORD_LIB i chords.js:
'Cadd9': { frets: [-1,3,2,0,3,0], fingers: [0,2,1,0,3,0] },
Format: frets = greppet per sträng (E A D G B e), där -1 = dämpad, 0 = öppen.
Låtredaktörens sparfunktion kräver en lokal server som hanterar POST /save-song. Starta med:
python server.py
På GitHub Pages (produktion) är sparknappen inaktiverad — redigera JSON-filerna lokalt och pusha.
Sidan hostas gratis via GitHub Pages:
https://ditt-användarnamn.github.io/reponamn/| Funktion | Chrome/Edge | Safari | Firefox |
|---|---|---|---|
| Grundfunktioner | ✅ | ✅ | ✅ |
| Ackorddiagram | ✅ | ✅ | ✅ |
| Taktbaserad layout | ✅ | ✅ | ✅ |
| Autoscroll | ✅ | ✅ | ✅ |
| Låtredaktör | ✅ | ✅ | ✅ |