Wie schon ananderer Stelle geschrieben ist das wichtigste wenn die Hives laufen, den Administra zur Laufzeit bootfhig zu gestalten wie es schon bei Bellatrix funktioniert. Damit kann dann die eigentliche Anwendung zur Laufzeit den Code in Administra gegen eigenen austauschen und man hat 100% Kontrolle über das was in diesem Chip abläuft. Ein Prog braucht mehr Cogs? Ok, dann lädt sie solange sie läuft einen Administra-Code welcher z.B. keinen Netzwerkcode enthält und alle Cogs für die Klangerzeugung benutzt. Die Anwendung will in Administra parallel eine LAN-Kommunikationssoftware parallel laufen lasssen? Ok, dann wird ein Code ganz ohne Sound etc. geladen und die 32 KByte hRam in Administra stehen fast vollständig dem Netzwerkcode zur Verfügung. So stelle ich mir das vor und so wäre es am universellsten - im eigenen Programm kann ich dann mit Administra wie mit Bellatrix machen was ich will - und das ohne die Flashs zu verändern, einfach per Software und zur Laufzeit. Ein Reset, Reboot oder sonstwas kann das System dann auch wieder in den Defaultzustand versetzen.
Ansonsten hab ich was Musik betrifft auch keine schöpferischen Erfahrungen - aber das kann sich ja mit der entsprechenden Software auf dem Hive auch ändern.
Momentan ist das Bios in Administra ja noch "starr" entgegen den obigen Wünschen und ich habe experimentell folgendes integriert bzw. experimentierfertig - gleich mit ein paar Links zum einlesen:
HSS -
http://www.andrewarsenault.com/hss/index.html
Gegenüber dem originalen HSS habe ich Funktionen integriert um den HSS-Player über die IOS zu überwachen und zu steuern. So kann ein Anwendercode in Regnatix den Player starten, beenden und mit einer HSS-Datei von SD-Card laden sowie überwachen welche Töne + Parameter jeder der vier Kanäle aktuell abspielt. Außerdem können die beiden FX-Kanäle ebenso gesteuert werden.
PUB hss_playfile(stradr) | status 'hss: spielt übergebene hss-datei von sd-card
PUB hss_stop 'hss: stopt aktuellen song
PUB hss_pause 'hss: pausiert aktuellen song
PUB hss_load(stradr): status | len,i 'hss: lädt hss-datei von sd-card in songpuffer
PUB hss_play 'hss: spielt song im puffer ab
PUB hss_vol(vol) 'hss: volume einstellen 0..15
PUB hss_peek(n): wert 'hss: registerwert auslesen
PUB hss_intreg(n): wert 'hss: interfaceregister auslesen
PUB sfx_setslot(adr,slot) | i,n 'sfx: sendet sfx-daten in sfx-slot
PUB sfx_fire(slot,chan) 'sfx: triggert einen bestimmten soundeffekt
Das ganze ist recht gut in den Quellen des StarTrackers und von der Kommandozeilenanwendung "play" zu begutachten. Tonbeispiele gibt es im Trackervideo.
Außerdem gibt es ja zwei FX-Slots die wirklich frei parametrisierbar sind (Hüllkurve, Siganlform, usw.). Diese kann man mit folgenden IOS-Funktionen ansprechen:
PUB sfx_setslot(adr,slot) | i,n 'sfx: sendet sfx-daten in sfx-slot
PUB sfx_fire(slot,chan) 'sfx: triggert einen bestimmten soundeffekt
Einige Systemsounds habe ich schon fest integriert - so auch die Heartbeatsounds: Herztöne die hörbar machen wenn Daten von/zur SD-card transferiert werden (
http://hive-project.de/content/336). So erhöht sich die Herzfrequenz bei akutem Datenstrum und "blubbert" ganz langsam im Standby. Ein Klangbeispiel ist im Artikel. Außerdem gibt es das "sxftool" mit welchem man (vorerst) manuell die Soundparameter im eRam bearbeiten kann, zu einem Slot senden und dann als Test triggern kann - ist aber extrem rudimentär.
WAV-Player -
http://forums.parallax.com/forums/defau ... 30#m337230
Der Wav-Player hat momentan experimentellen Status und ist nur im Test-Bios "os-1-adm-biosw.spin" integriert. Analog gibt es ein Testprogramm "wplay" für die CLI. Leider gibt es da noch einen komplexen Fehler und der Player stopt nach einigen Titeln wenn man die Funktion "Play alle Wav's auf SD-Card" aufruft -- hab noch keine Zeit gehabt da weiter zu suchen. Mir gefällt dabei auch noch nicht die logische Integration in den Administra-Code, aber prinzipiell funktioniert es.
Experimentelle IOS-Funktionen:
PUB wav_play(stradr): status | len,i 'sdw: spielt wav-datei direkt von sd-card
PUB wav_stop
PUB wav_status: status 'sdw: status des players abfragen
MIDI-Synthesizer -
http://forums.parallax.com/forums/defau ... 1&m=341430
Ariba's genialer 24-Stimmen-Synthesizercode. Ich hab mal ein Klangbeispiel angehäng. Ist momentan mangels Ressourcen nicht fest in Administra integriert - was ja auch nicht sein muß, wenn wir Administra erstmal variabel haben - aber bei den Testprogrammen ist eine angepasste Codevariante und einige MIDI-Files dabei um zu testen und um zu experimentieren. Dieser Code spielt einfach alle MIDI-Dateien von SD-Card ab.