Welcome to Schneider / Amstrad CPC Forum. Please login or sign up.

28. March 2024, 09:42:40

Login with username, password and session length

Shoutbox

TFM

2024-01-15, 17:06:57
Momentan billige Farbbänder auf Ebay für PCW

Devilmarkus

2023-07-09, 10:37:40
Zweiter 👋😂🤣

TFM

2023-06-13, 14:21:49
Sommerloch!

TFM

2023-05-30, 17:00:20
Erster ;-)

Recent

Members
Stats
  • Total Posts: 11,653
  • Total Topics: 1,328
  • Online today: 78
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 88
Total: 89

88 Guests, 1 User
HAL6128

FutureOS Midi Trakker

Started by LambdaMikel, 21. October 2021, 18:30:11

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

LambdaMikel

Klingt alles sehr gut!

Wie wäre es denn, wenn wir einmal einen MIDI Tracker für LambdaSpeak FS / Ultimate MIDI Card mit FutureOS entwickeln? Insbesondere schwebt mir da vor, dass wir schnelle Textausgabe brauchen weil das Pattern ja durch scrollt. Die CPC Firmware ist ja recht lahm diesbzgl. Textmodus reicht ja vollkommen aus; so schön grafisch wie im DigiTracker brauchen wir nicht. Wichtig ist aber, dass man beim Abspielen die Noten auf den einzelnen Tracks sieht wie sie durchlaufen. Dabei bräuchte man eigentlich mindestens 8 Tracks. Das sollte im 80-Zeichen Modus ja passen.

So ein Tracker ist eigentlich eine sehr simple Angelegenheit. Ich hatte in den 80ern mal einen in BASIC erstellt (nach dem "Tab Composer"), aber der war etwas zu lahm und umständlich. Dabei war die Textausgabe natürlich das Hauptproblem. In /80 mit CPC Firmware TXT PACK sollte das gehen, aber auch da gibt es ja viel schnellere Zeichenausgaberoutinen. Ich denke, FutureOS ist da sicherlich schneller!

MIDI Tracker bedeutet hier, dass Soundausgabe über das MIDI Module erfolgt (EWave, S2, X2GS, ...) und LambdaSpeak FS, und Eingabe ebenfalls über MIDI per Keyboard in Echtzeit, "step by step", oder über Keyboard. CPC AY Soundausgabe braucht's nur für den Taktgeber im CPC Lautsprecher.

TFM

Ein MIDI Trakker für FutureOS - das verdient ein eigenes Thema, deshalb ist das jetzt auch so.

Ja, prinzipiell eine super Idee, aber auch ein großes Projekt. Stimmt, für schnelle Zeichenausgabe ist FutureOS zu empfehlen. K.A. was am DigiTrakker jetzt groß grafisch sein soll. Aber eine Menu-Maske laden, das kriegen wir allerweil noch hin. Durchlaufende Noten etc. ist gar keine Problem. Wir haben im CPC ja 256 Zeichen, die kann man umdefinieren. Weiterhin zwischen RAM und ROM Zeichensatz umschalten. Muss man sich nur überlegen wie das genau aussehen soll.

Wenn es nur darum geht, dass ich das Interface für FutureOS programmiere und Du den 'Rest', dann können wir sofort anfangen.

Ansonsten könnten wir das Programm erst mal 'auf Papier' beschreiben. Was genau soll es können? Wie genau sieht das auf dem Bildschirm aus?

In diesem Falle wäre es wohl sinnvoll das Programm gut zu planen und dann erst los zu legen.

Wenn Du aber schon weißt, wie es auf dem Bildschirm aussehen soll, dann kann ich da ja mal eine 'Demo' davon machen.

Ansonsten: Es darf ruhig grafisch, Zeug und Klump gefordert werden. Mit den Ansprüchen geht mal ja später meistens eh etwas runter.

Kannst ja mal ein Bild bzw. einen Link schicken, wie das aussehen soll.
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Super! Ja ich denke mal über ein Bildschirmlayout nach und poste es dann hier. Das wird spannend, mal was für FutureOS zu entwickeln!!

TFM

Freue mich jetzt schon darauf da assistieren zu dürfen.  :smiley027:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Sorry for the delay, TFM! Ich war jetzt diese Woche busy mit meinem CPC Retro Dev 2021 Beitrag... jetzt geht's demnächst los! Freue mich schon! 
Na Du bist eher der Hauptentwickler als der Assistent... habe ja null Ahnung von FutureOS Programmierung...  ;)

TFM

Dafür aber von MIDI um so mehr  :) Nur keine Hektik, der Winter kommt. Bald gibt es weider lange dunkle kurze Tage und lange noch dunklere Nächte von dem CPC.  :)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

#6
    So, hier ist einmal eine erste Idee für einen MIDI Tracker:


--------------------------------------------------------------------------------
| # 1 | A 200 | A 202 | A 203 | 1 200 | 2 100 | 3 200 | 4 001 | 4 123 |  CC    |
--------------------------------------------------------------------------------
| 00  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 01  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 02  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 03  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 04  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 05  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 06  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
--------------------------------------------------------------------------------
| 07  |  C-2  >  C-2  <  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |  "> ... <" ist das aktive Feld / Eingabe-Cursor
--------------------------------------------------------------------------------
| 08  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 09  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 10  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 11  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 12  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 13  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 14  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
| 15  |  C-2  |  C-2  |  C-2  |  C-2  |  C-2  |  C#2  |  D-0  |  C-2  | BANK 1 |
--------------------------------------------------------------------------------
| 07  |RMS*127|RMS*127|RMS*---|RMS*---|RMS*---|RMS*---|RMS*---|RMS*---|  RMS*  |
| TEMPO:120 |> [] S O P PCLCK[X] RCLCK[X] RANGE:10-61[X] PUNCH:20-30[X] LS[X]  |
--------------------------------------------------------------------------------



  • Oben links ist die "Pattern " / Seitennummer (# 1 hier)
  • 8 MIDI Spuren + 1 Kontrol-Kanal (CC)
  • jede Spur hat oben MIDI-Kanalnummer (0-F) und Instrumenten-Nummer (0-255)
  • 64 (oder mehr) Steps, von 0 bis 63. Jeweils 16 passen auf den Schirm. Es wird gescrollt. Die Zeile in der Mitte ist die die gerade abgespielt wird.
  • Jeder Track hat "R M S" Schalter / Checkboxen: Record, Mute, Solo
  • Recht neben den "R M S" Schaltern haben wir eine Checkbox / Schalter "*" (s.u.), und dann die Kanal-Lautstärke - normalerweise teil der MIDI Message, aber kann hier überschrieben werden
  • Unten gibt's Kontroll-Elemente: Tempo, Play |>, Stop [], Step Record S, Realtime Record O. Realtime delete is immer möglich: im Realtime Record MOdus einfach Space taste drücken, und die gerade abgespielte Note wird gelöscht
  • Dazu Play und Record Click Checkboxen, Abspiel-Range von 0 bis 64 mit Loop Checkbox, und Punch In Record Range mit Aktivierungsschalter
  • "P" ist ein Pushbutton - Der Panic Button. Damit wird MIDI Reset gesendet, damit wieder Ruhe ist wenn was schief gelaufen ist.
  • LS Checkbox ist für LambdaSpeak  (sonst Ultimate MIDI Card)

Fast alle Element sind "interaktiv". D.h., man kann mit dem Cursor draufklicken, und entweder den Checkbox-Schalter toggeln, oder die Zahl ändern (per Tastatur, grafisch ist nicht notwendig). Für die Checkboxen können wir einfach an/aus mittels inverser Darstellung machen. Text GUI.

Noten können entweder Step by Step im "Step Recording Mode" (S Schalter) über das MIDI-Keyboard, oder das CPC-Keyboard eingeben werden. Für CPC-Keyboard wird der aktive Track genommen; für MIDI können wir die Kanal-Nummer der MIDI-Message nehmen um zu sehen wo die MIDI-Message landen soll. Oder das kann auch ignoriert werden, und dann wird der gerade selektierte aktive Track genommen, wenn "*" angeschaltet ist. Im Real Time Recording Mode (O Schalter) wird, wie auch im Step Record Modus, entweder vom MIDI Keyboard aufgenommen (MIDI IN), oder von der CPC Tastatur.

Abspielen geht nur über MIDI. Schön wären natürlich mehr als 16 Spuren. Wenn man also mit den Cursortasten den aktiven Track "nach rechts" überschreitet, könnte der nächste Set von 8 Kanälen eingeblendet werden. [/list]

TFM

Soweit alles (un)klar, die Fragen kommen später.

Jetzt werde ich erst mal die Eingabe-Maske entwerfen.
Dazu wäre es gut die unterste Zeile (am besten die beiden untersten Zeilen) mal im CPC Zeichensatz zu sehen. Mit PRINT CHR$(XX) kann man ja jedes der 256 Zeichen darstellen. Ab 128 gibt's da ja Zeichen die uns entgegenkommen z.B. den Rechtspfeil für 'Play'.

Wenn Du Lust hast, dann kannst Du ja mal so eine Zeile in BASIC programmieren und dann hier reinstellen, dann sehe ich besser was wir da nehmen können (DSK oder Bild - ist egal).

Ansonsten nehme ich einfach mal was mit sinnvoll erscheint, aber ob das dann auch gefällt - wer weiß. Werde da am WE mal reinschauen  :)


EDIT: Ich fände es jetzt echt witzig wenn noch jemand das selbe Programm für ein anderes OS umsetzen würde.  :smiley027: :winke0002:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

#8
Prima! Mache ich am WE. Und dann nehmen wir http://futureos.cpc-live.com/files/FutureOS_System_.8.zip
richtig? Ich installiere mal das Update. Ich denke, ich bin etwas veraltet. Evtl. brenne ich sogar "richtige" EPROMs für mein RomboRedux.  Welche ROMs muss ich denn noch installieren? MAXAM? Wenn ja, welche Version? Als Config wäre ein 464 mit Revaldino RAM, M4 + Roms ok (damit kann ich ja auch Speichern vom FutureOS aus?), oder brauche ich ein DDI3 am 464? Oder doch gleich besser den 6128 zu verwenden? (Ich mag halt die 464 Tastatur lieber zum Entwickeln). Und Maus habe ich auch eine, allerdings nur die Joystick-Maus.

Für die Noten-Anzeige haben wir ja noch 4 Zeichen übrig; evtl.
wird statt

|  D#0  |

eher sowas wie

|D#0 234|

Interessante Attribute (in Hex 0-F) wären z.B. Lautstärke, Velocity, Stereo Position.
16 Stufen würden ja reichen, werden dann entsp. abgebildet auf MIDI 7Bit beim Abspielen.



TFM

#9
Ja, bitte immer die neueste Version aus dem Netz laden (www.futureos.de -> Downloads -> Links am Anfang der Seite).

Auf EPROMs zu brennen ist ja richtig Arbeit  ;) Dabei solltest Du aber vom Installer die ROM Nummern so einstellen lassen, dass die vom ersten ROM (A) unterhalb von 8 liegt, beim CPC464.

Für den Anfang wäre es besser mal das M4 zu benutzen, denn wenn etwas nicht klappt hat man keine EPROMs zu löschen.  :) Beim 464 auch da das ROM A unterhalb von 8 einstellen, da der 464 die ROMs von 0-7 initialisiert. ROMs B, C nun D können jede beliebige Nummer haben.

Revaldhinos RAM Erweiterung mach auch alles am CPC464 möglich was Banking betrifft -> Beste Wahl!

Ein Floppy Laufwerk brauchst Du um mit FutureOS arbeiten zu können, Kassetten werden nicht unterstützt. Du brauchst allerdings kein anderes DOS, da FutureOS ein eigenständiges OS ist, das aber auch gar nichts vom CPC ROM braucht (na gut, den Zeichensatz).  ;) :)

Den 6128 kannst auch verwenden, aber ich fände es super, wenn wir das mit dem 464 hinbekommen.  :smiley027:

MAXAM ist immer gut, ich hänge mal die neueste Version an, das ist die 1.15 (1.14 ist im Netz).


P.S.: In die 80 Zeichen können wir auch 16 Kanäle quetschen, soll ich das mal machen?
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Quote from: TFM on 05. November 2021, 16:52:40
P.S.: In die 80 Zeichen können wir auch 16 Kanäle quetschen, soll ich das mal machen?

OK, dann versuche ich 464... mit M4, Floppy, und Revaldino RAM. Und LambdaSpeak FS... Klar, 16 Kanäle, gerne doch!

TFM

Nun müssen wir uns noch überlegen wie so ein Datensatz/eine Datei aufgebaut ist. Also die Daten die wir mit dem Trakker eingeben bzw. abspielen wollen.

Wie würdest Du so einen Datensatz aufbauen? Gibt es da vielleicht schon gute Ideen?
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

#12
Hallo TFM,

gute Frage...alle Details habe ich auch noch nicht. Aber, pro Spur benötigen wir mindestens (alles 8 Bit) PRO STEP:

- MIDI Notennummer
- MIDI Lautstärke

Ich denke also, eine Datei könnte pro Step aus

16 * 2 Bytes bestehen ... und dann hätte ich ebenfalls noch gerne 16 * 3 bytes Extra (für CC Messages pro Kanal), also 16 * 5 Bytes pro Step. Macht 64 * 16 * 5 Bytes pro Pattern. Mehrere Patterns kommen später... lass uns erstmal ein Pattern machen. 

Zudem brauch man dann noch einen Header, zusätzlich zu den Steps:
- für jeden Kanal, Intstrumenten-Nummer: also 16 Bytes
- später: für jeden Kanal, Bank-Nummern
- für jeden Kanal, globale Lautstärke und Stereo-Position: 2*16 Bytes
- ... und dann brauchen wir später noch die Anzahl der Patterns, die Pattern-Reihenfolge, etc... später! 

Und nun habe ich noch eine Design-Änderung - statt einen "CC" Track am Ende zu haben, würde ich vorschlagen, dass wir für jeden Track wechseln können zwischen "normal" und "CC" Darstellung. So kann man z.B. einen Track für MIDI-Kanal 1 haben für die Noten, und daneben eben auch einen Control Change / CC-Track für Kanal 1. Es ist übersichlicher, einzelne CC-Tracks pro Kanal anbieten zu können; andernfalls müssten alle CC's für ALLE Kanäle in den CC-Track ganz rechts, und das ist unbersichtlich. Den CC-Track braucht man ohnehin nur in Ausnahmefällen.

So wäre es als gut, pro Spur / Track einen  weiteren "Toggle Button" zu haben, mit dem man eben zwischen CC-Track und Noten-Track die Darstellung umschalten kann.

TFM

#13
Quote from: LambdaMikel on 07. November 2021, 19:01:17
- später: für jeden Kanal, Bank-Nummern
Meinst Du damit die Erweiterungs-RAM-Bank?

Quote from: LambdaMikel on 07. November 2021, 19:01:17
Und nun habe ich noch eine Design-Änderung - statt einen "CC" Track am Ende zu haben, würde ich vorschlagen, dass wir für jeden Track wechseln können zwischen "normal" und "CC" Darstellung. So kann man z.B. einen Track für MIDI-Kanal 1 haben für die Noten, und daneben eben auch einen Control Change / CC-Track für Kanal 1. Es ist übersichlicher, einzelne CC-Tracks pro Kanal anbieten zu können; andernfalls müssten alle CC's für ALLE Kanäle in den CC-Track ganz rechts, und das ist unbersichtlich. Den CC-Track braucht man ohnehin nur in Ausnahmefällen.

So wäre es als gut, pro Spur / Track einen  weiteren "Toggle Button" zu haben, mit dem man eben zwischen CC-Track und Noten-Track die Darstellung umschalten kann.
Designänderung ist in Ordnung, dann können wir da ja auch gleich 16 Kanäle einbauen (Ton bzw. CC umschaltbar ist eine gute Idee, z.B. durch TAB drücken oder ähnliches).

Wie würde das dann in ASCII aussehen? Kannst Du das nochmal schnell schreiben? Sonnst mach ich das noch falsch. Danke.  :) :) :)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Quote from: TFM on 07. November 2021, 19:57:57

Wie würde das dann in ASCII aussehen? Kannst Du das nochmal schnell schreiben? Sonnst mach ich das noch falsch. Danke.  :) :) :)

Bin dabei, bis gleich!