Muziek componeren: orkest, partituren en MIDI-invoer

Programmeergidsen

Maak muziek met piano, strijkers, bas en slagwerk en hoor de partijen samen spelen. Pliro bevat 128 General MIDI-instrumentklanken, 47 drumklanken en de oorspronkelijke stemmen chip, bell, pluck en flute. De muziekgereedschappen zijn inbegrepen bij Learner en werken ook in de speeltuin in je browser.

Een orkest starten

Elke partij is een lijst met een instrument, geschreven noten en eventueel een volume. Eén aanroep van startOrkest start alle partijen tegelijk:

# language: nl
zetVolume(60)
laat piano = ["gm.acoustic-grand-piano", "C4+E4+G4:2 F4+A4+C5:2", 75]
laat bas = ["gm.acoustic-bass", "C3:2 F2:2", 65]
laat drums = ["drums", "C2+F#2:1 D2+F#2:1 C2+F#2:1 D2+F#2:1", 35]
startOrkest("lied", [piano, bas, drums], 120, waar)
wacht(8)
stopSpoor("lied")

Probeer het volume van het slagwerk te verlagen. Alle partijen delen hetzelfde tempo en startmoment. Een kortere partij wacht tot de langste klaar is. Daarna herhalen ze samen als herhalen aanstaat. zetSpoorVolume("lied", 40) verandert het hele orkest; stopSpoor("lied") stopt het.

De instrumentbank gebruikt compacte synthese en werkt daardoor offline zonder samples te downloaden. Je krijgt het volledige GM-instrumentenpalet, geen opgenomen akoestisch orkest. Instrument-ID’s blijven gelijk in Nederlandse en Engelse code.

Een partituur lezen en schrijven

Geschreven noten Betekenis
C4:1 Centrale C gedurende één tel
C#4:0.5 Cis gedurende een halve tel
Bb3:2 Bes gedurende twee tellen
R:1 Eén tel rust
C4+E4+G4:2 Drie noten tegelijk gedurende twee tellen

Scheid gebeurtenissen met spaties. Een akkoord heeft één gezamenlijke duur en maximaal acht verschillende toonhoogten. Bij drums kiest de toonhoogte een slagwerkklank: C2 is de basdrum, D2 de snaredrum en F#2 de gesloten hi-hat. Drumtoonhoogten lopen van B1 tot A5.

Kies in Blokken de muzieknootknop naast een letterlijk ingevulde partituur. Selecteer een noot op de notenbalk om hem te wijzigen, gebruik de knoppen voor nootlengten, voeg rusten toe of voer de geschreven noten direct in. Extra akkoordnoten accepteert toonhoogten zoals E4+G4. De editor heeft eigen knoppen voor ongedaan maken, opnieuw uitvoeren en beluisteren. Melodie gebruiken past de partituur in je broncode aan; Annuleren laat die ongewijzigd.

Het instrument en tempo in de melodie-editor gelden voor het beluisteren. Verander de bijbehorende blokvelden of de instellingen in de componist om ze voor het afspelen van je programma te bewaren.

Liederen in maps bewerken

Muziek blijft bewerkbaar wanneer die in een map of lijst met liederen staat, zoals bij de jukebox. Kies in Blokken Partituren bewerken naast de liedgegevens. Zoek een lied of partij, selecteer het en kies Melodie bewerken voor één partituur of Lied componeren voor het hele arrangement.

De componist herkent liedmaps met bpm en parts. Elke partij heeft een letterlijk ingevulde score en instrument, met eventueel role en volume. Een lied kan ook title en tempoChanges bevatten. Berekende expressies blijven in Tekst bewerkbaar; de componist voert je programma niet uit om hun waarden te raden.

Meerdere sporen arrangeren

De componist brengt de sporen, het notenoverzicht en de afspeelknoppen samen in één compact venster. Lucide-pictogrammen hebben vertaalde knopinfo en toegankelijke namen. Beweeg de muis over een knop om de functie te zien, of bereik hem met Tab.

  1. Selecteer een spoor om de naam, het instrument, het volume of de geschreven noten te veranderen.
  2. Kies Noten bewerken voor de notenbalk of om noten met een MIDI-keyboard in te voeren.
  3. Gebruik Spoor toevoegen, Spoor dupliceren of Spoor verwijderen om het arrangement aan te passen.
  4. Kies Alle sporen afspelen om alles samen te horen. Dempen en Solo helpen bij het beluisteren van afzonderlijke partijen.
  5. Kies Compositie gebruiken om het arrangement als één broncodewijziging op te slaan.

Het overzicht toont wanneer de noten klinken. Selecteer een spoor en open de noteneditor om ze aan te passen. Namen, noten, instrumenten, volumes en tempowijzigingen worden bewaard. Dempen, solo en oefeninstellingen gelden alleen bij het beluisteren. Ongedaan maken en opnieuw uitvoeren werken eerst op je concept; na toepassen kun je met ongedaan maken in de editor de vorige broncode herstellen. Bestaand commentaar en andere liedvelden blijven behouden. Bestaande letterlijke velden beats, seconds en time volgen de gewijzigde duur.

De gedeelde muziekcomponist van Pliro in de browserspeeltuin, met sporen, noten, volume en tempo
De gedeelde muziekcomponist van Pliro in de browserspeeltuin, met sporen, noten, volume en tempo

De huidige gedeelde componist, vastgelegd in de browserspeeltuin. De desktop-IDE gebruikt dezelfde componist.

Oefenen met een metronoom

Schakel Metronoom in om tikken tijdens het afspelen in de componist te horen. Aftellen voegt een maat toe voordat de muziek begint. Met Tellen per maat kies je 2/4, 3/4, 4/4 of 6/4, met een accent op de eerste tel. De tikken volgen de tempowijzigingen van het lied.

Metronoom starten speelt een oefentik op het begintempo zonder het lied af te spelen. De melodie-editor voor één partituur heeft ook een oefenmetronoom. Deze instellingen helpen bij het componeren; ze voegen geen tiknoten of maatsoort toe aan je opgeslagen lied.

Het tempo tijdens een lied veranderen

Begintempo in de componist stelt het eerste BPM in. Tempowijziging toevoegen maakt een markering met een telpositie en een nieuw BPM. Posities beginnen bij nul: positie 4 ligt na vier tellen. Vanaf die positie geldt het nieuwe tempo voor elke partij. Een aangehouden noot blijft doorklinken over de wijziging.

Dit volledige voorbeeld vertraagt na vier tellen. Open de liedmap in Blokken om ermee te experimenteren:

# language: nl
laat song = {
    "title": "Avondlicht",
    "bpm": 120,
    "tempoChanges": [[4, 90]],
    "seconds": 4.666667,
    "parts": [
        {"role": "Piano", "instrument": "gm.acoustic-grand-piano", "volume": 75, "score": "C4+E4+G4:2 F4+A4+C5:2 G4+B4+D5:2 C4+E4+G4:2"},
        {"role": "Cello", "instrument": "gm.cello", "volume": 65, "score": "C3:2 F2:2 G2:2 C3:2"}
    ]
}
laat orchestra = []
voor part in song.parts:
    zet orchestra = orchestra + [[part.instrument, part.score, part.volume]]
startOrkest("lied", orchestra, song.bpm, onwaar, song.tempoChanges)
wacht(song.seconds)

Het laatste argument geeft song.tempoChanges door aan het afspelen. Alleen een veld aan een map toevoegen verandert het gedrag van een audioaanroep niet. De eerste vier tellen duren twee seconden bij 120 BPM; de volgende vier ongeveer 2,67 seconden bij 90 BPM.

Het tempo moet 20–400 BPM zijn. Markeringen moeten oplopende posities hebben vóór het einde van de langste partij. Een markering op nul vervangt het begintempo. Bij herhalen beginnen de markeringen opnieuw. Voor één partituur accepteert startMelodie dezelfde lijst als zesde argument. Zie startOrkest en startMelodie.

Noten invoeren met een MIDI-keyboard

MIDI-invoer werkt stap voor stap in de melodie-editor. Je voert toonhoogten in met de gekozen nootduur; de timing van je uitvoering wordt niet opgenomen.

  1. Verbind de USB-MIDI-aansluiting van je keyboard, of verbind MIDI OUT via MIDI IN van een MIDI-interface.
  2. Open Noten bewerken voor een spoor in de componist, of open de melodie-editor van een letterlijk ingevulde partituur.
  3. Kies MIDI verbinden en geef toestemming voor MIDI-toegang als daarom wordt gevraagd.
  4. Selecteer de invoer bij MIDI-keyboard en kies een nootduur.
  5. Speel een noot of akkoord en laat alle toetsen los. De editor voegt het in na de geselecteerde noot, of aan het einde wanneer er geen noot geselecteerd is.

De activiteitsindicator reageert zodra nootberichten binnenkomen. Invoegen gebeurt pas wanneer alle toetsen los zijn; een akkoord mag maximaal acht toonhoogten hebben. Kies voor de volgende invoer een andere duur en gebruik Rust toevoegen voor rusten. Sluit de editor of kies MIDI loskoppelen om de invoer los te laten.

Verschijnen er geen poorten? Controleer de USB-dataverbinding, sluit het keyboard opnieuw aan en kies nogmaals MIDI verbinden. Alleen een audiokabel geeft geen MIDI door. Kan een poort niet worden geopend, sluit dan andere muziekprogramma’s die hem mogelijk gebruiken, verbind opnieuw en probeer het nogmaals. Bij geweigerde toestemming moet je MIDI-toegang toestaan; een melding over een niet-ondersteund venster betekent dat deze uitvoeromgeving geen MIDI-invoer aanbiedt. Handmatig noten bewerken blijft beschikbaar.

Deze functie hangt af van Web MIDI-ondersteuning in de browser of desktopomgeving. Ze importeert geen MIDI-bestanden, neemt geen aanslagsterkte, sustainpedalen, besturingsberichten of uitvoeringstiming op en stuurt geen muziek terug naar externe instrumenten. Je opgeslagen Pliro-programma heeft geen MIDI-keyboard nodig om af te spelen.

De gedeelde melodie-editor in de browserspeeltuin met notenbalk, nootlengten en MIDI-invoerknoppen
De gedeelde melodie-editor in de browserspeeltuin met notenbalk, nootlengten en MIDI-invoerknoppen

De melodie-editor in de browserspeeltuin. MIDI verbinden zoekt naar invoerpoorten; de afbeelding toont geen aangesloten keyboard.

Opgenomen geluiden en afspeelgrenzen

Importeer opgenomen effecten via Media in de IDE in een draagbaar project. speelGeluid("assets/sprong.wav", 70) speelt één effect; startGeluid("sfeer", "assets/wind.wav", waar) start een herhalend spoor. Gebruik zetSpoorVolume en stopSpoor om het te regelen.

Volumes lopen van 0 tot 100. Hoofdvolume, spoorvolume en partijvolume worden met elkaar vermenigvuldigd. Audio starten op een bestaande naam vervangt het geluid en behoudt het spoorvolume. speelNoot("C5", 0.5, 120, "gm.flute") voegt één noot toe zonder andere sporen te vervangen.

Afspelen blokkeert de volgende opdracht niet. Houd herhalende muziek actief met gebeurtenisafhandelaars, een spellus of een positieve wacht. Bij normaal programma-einde stoppen herhalende sporen; eindige geluiden mogen uitklinken. Pauzeren onderbreekt het geluid en Stoppen/Resetten ruimt het afspelen op.

Er zijn maximaal 16 benoemde sporen, 16 partijen per orkest en 32 tegelijk klinkende noten. Bij een volle bezetting stopt de oudste klinkende noot. Partituren bevatten maximaal 4096 gebeurtenissen; een orkest deelt deze grens over zijn partijen. Elke partituur duurt maximaal 4096 tellen, elke gebeurtenis 1/64–64 tellen en een tempolijst bevat maximaal 256 markeringen.

Synthese werkt zonder geluidsbestanden in de IDE, speeltuin en ondersteunde native Windows/Linux/Raspberry Pi-exports. Codecs voor opgenomen geluid hangen af van de uitvoeromgeving; ondersteunde PCM WAV is de draagbare keuze voor native apps. De tekst-CLI en telefoonvoorbeeldweergave spelen deze audio niet af.

Probeer het orkestvoorbeeld · Speeltuingids · Spelprojecten