Otrzymałem zapytanie od człowieka, prowadzącego niewielki serwis o ośmiobitowym Atari.
Dotyczy ono współpracy Atari z urządzeniami MIDI. Mnie to rozwala, bo jeżeli Atari ma MIDI to można sterować na scenie światłami, dymem, efektami 35 metrowego wyświetlacza. A jemu chodzi tylko o "zwykły" syntezator dźwięku.
No to idę za ciosem.
Poproszę brać o info o wszelkich znanych: - interfejsach MIDI do Atari: jedno i dwukierunkowych - oprogramowaniu do w/w.
Ale mi się fajny zestaw trafił łojoj, aż mnie z butów wyjęło: dziewicze Atari 130XE z monitorem LCD i Roland XP-50. Już się nie mogę doczekać jak to odpalę.
Właściciel chce, żeby mu MIDI wpakować do komputera, ja mu proponuję, że zrobię to we wtyku SIO, ale odrzuca wszelkie moje argumenty przeciw psuciu obudowy.
W drugiej połowie lat 90-tych ubiegłego tysiąclecia bawiłem się namiętnie interfacem MIDI do małego Atari, własnej roboty rzecz jasna oraz programem Macieja Sygita. Popełniłem sporo muzyki, jednak problemem była uboga funkcjonalność oraz brak możliwości obsługi plików MID. Zainspirowany możliwościami napisałem nawet player do muzyczek w formacie CMC, który umożliwiał mapowanie instrumentów i granie przez MIDI :) Bardzo fajna zabawa była, ale do profesjonalnych zastosowań to chyba lepiej użyć ST, bo bardzo kiepsko jest z synchronizacją komend.
Roland XP-50 to kultowy sprzęt z mnóstwem świetnych popowych brzmień '80-'90. Obawiam się jednak, że małe Atari nie uciągnie natłoku komunikacyjnego strumienia danych pędzącego z i do tego instrumentu. Faktycznie, jeśli już chcesz być retro cool to zainwestuj w ST. Osobiście wolałbym słabego nawet, ale peceta z Reaperem i dobrym interfacem MIDI na USB pracującego pod kontrolą Windows XP.
@Alex: 10 kanał na perkę to General MIDI. Wiem, przypi...am ;) się ale MIDI to interface, a General MIDI to standaryzacja tegoż.
Nie rozumiem tej awersji do wykonania dodatkowych otworów w obudowie. Zepsujesz jeśli to zrobisz źle :) Da się zrobić ładnie, jak fabrycznie, trzeba się postarać. A czy podziękuje - nie wiem, to zależy, widać woli mieć mniej wystających gadżetów.
@TheFender: No wiadomo, że GM to podstawowy najprostszy standard. Osobiście wolę XG :) Tak czy inaczej protokół MIDI to 16 kanałów, dlatego pytam o co chodzi z pytaniem: "Czemu to wszystko jest w jednym kanale?".
Jeśli zaś chodzi o strumień danych, to Atari z tym problemów nie ma, bo to ledwo 31,26 Kbps (Happy Warp do 1050 ma 52 Kbps). Problemem jest zupełnie co innego. Przesyłanie komend do wszystkich instrumentów przez jeden kabel w tym samym czasie powoduje opóźnienia - im więcej komend, tym bardziej nierówno i nie ma tutaj różnicy, czy będzie to Falcon, ST czy XL, bo szybkość transmisji jest stała. Dlatego w studio zgrywało się każdy instrument pojedyńczo na osobne ścieżki, z których miksowany był finalny utwór. Teraz stosuje się multiport interface na USB.
Tak dokładniej rzecz biorąc, 16 kanałów MIDI ma trochę inny sens niż kanały dźwiękowe w komputerze - są to bardziej ścieżki instrumentów niż kanały dźwięku. Np. na jednym kanale gra sobie cały fortepian wraz z akordami - niezależnie od tego ile klawiszy naraz jest wciśniętych.
@0xF: Dokładnie :) Ja napisałem tylko wspomniany odtwarzacz plików *.CMC, który po zmapowaniu instrumentów grał muzyczki przez MIDI, co z resztą raz zaprezentowałem w 1997 w Ornecie na Sound Canvasie Rolanda pożyczonym od Paskuda. Odtwarzacz plików *.MID próbowałem napisać, ale nie miałem dokumentacji formatu i nic z tego nie wyszło, ale teraz można :)
@wieczor: Zgadza się! Na poszczególnych kanałach ustawia się instrumenty, które reagują na komunikaty na przydzielonych kanałach.
@Alex - załadowałem tego mida do Cakewalka i wszystko mam w jednym kanale. O to mi chodziło. Może komunikaty idą na różne kanały, ale na pewno są w jednym kanale: z formatu MID patrząc. To może być efektem nagrania.
@ming - akurat jestem innego zdania, plecy komputera są trochę małe, a jak kiedyś właściciel zapragnie jakieś inne interfejsy to braknie miejsca, mnie chodzi jak go przekonać do zewnętrznego interfejsu. Teraz nawet wpadłem na pomysł, żeby zintegrować mu to jeszcze z SIO2PC, to będzie miał 2 w jednym. Może tak go przekonam.
@wieczor - midi to nie tylko 16 kanałów, tak było dawno temu i nie chodzi w głównej mierze o przyporządkowywanie dźwięków tylko fizycznych instrumentów. Owszem, można mieć 1 instrument odbierający dane ze wszystkich kanałów, ale tu pojawi się problem ilości generatorów dźwięku. Założeniem kanałów była transmisja do dużej ilości instrumentów, między innymi, żeby zwiększyć ilość jednocześnie zagranych dźwięków - tym samym pokonać barierę pierwotnych 1 dźwiękowych instrumentów.
Przypisując instrumentowi lub urządzeniu z MIDI określony kanał dane lecą tylko do niego. Może mieć tylko jeden generator, może mieć ich np. 64. Na innym kanale można puścić polecenia do świateł na scenie, dymnic, na innym sterować mikserem a na jeszcze innym wysterujemy perkusję. Po to powstały kanały, stąd też przelotowy port THRU.
@alex, nie pamiętam takich zapisów, dane idą po magistrali MIDI do wszystkich instrumentów jednocześnie (jak na Atari po SIO - ciekawe, co nie?), a każdy bierze tylko to co dla niego (jak Atari SIO). Owszem nierównomierności ścieżek trzeba było "dorównać". Ale to były 16-stki, 32-dwójki z taktu. Nikt ze słuchaczy tego nie zauważał. Gorzej przy 3/4.
@Valdghir - no bo pisałem, że to stream zgrany z Atari po kabelku na PC :) Po załadowaniu do dowolnego programu obsługującego MID-y będzie sieczka i to pewnie zobaczyłeś.
Co do transmisji zgadza się i po to jest port MIDI THRU :) Spróbj jednak sobie puścić komendy z pedałów MIDI (do modulacji, pitch shitingu etc.) razem z resztą dźwięków i perkusją ;) Wszystko zacznie grać bardzo nierówno, a niektóre komendy wcale nie dotrą do odbiorcy. Poświęciłem wiele miesięcy na testy i wiem co piszę :)
Używałem dawno temu taki zestaw: standardowy komp PC z kartą Yamaha XG + soft synth Yamaha XG (dostałem w komplecie z kartą) + port midi na karcie Sound Blaster + Yamaha PSR (nie pamiętam jaki) i wszystko śmigało jednocześnie, że hej.
A ostatnio bawiłem się właśnie opisywanym wcześniej Rolandem z ułesbowym kontrolerem MIDI Rolanda + wypasiony komp z nowoczesnym oprogramowaniem i co? Lipa. Niezbyt złożona sekcja perkusji, 3 kanały z instrumentami i Roland gubi dźwięki. Mało tego, na starcie każdego utworu muszę robić przedtakt chociażby z jednym wyciszonym dźwiękiem, żeby transmisja się rozpędziła, bo jak bym tego nie zrobił, to zgubi większość z pierwszych dźwięków.
Tak więc w pełni się z Tobą zgadzam i wiem, że wiesz co piszesz :-)
Faktycznie pisałeś, że to stream, teraz zauważyłem, gdzieś mi to umknęło w potoku myśli. Ale tak jak patrzę teraz na ten strumień, to żaden problem, żeby to przemontować, jak pozwolisz :-)
Jak zajdę dalej z midi do Atarki to chętnie bym się przyjrzał programowi CMC to MIDI. Jest gdzieś dostępny?
Pytanie do Wszystkich: Czy Ireneusz Kuczek jest komuś dostępny? Ktoś go zna i wie co się z nim dzieje?
Uważam go za wspaniałego programistę i chciałbym docenić wszem i wobec jego zasługi za wkład w rozwój ATARI, może w wąskiej kategorii, ale jednak baaaardzo duży.
Kuba, tak to właśnie robiłem :) Opisu formatu wtedy nie miałem. Nie zaimplementowałem wszsytkich funkcji, dlatego nie puściłęm tego dalej. Ale muszę przyznać, że gra bardzo fajnie. Aż chyba odkopię swój interface :)
Oprogramowanie do MIDI oraz inne materialy zwiazane z MIDI podeslane kiedys przez Charlie Chaplina:
all the Midi stuff I have, its not much, but afaik its all PD ! The programs by Karlheinz Metscher are named CK..., because they appeared in the german magazine Computer Kontakt. Besides the programs there are also pictures (plans/schematics) and some source-codes... have fun exploring the library
Voy, jesli bys mogl posegregowac to i wrzucic do katalogu uzytkow, bylbym wdzieczny.
i Yamahe PSR-510 (dzięki thePink) postanowiłem sprawdzić, jak to sobie radzi z naszym poczciwym komputerkiem. No i przyznam, jestem pod wrażeniem!
Teraz pytania, oto one:
* czy kawałki Grega napisane onegdaj w midi są dostępne gdzieś w postaci źródłowej? * jest dość dobry sequencer na Atari - "MIDI sequencer by Maciej Sygit", czy istnieje wersja recordera owego programu? Pytam, bo są recordery, ale działają np. na DOS 2, a to jest kompletnie nieużywalny soft. Owszem zapisuje, odtwarza .. lecz obsługa owych cudów przyprawia o ból d*** a wspomniany MIDI Sequencer współpracuje z dowolnym dosem, podkatalogami, stacją dysków, dyskiem twardym, z turbo na stacji, procu, bez turbo, bez proca .. jakkolwiek :)
Nie chciałbym nikomu podcinać skrzydeł czy coś, ale może się okazać że małe Atari jest niewystarczające do jakiejś bardziej zaawansowanej obsługi MIDI poza jednoczesnym odgrywaniem nut na góra kilku kanałach. Pin bawiłeś się w to - w coś więcej niż perka ?
... z czego widzę, to małe Atari obsługuje mi np.:
Bufor 300kB na dane:) ... czy po zarejestrowaniu DEMA z Yamahy PSR-510 jest je w stanie bez problemu i poprawnie odtworzyć.
Ogólnie - jestem pod wrażeniem działania tego urządzenia.
No i jest działający tracker na 16 kanałów ;)
Inna sprawa, ponieważ właśnie sprawdziłem, że MIDY zassane z sieci całkiem sprawnie grają z małego Atari, to czemu by nie zrobić porządnego playera pod Sparta DOS X? Porozmawiam z kim trzeba.
Last not least, here is what I have in my collection. I do own a MIDI interface for the A8, even an old keyboard with MIDI connection (nowadays they all seem to have USB connection), but have not tested the software nor the keyboard yet...
Subject: 6.1.4) What MIDI interfaces are there for the Atari?
From Wikipedia (10.28.2012): MIDI (Musical Instrument Digital Interface) is an electronic musical instrument industry specification that enables a wide variety of digital musical instruments, computers and other related devices to connect and communicate with one another. It is a set of standard commands that allows electronic musical instruments, performance controllers, computers and related devices to communicate, as well as a hardware standard that guarantees compatibility between them.
MIDI OUT, MIDI IN, and MIDI THRU interface connectors listed below are: DIN-5 180 Socket - female
Several MIDI interfaces have been designed for the 8-bit Atari computers:
MIDIMATE AND COMPATIBLE ======================= MIDIMate, by Hybrid Arts (Bob Moore) - Has MIDI OUT, MIDI IN, SYNC OUT (phono jack), SYNC IN (phono jack) ports - Connects to the Atari via SIO (must be at end of SIO chain) - Introduced Jan. 1984 at NAMM (National Association of Music Manufacturers) with MIDITrack sequencer program - Also shipped with: MIDITrack II (1984), MIDITrack III (1985; 128KiB XL/XE) - Sold separately or distributed by Hybrid Arts for the MIDIMate: - MIDITrack III (1985; 128KiB XL/XE) - DX-Editor (for the Yamaha DX7 and TX series) - GenPatch (generic patch library system) - MIDICom (MIDI Telecommunications) (1986) - MIDIPatch for the Yamaha DX-7 & TX tone rack (1985) - MIDIPatch for the Casio CZ-101 & CZ-1000 (1985) - Oasis (visual editing system for the Ensoniq Mirage & 128KiB XL/XE; 1986) - MIDI Music System (MMS) (1986) - by Synthetic Software (Lee Actor/Gary Levenberg) - Based on Advanced MusicSystem II - Includes an AMS to MMS conversion program - K3 Wave Table Editor (64KiB XL/XE) (Charles Faris for Kawai America) - Other software: - MIDI Maze, by Michael Park for Xanth F/X (prototype for Atari, 1989)
MIDIMax, by Wizztronics (Steve Cohen) (1988) - Provides MIDI OUT and MIDI IN ports - Connects to the Atari via SIO; provides SIO port for daisy chain - Compatible with the earlier MIDIMate by Hybrid Arts - Shipped with MIDI Music System (MMS) by Synthetic Software
MIDIMate-Interface V2, by ABBUC HardWareDoc (2011) - Provides MIDI OUT, MIDI IN, and MIDI THRU ports - Connects to the Atari via SIO - Two versions: 1) Must be at end of SIO chain 2) Provides SIO port for daisy chain - Compatible with the earlier MIDIMate by Hybrid Arts - See: ->link<-
MIDI MASTER AND COMPATIBLE ========================== MIDI Master, by 2 Bit Systems (1986) - Later units produced by Gralin International - Cable connects to the Atari via SIO and provides two 5-pin DIN sockets (female) at the other end, for MIDI OUT and MIDI IN (cable must be at end of SIO chain) - Shipped with several programs on disk - 8 track real time sequencer with tempo correction - Casio CZ series voice editor (edit and store voices on disk/tape) - Yamaha DX 100/21 series voice editor - Music player program (Music Computer or Advanced MusicSystem II) - DX7 voice editor - CZ menu and keyboard split utility - Extensive review: ->link<-
MIDIMaster II, by Gralin International (1992) - Provides MIDI OUT and MIDI IN ports - Connects to the Atari via SIO (must be at end of SIO chain) - Compatible with the earlier MIDI Master by 2 Bit Systems - Shipped with several programs on disk - updated versions of those shipped with the earlier MIDI Master by 2 Bit Systems
OTHER MIDI INTERFACES ===================== Atari MIDI Interface, by Karlheinz Metscher (appeared in the German magazine Computer Kontakt June/July 1986, pages 69-75, complete with documentation, schematics and its first program "MIDI Receiver"; in Computer Kontakt October/November 1986 appeared the second program, called "MIDI Disk" - a MIDI Recorder and Player program);
MIDI Interface for Atari XE / XL (public domain project) - Project published by Ireneusz Kuczek in Elektronika Praktyczna 6/98, p.86-88, see: ->link<- - Several versions: - Provides MIDI OUT port - Provides MIDI OUT and MIDI IN ports - Provides two MIDI OUT ports and one MIDI IN port - Connects to the Atari via SIO (must be at end of SIO chain) - Software: - MIDI Sequencer 1.15, by Maciej Sygit (1993) - MPE v2.3 MIDI Pattern Editor, version 2.3, by Radek Sterba (1995) - Recorder MIDI ver 1.1, by Ireneusz Kuczek (1997) - MIDI-Play v1.3, by Ireneusz Kuczek (1998) - Project website: ->link<-
MidiJoy, by Phobotron (Frederik Holst), 2014 - MidiJoy is a software/interface combination that allows you to use your Atari as a musical instrument. The interface part emulates a USB-MIDI (serial MIDI is optional) device that can be accessed by any kind of instrument as well as sequencer software on a PC or Mac that can output MIDI data. The MidiJoy software receives these data from the interface via the joystick ports and plays them on the POKEY sound-chip. In contrast to most SIO-based MIDI interfaces, a MidiJoy-driven Atari can be used as a live instrument in real time with up to four sound channels simultaneously. At the same time, all POKEY parameters (AUDCTL, AUDC1-4) can be changed on-the- fly as well as activation of ADSR envelopes. Music input can be recorded and saved to disk. - Project website: ->link<-
Jako jeden z pierwszych użytkowników i propagatorów MIDI na Atari XL/XE mogę powiedzieć, że popełniłem na początku lat 90-tych kilka kawałków w MIDI Sequencerze. Mało tego - napisałem konwerter i player do muzyczek z CMC, by można je było odtworzyć przez MIDI na module brzmieniowym. Osoby obecne na QuaST Party w Ornecie w latach 1995-97 mogły na własne uszy posłuchać :) Pisałem też MIDI tracker w stylu CMC, który pozwalałby w wygodny sposób tworzyć. Wszystko mam gdzieś na dyskietkach, które w najbliższych miesiącach zamierzam w końcu zgrać.
Aha, miałem ten plan, by do drugiego POKEY-a podpiąć moduł wavetable po serialu, by móc odtwarzać muzykę przez MIDI. Pomysł wówczas padł z racji braku modułów w sensownej cenie. Teraz to chyba już nie jest problemem.
Też chętnie poczytam, jak MIDI w praktyce wyglądało na maluchu. Na ile jego ograniczenia (ilość pamięci, przepustowość interfejsu) pozwoliły swobodnie tworzyć.
baud rate z tego co w sieci - raptem 31250, wydaje się, że nie powinno nic gubić, a że pliku midi 1MB praktycznie się nie spotyka to wydaje mi się że to "po prostu powinno działać"
kurka, że człowiek ma tak mało czasu - marzy mi się jakiś programik który ostatni klawisz pianina ma jako sterujący i np bez z siadania ze stołeczka sobie można cofnąć pattern do nagrania jeszcze raz .....
@yosh: czy pisząc midi nie chciałeś przypadkiem napisać utwory w standardzie GM (general midi). Bo MIDI, a GM to jednak jest trochę co innego. Choć, przyznam szczerze - utwór GM również potrafi przesłać sporo danych naraz.
Mnie chodzi o to, że podłączając instrument po midi i chcąc nim zasterować odpowiednio, małe Atari może być po prostu za słabe. A instrumenty midi to nie tylko channel 1-16 reverb i chorus ale również sprzęty które potrafią dużo, dużo więcej. Stąd i apetyt na dane jest spory. Tutaj dosyć skrajny przykład:
Ja tam laik jestem... ale widząc, że interfejs jest zabity na 31250, cytując wikipedie
"MIDI messages are extremely compact, due to the low bandwidth of the connection (this is due to adoption of a fixed baud rate of 31250 baud in the standard[3])"
no to tak.. 10 bitów na bajt (bo start stop).. czyli 3125 na sekundę bajtów.. czyli 0.5MB 100% wykorzystania pasma to 2.5 minuty (surowego streama danych - zero trackera czy jakieś kompresji po stronie hosta)
na moją małą głowę tam po prostu więcej danych nie wejdzie
też zawsze mnie to zastanawiało, jak te większe midi sprzęty na tym wydalają. ale może to wystarcza... może się wysyła konfiguracje a potem jeden bajt "odpal" wtedy faktycznie konfiguracja swoje zajmować będzie przed rozpoczęciem odtwarzania... no i skoro ta konfiguracja nie będzie realtime to można ją odczytać z dyskietki i wysłać przed główną pętlą..
@yosh: nigdy nie zajmowałem się protokołem midi od strony nazwijmy to koderskiej. Ale jedna sprawa to jest wysłać komunikaty typu program change itd przed nutami - czyli ustawić instrument (brzmienia, pogłos, chorus). A inna sprawa realtime modyfikować brzmienie poprzez przesyłanie lawiny parametrów (oprócz nut), co też chciałem pokazać linkując filmik o systemie KARMA. Symboliczne wciśnięcie przycisku play generuję tam naprawdę ulewę danych :)
Panowie, MIDI to po prostu standard określający pewien sposób transmisji danych :) W praktyce jest niestety bardzo podatny na lagi i opóźnienia. Przez MIDI lecą wszelkiej maści komendy - zmiana instrumentu, zmiana pogłosu, naciśnięcie klawisza, o pitchbenderze nie wspominając (ten dopiero sieje!). Przy jednym kanale/instrumencie opóźnień właściwie nie słychać. Gorzej, jeśli przesyłamy dane dla 16 kanałów, a utwór jest bardzo dynamiczny. Wówczas zaczyna być słychać opóźnienia. Dlatego właśnie w profesjonalnych studiach stosowano interface z równoległymi portami MIDI - po jednym dla każdego urządzenia. Tak czy inaczej pliki *.MID zawierają stream i niezależnie czy odtwarza się taki plik z Atari XL/XE czy z PC to brzmi identycznie :)
A wracając do softu - jeśli odnajdę i zgram to, co napisałem, to oczywiście pokażę zainteresowanym. Najfajniejszy był CMC MIDI Player, który po przygotowaniu tabeli konwersji instrumentów grał niesamowicie.
Skoro twierdzisz, że nie ma różnicy w korzystaniu z pojedynczego MIDI IN/OUT pomiędzy nowoczesnym PC a wyntydżowym Atari to rozumiem, że próbowałeś (ja nie). Jestem świadom ograniczeń portu, którego specyfikacja pochodzi z wczesnych lat 80. Niemniej wydaje mi się, że jednak pece radzi sobie lepiej. Co do osobnego MIDI na każdy instrument to oczywiście racja (to wiem) ale mnie chodziło o prostą współpracę z jednym instrumentem. Tym bardziej że sam podałeś przykład pitchbenda, który "sieje". A to tylko jeden potencjometr/zmiana jednego parametru w locie, zobacz co wyprawia system KARMA :)