fetches plans so far, TODO: prepare for going public: translate, comment

This commit is contained in:
2023-10-08 21:46:31 +02:00
parent 1eaaf7adc3
commit fe76845566
8 changed files with 722 additions and 0 deletions

View File

@@ -0,0 +1 @@
<mxfile host="Electron" modified="2022-10-23T17:07:05.676Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="4SqUeJzxzycgGJatyyF2" version="20.3.0" type="device"><diagram id="R2lEEEUBdFMjLlhIrx00" name="Page-1">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</diagram></mxfile>

321
Satz.sql Normal file
View File

@@ -0,0 +1,321 @@
INSERT INTO Satz (Werk_id,Lfd_Satznummer,Bezeichnung,Tonart)
VALUES
(1,1,"Präludium","C-Dur"),
(1,2,"Fuge","C-Dur"),
(2,1,"Präludium","c-Moll"),
(2,2,"Fuge","c-Moll"),
(3,1,"Präludium","Cis-Dur"),
(3,2,"Fuge","Cis-Dur"),
(4,1,"Präludium","cis-Moll"),
(4,2,"Fuge","cis-Moll"),
(5,1,"Präludium","D-Dur"),
(5,2,"Fuge","D-Dur"),
(6,1,"Präludium","d-Moll"),
(6,2,"Fuge","d-Moll"),
(7,1,"Präludium","Es-Dur"),
(7,2,"Fuge","Es-Dur"),
(8,1,"Präludium","es-Moll"),
(8,2,"Fuge","dis-Moll"),
(9,1,"Präludium","E-Dur"),
(9,2,"Fuge","E-Dur"),
(10,1,"Präludium","e-Moll"),
(10,2,"Fuge","e-Moll"),
(11,1,"Präludium","F-Dur"),
(11,2,"Fuge","F-Dur"),
(12,1,"Präludium","f-Moll"),
(12,2,"Fuge","f-Moll"),
(13,1,"Präludium","Fis-Dur"),
(13,2,"Fuge","Fis-Dur"),
(14,1,"Präludium","fis-Moll"),
(14,2,"Fuge","fis-Moll"),
(15,1,"Präludium","G-Dur"),
(15,2,"Fuge","G-Dur"),
(16,1,"Präludium","g-Moll"),
(16,2,"Fuge","g-Moll"),
(17,1,"Präludium","As-Dur"),
(17,2,"Fuge","As-Dur"),
(18,1,"Präludium","gis-Moll"),
(18,2,"Fuge","gis-Moll"),
(19,1,"Präludium","A-Dur"),
(19,2,"Fuge","A-Dur"),
(20,1,"Präludium","a-Moll"),
(20,2,"Fuge","a-Moll"),
(21,1,"Präludium","B-Dur"),
(21,2,"Fuge","B-Dur"),
(22,1,"Präludium","b-Moll"),
(22,2,"Fuge","b-Moll"),
(23,1,"Präludium","H-Dur"),
(23,2,"Fuge","H-Dur"),
(24,1,"Präludium","h-Moll"),
(24,2,"Fuge","h-Moll"),
(25,1,"Präludium","C-Dur"),
(25,2,"Fuge","C-Dur"),
(26,1,"Präludium","c-Moll"),
(26,2,"Fuge","c-Moll"),
(27,1,"Präludium","Cis-Dur"),
(27,2,"Fuge","Cis-Dur"),
(28,1,"Präludium","cis-Moll"),
(28,2,"Fuge","cis-Moll"),
(29,1,"Präludium","D-Dur"),
(29,2,"Fuge","D-Dur"),
(30,1,"Präludium","d-Moll"),
(30,2,"Fuge","d-Moll"),
(31,1,"Präludium","Es-Dur"),
(31,2,"Fuge","Es-Dur"),
(32,1,"Präludium","dis-Moll"),
(32,2,"Fuge","dis-Moll"),
(33,1,"Präludium","E-Dur"),
(33,2,"Fuge","E-Dur"),
(34,1,"Präludium","e-Moll"),
(34,2,"Fuge","e-Moll"),
(35,1,"Präludium","F-Dur"),
(35,2,"Fuge","F-Dur"),
(36,1,"Präludium","f-Moll"),
(36,2,"Fuge","f-Moll"),
(37,1,"Präludium","Fis-Dur"),
(37,2,"Fuge","Fis-Dur"),
(38,1,"Präludium","fis-Moll"),
(38,2,"Fuge","fis-Moll"),
(39,1,"Präludium","G-Dur"),
(39,2,"Fuge","G-Dur"),
(40,1,"Präludium","g-Moll"),
(40,2,"Fuge","g-Moll"),
(41,1,"Präludium","As-Dur"),
(41,2,"Fuge","As-Dur"),
(42,1,"Präludium","gis-Moll"),
(42,2,"Fuge","gis-Moll"),
(43,1,"Präludium","A-Dur"),
(43,2,"Fuge","A-Dur"),
(44,1,"Präludium","a-Moll"),
(44,2,"Fuge","a-Moll"),
(45,1,"Präludium","B-Dur"),
(45,2,"Fuge","B-Dur"),
(46,1,"Präludium","b-Moll"),
(46,2,"Fuge","b-Moll"),
(47,1,"Präludium","H-Dur"),
(47,2,"Fuge","H-Dur"),
(48,1,"Präludium","h-Moll"),
(48,2,"Fuge","h-Moll")
;
INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart)
VALUES
(49, 1, 1, 'Allegro', 'f-Moll'),
(49, 2, 1, 'Adagio', 'F-Dur'),
(49, 3, 1, 'Menuetto Allegretto', 'f-Moll'),
(49, 4, 1, 'Prestissimo', 'f-Moll'),
(50, 1, 2, 'Allegro vivace', 'A-Dur'),
(50, 2, 2, 'Largo', 'D-Dur'),
(50, 3, 2, 'Scherzo Allegretto', 'A-Dur'),
(50, 4, 2, 'Rondo Grazioso', 'A-Dur'),
(51, 1, 3, 'Allegro con brio', 'C-Dur'),
(51, 2, 3, 'Adagio', 'E-Dur'),
(51, 3, 3, 'Scherzo Allegro', 'C-Dur'),
(51, 4, 3, 'Allegro assai', 'C-Dur'),
(52, 1, NULL, 'Allegro molto e con brio', 'Es-Dur'),
(52, 2, NULL, 'Largo', 'C-Dur'),
(52, 3, NULL, 'Allegro', 'Es-Dur'),
(52, 4, NULL, 'Rondo Poco Allegretto e grazioso', 'Es-Dur'),
(53, 1, 1, 'Allegro molto e con brio', 'c-Moll'),
(53, 2, 1, 'Adagio molto', 'As-Dur'),
(53, 3, 1, 'Finale Prestissimo', 'c-Moll'),
(54, 1, 2, 'Allegro', 'F-Dur'),
(54, 2, 2, 'Allegretto', 'f-Moll'),
(54, 3, 2, 'Presto', 'F-Dur'),
(55, 1, 3, 'Presto', 'D-Dur'),
(55, 2, 3, 'Largo e mesto', 'd-Moll'),
(55, 3, 3, 'Menuetto Allegro', 'D-Dur'),
(55, 4, 3, 'Rondo Allegro', 'D-Dur'),
(56, 1, NULL, 'Grave Allegro di molto e con brio', 'c-Moll'),
(56, 2, NULL, 'Adagio', 'As-Dur'),
(56, 3, NULL, 'Rondo Allegro', 'c-Moll'),
(57, 1, 1, 'Allegro', 'E-Dur'),
(57, 2, 1, 'Allegretto', 'e-Moll'),
(57, 3, 1, 'Rondo Allegro commodo', 'E-Dur'),
(58, 1, 2, 'Allegro', 'G-Dur'),
(58, 2, 2, 'Andante', 'C-Dur'),
(58, 3, 2, 'Scherzo Allegro assai', 'G-Dur'),
(59, 1, NULL, 'Allegro con brio', 'B-Dur'),
(59, 2, NULL, 'Adagio', 'Es-Dur'),
(59, 3, NULL, 'Menuetto', 'B-Dur'),
(59, 4, NULL, 'Rondo Allegretto', 'B-Dur'),
(60, 1, NULL, 'Andante con Variazioni', 'As-Dur'),
(60, 2, NULL, 'Scherzo Allegro molto', 'As-Dur'),
(60, 3, NULL, 'Marcia funebre sulla morta dun Eroe', 'as-Moll'),
(60, 4, NULL, 'Allegro', 'As-Dur'),
(61, 1, 1, 'Andante', 'Es-Dur'),
(61, 2, 1, 'Allegro molto e vivace', 'c-Moll'),
(61, 3, 1, 'Adagio', 'As-Dur'),
(61, 4, 1, 'Allegro vivace', 'Es-Dur'),
(62, 1, 2, 'Adagio sostenuto', 'cis-Moll'),
(62, 2, 2, 'Allegretto', 'Des-Dur'),
(62, 3, 2, 'Presto', 'cis-Moll'),
(63, 1, NULL, 'Allegro', 'D-Dur'),
(63, 2, NULL, 'Andante', 'd-Moll'),
(63, 3, NULL, 'Scherzo Allegro vivace', 'D-Dur'),
(63, 4, NULL, 'Rondo Allegro ma non troppo', 'D-Dur')
;
INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart)
VALUES
(64, 1, 1, 'Allegro vivace', 'G-Dur'),
(64, 2, 1, 'Adagio grazioso', 'C-Dur'),
(64, 3, 1, 'Rondo Allegretto', 'G-Dur'),
(65, 1, 2, 'Largo Allegro', 'd-Moll'),
(65, 2, 2, 'Adagio', 'B-Dur'),
(65, 3, 2, 'Allegretto', 'd-Moll'),
(66, 1, 3, 'Allegro', 'Es-Dur'),
(66, 2, 3, 'Scherzo Allegretto vivace', 'As-Dur'),
(66, 3, 3, 'Menuetto Moderato e grazioso', 'Es-Dur'),
(66, 4, 3, 'Presto con fuoco', 'Es-Dur'),
(67, 1, 1, 'Andante', 'g-Moll'),
(67, 2, 1, 'Rondo Allegro', 'G-Dur'),
(68, 1, 2, 'Allegro, ma non troppo', 'G-Dur'),
(68, 2, 2, 'Tempo di Menuetto', 'G-Dur'),
(69, 1, NULL, 'Allegro con brio', 'C-Dur'),
(69, 2, NULL, 'Introduzione Adagio molto', 'F-Dur'),
(69, 3, NULL, 'Rondo Allegretto moderato', 'C-Dur'),
(70, 1, NULL, 'In Tempo dun Menuetto', 'F-Dur'),
(70, 2, NULL, 'Allegretto', 'F-Dur'),
(71, 1, NULL, 'Allegro assai', 'f-Moll'),
(71, 2, NULL, 'Andante con moto', 'Des-Dur'),
(71, 3, NULL, 'Allegro, ma non troppo', 'f-Moll'),
(72, 1, NULL, 'Adagio cantabile Allegro ma non troppo', 'Fis-Dur'),
(72, 2, NULL, 'Allegro vivace', 'Fis-Dur'),
(73, 1, NULL, 'Presto alla tedesca', 'G-Dur'),
(73, 2, NULL, 'Andante', 'g-Moll'),
(73, 3, NULL, 'Vivace', 'G-Dur'),
(74, 1, NULL, 'Das Lebewohl (Les Adieux) Adagio Allegro', 'Es-Dur'),
(74, 2, NULL, 'Die Abwesenheit (LAbsence) Andante espressivo', 'c-Moll'),
(74, 3, NULL, 'Das Wiedersehen (Le Retour) Vivacissimamente', 'Es-Dur'),
(75, 1, NULL, 'Mit Lebhaftigkeit und durchaus mit Empfindung und Ausdruck', 'e-Moll'),
(75, 2, NULL, 'Nicht zu geschwind und sehr singbar vorgetragen', 'E-Dur'),
(76, 1, NULL, 'Etwas lebhaft und mit der innigsten Empfindung', 'A-Dur'),
(76, 2, NULL, 'Lebhaft. Marschmäßig', 'F-Dur'),
(76, 3, NULL, 'Langsam und sehnsuchtsvoll', 'A-Dur'),
(77, 1, NULL, 'Allegro', 'B-Dur'),
(77, 2, NULL, 'Scherzo Assai vivace', 'B-Dur'),
(77, 3, NULL, 'Adagio sostenuto', 'fis-Moll'),
(77, 4, NULL, 'Introduzione Largo Allegro risoluto', 'B-Dur'),
(78, 1, NULL, 'Vivace, ma non troppo', 'E-Dur'),
(78, 2, NULL, 'Prestissimo', 'e-Moll'),
(78, 3, NULL, 'Gesang mit innigster Empfindung', 'E-Dur'),
(79, 1, NULL, 'Moderato cantabile, molto espressivo', 'As-Dur'),
(79, 2, NULL, 'Allegro molto', 'f-Moll'),
(79, 3, NULL, 'Adagio, ma non troppo', 'As-Dur'),
(80, 1, NULL, 'Maestoso Allegro con brio ed appassionato', 'c-Moll'),
(80, 2, NULL, 'Arietta Adagio molto, semplice e cantabile', 'C-Dur')
;
INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) VALUES
(81, 1, NULL, 'Introduzione Moderato', 'D-Dur'),
(81, 2, 1, NULL, 'D-Dur'),
(81, 3, 2, 'Prestissimo', 'Es-Dur'),
(81, 4, 3, NULL, 'fis-Moll'),
(81, 5, 4, 'Presto', 'fis-Moll'),
(81, 6, 5, NULL, 'B-Dur'),
(81, 7, 6, NULL, 'd-Moll'),
(81, 8, 7, 'Semplice', 'As-Dur'),
(81, 9, 8, NULL, 'Des-Dur'),
(81, 10, 9, 'Prestissimo', 'b-Moll'),
(81, 11, 10, 'Vivo', 'C-Dur'),
(81, 12, 11, NULL, 'D-Dur'),
(81, 13, 12, 'Finale', 'D-Dur')
;
INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) VALUES
(82, 1, 1, 'Allegro molto moderato', 'c-Moll'),
(82, 2, 2, 'Allegro', 'Es-Dur'),
(82, 3, 3, 'Andante', 'Ges-Dur'),
(82, 4, 4, 'Allegretto', 'As-Dur'),
(83, 1, 1, 'Allegro moderato', 'f-Moll'),
(83, 2, 2, 'Allegretto', 'As-Dur'),
(83, 3, 3, 'Thema Andante', 'B-Dur'),
(83, 4, 4, 'Allegro scherzando', 'f-Moll')
;
INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) VALUES
(84, 1, 1, 'Moderato', 'C-Dur'),
(84, 2, 2, 'Andantino', 'As-Dur'),
(84, 3, 3, 'Allegretto moderato', 'f-Moll'),
(84, 4, 4, 'Moderato', 'cis-Moll'),
(84, 5, 5, 'Allegro vivace', 'f-Moll'),
(84, 6, 6, 'Allegretto', 'As-Dur'),
(85, 1, NULL, 'Vivo', 'Es-Dur'),
(86, 1, 1, 'Vivace', 'As-Dur'),
(86, 2, 2, 'Lento', 'a-Moll'),
(86, 3, 3, 'Vivace', 'F-Dur'),
(87, 1, NULL, NULL, 'As-Dur'),
(88, 1, 1, 'Molto vivace', 'Des-Dur'),
(88, 2, 2, 'Tempo giusto', 'cis-Moll'),
(88, 3, 3, 'Moderato', 'As-Dur'),
(89, 1, 1, 'Tempo di Valse', 'As-Dur'),
(89, 2, 2, 'Moderato', 'h-Moll'),
(90, 1, 1, 'Molto vivace', 'Ges-Dur'),
(90, 2, 2, 'Tempo giusto', 'f-Moll'),
(90, 3, 3, 'Moderato', 'Des-Dur'),
(91, 1, NULL, NULL, 'As-Dur'),
(92, 1, NULL, 'Tempo di Valse', 'E-Dur'),
(93, 1, NULL, NULL, 'e-Moll'),
(94, 1, NULL, 'Allegretto', 'a-Moll'),
(95, 1, NULL, 'Sostenuto', 'Es-Dur'),
(96, 1, NULL, NULL, 'Es-Dur')
;
INSERT INTO Satz (Werk_id, Lfd_Satznummer, Nummer, Bezeichnung, Tonart) VALUES
(97, 1, 1, 'Andante con moto', 'E-Dur'),
(97, 2, 2, 'Andante espressivo', 'a-Moll'),
(97, 3, 3, 'Molto Allegro e vivace', 'A-Dur'),
(97, 4, 4, 'Moderato', 'A-Dur'),
(97, 5, 5, 'Piano agitato', 'fis-Moll'),
(97, 6, 6, 'Venetianisches Gondellied Andante sostenuto', 'g-Moll'),
(98, 1, 1, 'Andante espressivo', 'Es-Dur'),
(98, 2, 2, 'Allegro di molto', 'b-Moll'),
(98, 3, 3, 'Adagio non troppo', 'E-Dur'),
(98, 4, 4, 'Agitato e con fuoco', 'h-Moll'),
(98, 5, 5, 'Andante grazioso', 'D-Dur'),
(98, 6, 6, 'Venetianisches Gondellied Allegretto tranquillo', 'fis-Moll'),
(99, 1, 1, 'Con moto', 'Es-Dur'),
(99, 2, 2, 'Allegro non troppo', 'c-Moll'),
(99, 3, 3, 'Presto e molto vivace', 'E-Dur'),
(99, 4, 4, 'Andante', 'A-Dur'),
(99, 5, 5, 'Agitato', 'a-Moll'),
(99, 6, 6, 'Duett Andante con moto', 'As-Dur'),
(100, 1, 1, 'Andante con moto', 'As-Dur'),
(100, 2, 2, 'Allegro non troppo', 'Es-Dur'),
(100, 3, 3, 'Presto agitato', 'g-Moll'),
(100, 4, 4, 'Adagio', 'F-Dur'),
(100, 5, 5, 'Volkslied Allegro con fuoco', 'a-Moll'),
(100, 6, 6, 'Molto Allegro vivace', 'A-Dur'),
(101, 1, 1, 'Andante espressivo', 'G-Dur'),
(101, 2, 2, 'Allegro con fuoco', 'B-Dur'),
(101, 3, 3, 'Andante maestoso', 'e-Moll'),
(101, 4, 4, 'Allegro con anima', 'G-Dur'),
(101, 5, 5, 'Venetianisches Gondellied Andante con moto', 'a-Moll'),
(101, 6, 6, 'Allegretto grazioso', 'A-Dur'),
(102, 1, 1, 'Andante', 'Es-Dur'),
(102, 2, 2, 'Allegro leggiero', 'fis-Moll'),
(102, 3, 3, 'Andante tranquillo', 'B-Dur'),
(102, 4, 4, 'Presto', 'C-Dur'),
(102, 5, 5, 'Moderato', 'h-Moll'),
(102, 6, 6, 'Allegretto non troppo', 'E-Dur'),
(103, 1, 1, 'Andante espressivo', 'F-Dur'),
(103, 2, 2, 'Allegro agitato', 'a-Moll'),
(103, 3, 3, 'Presto', 'Es-Dur'),
(103, 4, 4, 'Andante sostenuto', 'D-Dur'),
(103, 5, 5, 'Allegretto', 'A-Dur'),
(103, 6, 6, 'Allegretto con moto', 'B-Dur'),
(104, 1, 1, 'Andante', 'e-Moll'),
(104, 2, 2, 'Adagio', 'D-Dur'),
(104, 3, 3, 'Kinderstück Presto', 'C-Dur'),
(104, 4, 4, 'Andante', 'g-Moll'),
(104, 5, 5, 'Kinderstück Allegro vivace', 'A-Dur'),
(104, 6, 6, 'Andante', 'C-Dur'),
(105, 1, NULL, 'Espressivo & Allegro', 'Es-Dur'),
(106, 1, NULL, 'Lied Andante', 'A-Dur'),
(107, 1, NULL, 'Allegretto', 'A-Dur'),
(108, 1, NULL, 'Lied Allegro molto', 'fis-Moll'),
(109, 1, NULL, 'Gondellied Allegretto non troppo', 'A-Dur'),
(110, 1, NULL, 'Ein Lied ohne Worte', 'F-Dur'),
(111, 1, NULL, 'Reiter-Lied Allegro vivace', 'd-Moll')
;

128
Werk.sql Normal file
View File

@@ -0,0 +1,128 @@
INSERT INTO Werk (id,Komp_id,VOE_Jahr,Sammlung,Haupttonart,Titel,Werkverzeichnis,Werkverzeichnisnummer)
VALUES
(1,1,1722,'Das wohltemperierte Klavier Teil 1','C-Dur','Präludium und Fuge','BWV','846'),
(2,1,1722,'Das wohltemperierte Klavier Teil 1','c-Moll','Präludium und Fuge','BWV','847'),
(3,1,1722,'Das wohltemperierte Klavier Teil 1','Cis-Dur','Präludium und Fuge','BWV','848'),
(4,1,1722,'Das wohltemperierte Klavier Teil 1','cis-Moll','Präludium und Fuge','BWV','849'),
(5,1,1722,'Das wohltemperierte Klavier Teil 1','D-Dur','Präludium und Fuge','BWV','850'),
(6,1,1722,'Das wohltemperierte Klavier Teil 1','d-Moll','Präludium und Fuge','BWV','851'),
(7,1,1722,'Das wohltemperierte Klavier Teil 1','Es-Dur','Präludium und Fuge','BWV','852'),
(8,1,1722,'Das wohltemperierte Klavier Teil 1','es-/dis-Moll','Präludium und Fuge','BWV','853'),
(9,1,1722,'Das wohltemperierte Klavier Teil 1','E-Dur','Präludium und Fuge','BWV','854'),
(10,1,1722,'Das wohltemperierte Klavier Teil 1','e-Moll','Präludium und Fuge','BWV','855'),
(11,1,1722,'Das wohltemperierte Klavier Teil 1','F-Dur','Präludium und Fuge','BWV','856'),
(12,1,1722,'Das wohltemperierte Klavier Teil 1','f-Moll','Präludium und Fuge','BWV','857'),
(13,1,1722,'Das wohltemperierte Klavier Teil 1','Fis-Dur','Präludium und Fuge','BWV','858'),
(14,1,1722,'Das wohltemperierte Klavier Teil 1','fis-Moll','Präludium und Fuge','BWV','859'),
(15,1,1722,'Das wohltemperierte Klavier Teil 1','G-Dur','Präludium und Fuge','BWV','860'),
(16,1,1722,'Das wohltemperierte Klavier Teil 1','g-Moll','Präludium und Fuge','BWV','861'),
(17,1,1722,'Das wohltemperierte Klavier Teil 1','As-Dur','Präludium und Fuge','BWV','862'),
(18,1,1722,'Das wohltemperierte Klavier Teil 1','gis-Moll','Präludium und Fuge','BWV','863'),
(19,1,1722,'Das wohltemperierte Klavier Teil 1','A-Dur','Präludium und Fuge','BWV','864'),
(20,1,1722,'Das wohltemperierte Klavier Teil 1','a-Moll','Präludium und Fuge','BWV','865'),
(21,1,1722,'Das wohltemperierte Klavier Teil 1','B-Dur','Präludium und Fuge','BWV','866'),
(22,1,1722,'Das wohltemperierte Klavier Teil 1','b-Moll','Präludium und Fuge','BWV','867'),
(23,1,1722,'Das wohltemperierte Klavier Teil 1','H-Dur','Präludium und Fuge','BWV','868'),
(24,1,1722,'Das wohltemperierte Klavier Teil 1','h-Moll','Präludium und Fuge','BWV','869'),
(25,1,1742,'Das wohltemperierte Klavier Teil 2','C-Dur','Präludium und Fuge','BWV','870'),
(26,1,1742,'Das wohltemperierte Klavier Teil 2','c-Moll','Präludium und Fuge','BWV','871'),
(27,1,1742,'Das wohltemperierte Klavier Teil 2','Cis-Dur','Präludium und Fuge','BWV','872'),
(28,1,1742,'Das wohltemperierte Klavier Teil 2','cis-Moll','Präludium und Fuge','BWV','873'),
(29,1,1742,'Das wohltemperierte Klavier Teil 2','D-Dur','Präludium und Fuge','BWV','874'),
(30,1,1742,'Das wohltemperierte Klavier Teil 2','d-Moll','Präludium und Fuge','BWV','875'),
(31,1,1742,'Das wohltemperierte Klavier Teil 2','Es-Dur','Präludium und Fuge','BWV','876'),
(32,1,1742,'Das wohltemperierte Klavier Teil 2','dis-Moll','Präludium und Fuge','BWV','877'),
(33,1,1742,'Das wohltemperierte Klavier Teil 2','E-Dur','Präludium und Fuge','BWV','878'),
(34,1,1742,'Das wohltemperierte Klavier Teil 2','e-Moll','Präludium und Fuge','BWV','879'),
(35,1,1742,'Das wohltemperierte Klavier Teil 2','F-Dur','Präludium und Fuge','BWV','880'),
(36,1,1742,'Das wohltemperierte Klavier Teil 2','f-Moll','Präludium und Fuge','BWV','881'),
(37,1,1742,'Das wohltemperierte Klavier Teil 2','Fis-Dur','Präludium und Fuge','BWV','882'),
(38,1,1742,'Das wohltemperierte Klavier Teil 2','fis-Moll','Präludium und Fuge','BWV','883'),
(39,1,1742,'Das wohltemperierte Klavier Teil 2','G-Dur','Präludium und Fuge','BWV','884'),
(40,1,1742,'Das wohltemperierte Klavier Teil 2','g-Moll','Präludium und Fuge','BWV','885'),
(41,1,1742,'Das wohltemperierte Klavier Teil 2','As-Dur','Präludium und Fuge','BWV','886'),
(42,1,1742,'Das wohltemperierte Klavier Teil 2','gis-Moll','Präludium und Fuge','BWV','887'),
(43,1,1742,'Das wohltemperierte Klavier Teil 2','A-Dur','Präludium und Fuge','BWV','888'),
(44,1,1742,'Das wohltemperierte Klavier Teil 2','a-Moll','Präludium und Fuge','BWV','889'),
(45,1,1742,'Das wohltemperierte Klavier Teil 2','B-Dur','Präludium und Fuge','BWV','890'),
(46,1,1742,'Das wohltemperierte Klavier Teil 2','b-Moll','Präludium und Fuge','BWV','891'),
(47,1,1742,'Das wohltemperierte Klavier Teil 2','H-Dur','Präludium und Fuge','BWV','892'),
(48,1,1742,'Das wohltemperierte Klavier Teil 2','h-Moll','Präludium und Fuge','BWV','893')
;
INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Aliasname, Werkverzeichnis, Werkverzeichnisnummer) VALUES
(49, 2, 1795, '2', 'Sonaten', 'f-Moll', 'Sonate', NULL, NULL, NULL),
(50, 2, 1795, '2', 'Sonaten', 'A-Dur', 'Sonate', NULL, NULL, NULL),
(51, 2, 1795, '2', 'Sonaten', 'C-Dur', 'Sonate', NULL, NULL, NULL),
(52, 2, 1796, '7', 'Sonaten', 'Es-Dur', 'Sonate', NULL, NULL, NULL),
(53, 2, 1798, '10', 'Sonaten', 'c-Moll', 'Sonate', NULL, NULL, NULL),
(54, 2, 1798, '10', 'Sonaten', 'F-Dur', 'Sonate', NULL, NULL, NULL),
(55, 2, 1798, '10', 'Sonaten', 'D-Dur', 'Sonate', NULL, NULL, NULL),
(56, 2, 1799, '13', 'Sonaten', 'c-Moll', 'Sonate', 'Pathétique', NULL, NULL),
(57, 2, 1799, '14', 'Sonaten', 'E-Dur', 'Sonate', NULL, NULL, NULL),
(58, 2, 1799, '14', 'Sonaten', 'G-Dur', 'Sonate', NULL, NULL, NULL),
(59, 2, 1800, '22', 'Sonaten', 'B-Dur', 'Sonate', NULL, NULL, NULL),
(60, 2, 1801, '26', 'Sonaten', 'As-Dur', 'Sonate', NULL, NULL, NULL),
(61, 2, 1801, '27', 'Sonaten', 'Es-Dur', 'Sonate', NULL, NULL, NULL),
(62, 2, 1801, '27', 'Sonaten', 'cis-Moll', 'Sonate', 'Mondschein', NULL, NULL),
(63, 2, 1801, '28', 'Sonaten', 'D-Dur', 'Sonate', 'Pastorale', NULL, NULL),
(64, 2, 1802, '31', 'Sonaten', 'G-Dur', 'Sonate', NULL, NULL, NULL),
(65, 2, 1802, '31', 'Sonaten', 'd-Moll', 'Sonate', 'Der Sturm', NULL, NULL),
(66, 2, 1802, '31', 'Sonaten', 'Es-Dur', 'Sonate', NULL, NULL, NULL),
(67, 2, 1795, '49', 'Sonaten', 'g-Moll', 'Sonate', NULL, NULL, NULL),
(68, 2, 1795, '49', 'Sonaten', 'G-Dur', 'Sonate', NULL, NULL, NULL),
(69, 2, 1803, '53', 'Sonaten', 'C-Dur', 'Sonate', 'Waldstein', NULL, NULL),
(70, 2, 1804, '54', 'Sonaten', 'F-Dur', 'Sonate', NULL, NULL, NULL),
(71, 2, 1804, '57', 'Sonaten', 'f-Moll', 'Sonate', 'Appassionata', NULL, NULL),
(72, 2, 1809, '78', 'Sonaten', 'Fis-Dur', 'Sonate', NULL, NULL, NULL),
(73, 2, 1809, '79', 'Sonaten', 'G-Dur', 'Sonate', NULL, NULL, NULL),
(74, 2, 1809, '81a', 'Sonaten', 'Es-Dur', 'Sonate', 'Les Adieux', NULL, NULL),
(75, 2, 1814, '90', 'Sonaten', 'e-Moll', 'Sonate', NULL, NULL, NULL),
(76, 2, 1816, '101', 'Sonaten', 'A-Dur', 'Sonate', NULL, NULL, NULL),
(77, 2, 1818, '106', 'Sonaten', 'B-Dur', 'Sonate', 'Große Sonate für das Hammerklavier', NULL, NULL),
(78, 2, 1821, '109', 'Sonaten', 'E-Dur', 'Sonate', NULL, NULL, NULL),
(79, 2, 1822, '110', 'Sonaten', 'As-Dur', 'Sonate', NULL, NULL, NULL),
(80, 2, 1822, '111', 'Sonaten', 'c-Moll', 'Sonate', NULL, NULL, NULL)
;
INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Werkverzeichnis, Werkverzeichnisnummer) VALUES
(81, 5, 1832, '2', NULL, NULL, 'Papillons', NULL, NULL);
INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Satztitel, Werkverzeichnis, Werkverzeichnisnummer) VALUES
(82, 4, 1827, '90', 'Impromptus', NULL, 'Vier Impromptus', 'Impromptu', 'D', '899'),
(83, 4, 1827, 'post. 142', 'Impromptus', NULL, 'Vier Impromptus', 'Impromptu', 'D', '935')
;
INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Satztitel, Werkverzeichnis, Werkverzeichnisnummer) VALUES
(84, 4, 1828, '94', 'Moments musicaux', NULL, 'Six moments musicaux', 'Moment musical', 'D', '780'),
(85, 3, 1834, '18', 'Walzer', 'Es-Dur', 'Grande Valse Brillante', NULL, NULL, NULL),
(86, 3, 1838, '34', 'Walzer', NULL, NULL, 'Walzer', NULL, NULL),
(87, 3, 1840, '42', 'Walzer', 'As-Dur', 'Grande Valse', NULL, NULL, NULL),
(88, 3, 1847, '64', 'Walzer', NULL, NULL, 'Walzer', NULL, NULL),
(89, 3, 1855, 'post. 69', 'Walzer', NULL, NULL, 'Walzer', NULL, NULL),
(90, 3, 1855, 'post. 70', 'Walzer', NULL, NULL, 'Walzer', NULL, NULL),
(91, 3, 1827, NULL, 'Walzer', 'As-Dur', 'Walzer', NULL, 'KK', 'IVa Nr. 13'),
(92, 3, 1829, NULL, 'Walzer', 'E-Dur', 'Walzer', NULL, 'KK', 'IVa Nr. 12'),
(93, 3, 1830, NULL, 'Walzer', 'e-Moll', 'Walzer', NULL, 'KK', 'IVa Nr. 15'),
(94, 3, 1843, NULL, 'Walzer', 'a-Moll', 'Walzer', NULL, 'KK', 'IVb Nr. 11'),
(95, 3, 1840, NULL, 'Walzer', 'Es-Dur', 'Walzer', NULL, 'KK', 'IVb Nr. 10'),
(96, 3, 1830, NULL, 'Walzer', 'Es-Dur', 'Walzer', NULL, 'KK', 'IVa Nr. 14')
;
INSERT INTO Werk (id, Komp_id, VOE_Jahr, Opus, Sammlung, Haupttonart, Titel, Satztitel, Werkverzeichnis, Werkverzeichnisnummer) VALUES
(97, 6, 1830, '19b', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 5'),
(98, 6, 1834, '30', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 9'),
(99, 6, 1837, '38', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 16'),
(100, 6, 1841, '53', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 23'),
(101, 6, 1844, '62', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 29'),
(102, 6, 1845, '67', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 32'),
(103, 6, 1845, '85', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 46'),
(104, 6, 1845, '102', 'Lieder ohne Worte', NULL, 'Sechs Lieder ohne Worte', 'Lied ohne Worte', 'MWV', 'SD 54'),
(105, 6, NULL, NULL, 'Lieder ohne Worte', 'Es-Dur', 'Lied ohne Worte', NULL, NULL, NULL),
(106, 6, NULL, NULL, 'Lieder ohne Worte', 'A-Dur', 'Lied ohne Worte', NULL, NULL, NULL),
(107, 6, NULL, NULL, 'Lieder ohne Worte', 'A-Dur', 'Lied ohne Worte', NULL, NULL, NULL),
(108, 6, NULL, NULL, 'Lieder ohne Worte', 'fis-Moll', 'Lied ohne Worte', NULL, NULL, NULL),
(109, 6, NULL, NULL, 'Lieder ohne Worte', 'A-Dur', 'Lied ohne Worte', NULL, NULL, NULL),
(110, 6, NULL, NULL, 'Lieder ohne Worte', 'F-Dur', 'Lied ohne Worte', NULL, NULL, NULL),
(111, 6, NULL, NULL, 'Lieder ohne Worte', 'd-Moll', 'Lied ohne Worte', NULL, NULL, NULL)
;

23
builddb.py Normal file
View File

@@ -0,0 +1,23 @@
import sqlite3
con = sqlite3.connect('repertoire.db')
cursor = con.cursor()
def execute_sql_from_file(filename, cursor):
with open(filename) as sqlfile:
sqlcommands = sqlfile.read()
list_of_commands = sqlcommands.split(';')
for command in list_of_commands:
cursor.execute(command)
execute_sql_from_file('repertoire.sql', cursor)
execute_sql_from_file('komponist_innen.sql', cursor)
execute_sql_from_file('Werk.sql', cursor)
execute_sql_from_file('Satz.sql', cursor)
con.commit()
# cursor.execute('COMMIT')
con.close()

13
komponist_innen.sql Normal file
View File

@@ -0,0 +1,13 @@
INSERT INTO Komponist_in (id, Vorname, Name, Geburtsdatum, Sterbedatum)
VALUES
(1, "Johann Sebastian", "Bach", 16850331, 17500728),
(2, "Ludwig van", "Beethoven", 17701217, 18270326),
(3, "Frédéric", "Chopin", 18100301, 18491017),
(4, "Franz", "Schubert", 17970131, 18281119),
(5, "Robert", "Schumann", 18100608, 18560729)
;
INSERT INTO Komponist_in (id, Vorname, Name, Geburtsdatum, Sterbedatum)
VALUES
(6, 'Felix', 'Mendelssohn Bartholdy', 18090203, 18471104)
;

169
rep_cli.py Normal file
View File

@@ -0,0 +1,169 @@
import sqlite3
class Session:
def __init__(self, db_agent):
self.user = -1
self.db_agent = db_agent
self.resultstring = 'no results yet'
def set_user(self, db_index):
self.user = db_index
return 'User set'
def get_active_user(self):
sql_command = f'''
SELECT Vorname, Nachname
FROM Spieler_in
WHERE id = {self.user}
'''
active_user = ''
try:
first_name, name = self.db_agent.execute(sql_command).fetchone()
active_user = f'{first_name} {name}'
except:
active_user = 'No active user'
return active_user
def invoke_command(self, command, arguments):
self.resultstring = ''
if command == 'a':
self.resultstring += self.set_user(arguments[0])
elif command == 'n':
self.create_new_user(arguments[0], arguments[1])
self.resultstring += f'Created new user {arguments[0]} {arguments[1]}.'
elif command == 's':
self.resultstring += self.show_works()
elif command == 'su':
self.resultstring += self.show_users()
elif command == 'q':
self.resultstring += 'Bye-bye'
else:
self.resultstring += 'Could not understand command.'
def result(self):
return self.resultstring
def create_new_user(self, first_name, name):
sql_command = f'''
INSERT INTO Spieler_in (Vorname, Nachname)
VALUES ("{first_name}", "{name}");
'''
self.db_agent.execute(sql_command)
def show_users(self):
sql_command = '''
SELECT * FROM Spieler_in;
'''
result_list = self.db_agent.execute(sql_command).fetchall()
fun_resultstring = ''
for item in result_list:
fun_resultstring += f'{item[0]}: {item[1]} {item[2]}\n'
return fun_resultstring
def show_works(self):
sql_command = '''
SELECT id
FROM Werk
'''
list_of_work_ids = self.db_agent.execute(sql_command).fetchall()
# GET WORKS OUT!
return ''
# End session
class Werk_unter_id:
# con = sqlite3.connect('repertoire.db')
# reader = con.cursor()
def __init__(self, werk_id, db_agent):
self.values = dict()
self.reader = db_agent
sql_wui = f"""
SELECT *
FROM Werk
WHERE id = {werk_id}
"""
werk_list_val = self.reader.execute(sql_wui).fetchone()
werk_list_att = ('id', 'Komp_id', 'VOE_Jahr', 'Opus', 'Sammlung', 'Haupttonart', 'Titel', 'Satztitel', 'Aliasname', 'Werkverzeichnis', 'Werkverzeichnisnummer')
for tup in zip(werk_list_att, werk_list_val):
self.values[tup[0]] = tup[1]
sql_comp = f"""
SELECT Vorname, Name
FROM Komponist_in
WHERE id = {self.values['Komp_id']}
"""
werk_comp = self.reader.execute(sql_comp).fetchone()
self.values['Vorname'] = werk_comp[0]
self.values['Name'] = werk_comp[1]
sql_suw = f"""
SELECT *
FROM Satz
WHERE Werk_id = {werk_id}
"""
saetze = dict()
nummern = set()
suw_liste = self.reader.execute(sql_suw).fetchall()
# 0 Werk_id, 1 Lfd_Satznummer, 2 Nummer, 3 Bezeichnung, 4 Tonart, 5 Aufnahme
for satz in suw_liste:
saetze[satz[1]] = satz[2], satz[3], satz[4]
if not satz[2] is None:
nummern.add(satz[2])
self.values['Sätze'] = saetze
if len(nummern) == 1:
self.sätze_unter_nummer = True
self.values['Nummer'] = nummern.pop()
else:
self.sätze_unter_nummer = False
def sammlung(self):
sammlung = self.values['Sammlung']
if not sammlung:
return 'ohne'
else:
return sammlung
def __str__(self):
ret_str = ''
for key, value in self.values.items():
if not value is None:
ret_str += f'{key}: {value}\n'
return ret_str
# End Werk_unter_id
def parse_user_input(user_in):
split_user_in = user_in.split()
command = split_user_in[0]
if command in ('a', 'n', 'q', 's', 'su'):
arguments = split_user_in[1:]
return (command, arguments)
else:
return (None, None)
def command_line_loop(session):
user_in = ''
while not user_in == 'q':
user_in = input(f'Piano-Repertoire: {session.get_active_user()} >>> ')
command, arguments = parse_user_input(user_in)
session.invoke_command(command, arguments)
# print(f'command: {command}, arguments: {arguments}')
print(session.result())
def main():
con = sqlite3.connect('repertoire.db')
db_agent = con.cursor()
session = Session(db_agent)
command_line_loop(session)
con.commit()
print('changes committed.')
con.close()
print('db-connection closed. Bye-bye!')
if __name__ == '__main__':
main()

BIN
repertoire.db Normal file

Binary file not shown.

67
repertoire.sql Normal file
View File

@@ -0,0 +1,67 @@
CREATE TABLE Komponist_in (
id INTEGER NOT NULL PRIMARY KEY,
Vorname VARCHAR(255) NOT NULL,
Name VARCHAR(255) NOT NULL,
Geburtsdatum DATE NOT NULL,
Sterbedatum DATE
);
CREATE TABLE Werk (
id INTEGER NOT NULL PRIMARY KEY,
Komp_id INTEGER NOT NULL,
VOE_Jahr INTEGER,
Opus VARCHAR(15),
Sammlung VARCHAR(127),
Haupttonart VARCHAR(15),
Titel VARCHAR(127),
Satztitel VARCHAR(127),
Aliasname VARCHAR(127),
Werkverzeichnis VARCHAR(31),
Werkverzeichnisnummer VARCHAR(15),
FOREIGN KEY(Komp_id) REFERENCES Komponist_in(id)
);
CREATE TABLE Satz (
Werk_id INTEGER NOT NULL,
Lfd_Satznummer INTEGER NOT NULL,
Nummer VARCHAR(15),
Bezeichnung VARCHAR(63),
Tonart VARCHAR(15),
Aufnahme BLOB,
PRIMARY KEY(Werk_id, Lfd_Satznummer),
FOREIGN KEY(Werk_id) REFERENCES Werk(id)
);
CREATE TABLE Spieler_in (
id INTEGER NOT NULL PRIMARY KEY,
Vorname VARCHAR(255) NOT NULL,
Nachname VARCHAR(255) NOT NULL
);
CREATE TABLE Konzert (
id INTEGER NOT NULL PRIMARY KEY,
Datum DATE,
Uhrzeit VARCHAR(5),
Saal VARCHAR(255)
);
CREATE TABLE beherrscht(
Werk_id INTEGER NOT NULL,
Satz_id INTEGER NOT NULL,
Spieler_in_id INTEGER NOT NULL,
Vorlauf INTEGER DEFAULT 7,
PRIMARY KEY(Werk_id, Satz_id, Spieler_in_id),
FOREIGN KEY(Werk_id, Satz_id) REFERENCES Satz(Werk_id, Lfd_Satznummer),
FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id)
);
CREATE TABLE spielt_in(
Konzert_id INTEGER NOT NULL,
Spieler_in_id INTEGER NOT NULL,
Werk_id INTEGER NOT NULL,
Satz_id INTEGER NOT NULL,
PRIMARY KEY(Konzert_id, Spieler_in_id, Werk_id, Satz_id),
FOREIGN KEY(Konzert_id) REFERENCES Konzert(id),
FOREIGN KEY(Werk_id, Satz_id) REFERENCES Satz(Werk_id, Lfd_Satznummer),
FOREIGN KEY(Spieler_in_id) REFERENCES Spieler_in(id)
);