Yoshimi: meerdere instruments tegelijk gebruiken

Voor sommige van mijn ideeën heb ik meerdere instruments nodig uit Yoshimi. Voorheen loste ik dit op door meerdere Yoshimi’s op te starten maar dan wordt het al snel onoverzichtelijk. En had ergens gelezen dat het mogelijk is om in Yoshimi of ZynAddSubFX meerdere instrumenten tegelijk te gebruiken. Nooit echt naar gekeken en het is dus eigenlijk dodelijk simpel maar nergens goed gedocumenteerd.

Met Yoshimi is het mogelijk meerdere parts te gebruiken, 16 in totaal. En dat is het eigenlijk. In iedere part kun je een andere instrument laden en aangeven op welk MIDI kanaal deze moet luisteren. Even wat screenshotjes om de boel te verduidelijken. Heb het deel van de GUI waar het om gaat gemarkeerd met een rode rand.







Part 1 zit dus op MIDI kanaal 1 en part 2 op kanaal 2. In bijv. Qtractor kun je ze nu apart aansturen. Als je de parts tegelijkertijd wil laten spelen zet je ze op hetzelfde MIDI kanaal. Het is wel belangrijk dat je de verschillende parts activeert (enable aanvinken) anders kun je er geen instruments in laden.

Yoshimi: meerdere instruments tegelijk gebruiken

Vocoder in Qtractor II

Heb even een sjabloontje gemaakt in Qtractor om snel een sessie op te kunnen starten met de Vocoder LADSPA plugin.

Qtractor + Vocoder

Mocht je dit sjabloontje willen gebruiken hou er dan rekening mee dat je dan de werkdirectory aan moet passen (regel 4) en dat het sessiebestandje gemaakt is op een 64-bits installatie (regel 254). En je moet de Vocoder LADSPA plugin geïnstalleerd hebben uiteraard.

Vocoder in Qtractor II

Vocoder in Qtractor

Op bijna dezelfde manier als de sidechain compressie methode kun je ook de Vocoder LADSPA plugin gebruiken. Ik ben hiermee gaan experimenteren na een vraag van Louigi Verona op de Linux Audio Developer mailing list en heb de Vocoder als volgt aan de gang gekregen:

  • In Qtractor heb ik 4 tracks aangemaakt met daarbij behorende bussen: Formant Synth (1 kanaal), Carrier Voice (1 kanaal), Vocoder (2 kanalen) en Vocoder Mix (2 kanalen)
  • Alle tracks hebben zowel als in- en output hun corresponderende bussen behalve Vocoder Mix, die stuurt uit naar de Master bus
  • In de Vocoder track heb ik de Vocoder LADSPA plugin geladen, input 1 van de Vocoder bus is de carrier en input 2 is de formant (formant, carrier?)
  • Daarna heb ik de connecties aangemaakt zoals in de onderstaande schermafdruk




In Yoshimi heb de Trash Guitar 1 instrument geladen en als ik nu in het microfoontje van mijn notebook spreek en wat noten aansla met het virtuele keyboard van Yoshimi hoor ik mijn stem gevocode weer terug. Hiervoor moet je in de Vocoder plugin settings wel het aantal bands selecteren dat je wilt gebruiken en deze openzetten zoals in onderstaande schermafdruk te zien is.


http://lists.linuxaudio.org/pipermail/linux-audio-dev/2010-July/028433.html


Inmiddels is er ook een mailtje binnengekomen op de LAD mailing list van de ontwikkelaar van Qtractor zelf, Rui Nuno Capela. Eigenlijk wilde hij Louigi melden dat wat hij wil helemaal niet kan in Qtractor maar na mijn mailtje met uitleg gelezen te hebben komt hij daar van terug en geeft in zijn PS aan dat ik zijn programma kennelijk al beter ken dan hijzelf.

*glim*

Vocoder in Qtractor

Sidechain compressie met Qtractor

Het was even puzzelen maar uiteindelijk toch gelukt, sidechain compressie in Qtractor. Het lukt me nu om een lead synth of baslijn weg te laten drukken door de kick, ook wel bekend als ducking. Dit creëert de nodige dynamiek en in moderne producties hoor je het vaak voorbij komen, vooral de Fransen zijn er erg bedreven in.

Hiervoor heb ik 5 stereo tracks én 5 gelijknamige bussen aangemaakt:

  • Kick met als input- en outputbus Kick
  • Synth met als input- en outputbus Synth
  • Synth Ducked met als input- en outputbus Synth Ducked en aan deze track heb ik de SC3 LADSPA compressor toegevoegd. Dit is een plugin met 3 inputs (stereo input en de sidechain input) en 2 outputs
  • Synth Mix met als inputbus Synth Mix en als outputbus Master
  • Kick Mix met als inputbus Kick Mix en als outputbus Master

De verschillende bussen heb ik daarna als volgt aan elkaar geknoopt:




Zoals je kan zien heb ik de ene output van de Synth Ducked bus dubbel naar de Synth Mix bus gestuurd. De SC3 plugin heeft dan wel twee outputs maar de plugin stuurt echter in mijn geval mono uit. Op deze manier heb ik een stereo output op mijn Master bus aangezien de Synth Mix en de Kick Mix bussen uitsturen naar de Master bus.

Op de Kick inputbus zit een kick uit Hydrogen en op de Synth inputbus PHASEX. En dat klinkt zo:

Sidechain compressie met Qtractor

Yoshimi Dubstep Instrument

Het begon met een draadje op de Linux Audio Users Mailing List, of iemand wel eens had geprobeerd een Dubstep basje te fabrieken onder Linux. Niet dat ik persoonlijk van Dubstep hou maar met ons DJ teampje willen we wel eens een Dubstep klassiekertje draaien en het leek me wel een uitdaging om zo’n basje te kunnen reproduceren.

Na wat softsynths uitgeprobeerd te hebben lukte het me met behulp van een YouTube tutorial en Yoshimi om een redelijk klinkend wobble basje uit m’n PC’tje te toveren.

Met Yoshimi kun je namelijk heel snel en eenvoudig basistonen maken op basis van waveforms. En aangezien een waveform het uitgangspunt is van de al eerder genoemde YouTube tutorial ben ik verder gaan rommelen met Yoshimi. Na het vlogje een paar keer goed bekenen te hebben had ik een klein lijstje met de benodigde ingrediënten:

  • Square + sawtooth wave
  • Filter: 12 Db pro-active Bandpass filter
  • Filter frequency: 100Hz
  • Filter envelope amount: -20 (thump/pop)
  • Wobble: LFO rate sync to clock
  • LFO rate 1/8 (8th notes)
  • LFO type: sine
  • LFO amount so LFO modulates the filter’s cutoff frequency
  • Voices: 2 (Square + sawtooth)
  • Glide: 50ms
  • Attack: 12.7 ms
  • Decay: 600 ms
  • Sustain: 0
  • Release: 50 ms
  • Velocity sensitivity
  • Panning – detuning

Vervolgens ben ik met de uitgebreide edit functionaliteiten van Yoshimi aan de slag gegaan en ik kon bijna alles één op één aanpassen voor Yoshimi. Het enige wat niet kan met Yoshimi is de LFO amount realtime aanpassen via MIDI dus je kan Yoshimi helaas niet sneller of langzamer laten wobblen. Met het Phaser effect zou het wel moeten kunnen, die kun je namelijk met zgn. NRPN MIDI messages aansturen, maar dat is me nog niet gelukt, ben geen MIDI goeroe.

Het uiteindelijke resultaat, een .xiz instrument bestandje, heb ik gepost op de Linux Audio Users Mailing List en prompt krijg ik een mailtje van de Yoshimi dev of dit bestandje in de nieuwe release van Yoshimi opgenomen zou mogen worden. Nou ja, supertof natuurlijk, dus geen probleem. Dus in de laatste versie van Yoshimi, 0.058, zit een instrument van mij:

Changes
0.058 all the rc5 fixes but lose the debug code;welcome Jeremy Jongepier's Dubstep bass.
0.057.2-rc5 fix a deadlock on loading instruments using PADsynth.




Yoshimi Dubstep Instrument

JACK en Flash

Op mijn muziek PC gebruik ik geen PulseAudio en alleen JACK. Flash kan niks met JACK dus ik kan wel Flash filmpjes bekijken maar dan alleen zonder geluid. Onhandig natuurlijk. Dus een oplossing voor proberen te vinden. Uiteindelijk op drie mogelijke opties uitgekomen:

  1. De PulseAudio modules laden die met JACK kunnen praten.
  2. Libflashsupport-jack compileren en installeren.
  3. De JACK ALSA plugin installeren.

Optie 1 viel af, ik gebruik immers geen PulseAudio. Optie 2 ook want kennelijk is libflashsupport niet echt heel stabiel en bovendien heel beperkt. Dus ben voor optie 3 gegaan, wat me zelf ook wel de elegantste oplossing leek. Het libasound2-plugins pakketje van Ubuntu mist weliswaar de JACK plugin maar een versie met de JACK plugin staat in de PPA van Motin. Deze geïnstalleerd, een werkend .asoundrc bestand gefabriekt  en in mijn homedirectory gezet. Browser herstart, Youtube filmpje aangezet en nu dus mooi wel met geluid via mijn Firewire kaart.

JACK en Flash

ffado-mixer Handleiding

Zit een beetje rond te kijken in de Wiki van FFADO en kom zo maar een handleiding tegen voor de Focusrite Saffire Pro 10 die ik hier ook heb staan. Hierin staat dus beschreven hoe je de ffado-mixer kan gebruiken met deze specifieke Firewire kaart. Ik snap nog niet veel van de mogelijkheden van een dergelijke mixer applicatie dus ben erg content met deze vondst.



ffado-mixer Handleiding

MIDI USB Keyboard gebruiken in Ubuntu

Heb een kort video handleidinkje gemaakt hoe je in Ubuntu een MIDI USB keyboard aan een softsynth kan knopen en deze op YouTube gezet. Als screencast programma heb ik recordMyDesktop uit mijn eigen PPA gebruikt zodat ik de output van zowel mijn mic als de softsynth met recordMyDesktop kon verbinden mbv JACK. De mic output heb ik nog wel even door een lichte galm gegooid via JACK Rack anders klonk het zo droog. De video handleiding is wel in het Engels aangezien ik deze in eerste instantie naar aanleiding van een post op het Ubuntu forum had gemaakt.

MIDI USB Keyboard gebruiken in Ubuntu

Geef het leven Zyn

Even een linkdumpje naar wat documentatie en videotutorials van ZynAddSubFX. Je kan zoveel met Zyn maar er is zo weinig te vinden over wát je er nou precies allemaal mee kan.

(Verouderde) documentatie:

Video tutorials:

Geef het leven Zyn

JACK en meerdere geluidskaarten

JACK kan meerdere geluidskaarten aan, als ze maar dezelfde backend gebruiken (ALSA, FFADO, OSS). Je kan verschillende kaarten instellen voor de in- en output devices maar mocht je meerdere input en/of output devices willen gebruiken, bijvoorbeeld twee verschillende geluidskaarten voor de output tbv monitoring, dan is er de mogelijkheid om dat met de tooltjes alsa_in en alsa_out te doen.

Op mijn Fedora 12 installatie werkt dat prima maar op mijn Ubuntu machines kon ik deze tooltjes niet vinden. Even Googlen en snel de oorzaak achterhaald, kennelijk vergeten ze bij Ubuntu iedere keer JACK te compileren met libsamplerate. Mocht er behoefte aan zijn dan kan ik JACK packagen met de tooltjes die afhankelijk zijn van libsamplerate, zoals alsa_in en alsa_out. Heb wel al Karmic 64-bits pakketjes geüpload.

Een programma waar het tooltje alsa_out van pas zou kunnen komen is Mixxx met JACK als Sound API. Als je Mixxx samen met JACK gebruikt kun je voor je Master en je Headphones kanalen geen verschillende geluidskaarten instellen. Maar als je nadat je JACK hebt opgestart en voordat je Mixxx opstart het volgende terminal commando opgeeft kan dat wel:

alsa_out -j cmedia -d hw:1 -c 2 &

Dit commando is uiteraard wel afhankelijk van de configuratie van je geluidskaarten. Hoe dat ingesteld is kun je oproepen met het terminal commando aplay -l:

[jeremy@werkpc ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: AD198x Analog [AD198x Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: AD198x Digital [AD198x Digital]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: default [C-Media USB Headphone Set  ], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ALSA ziet de onboard HDA Intel kaart dus als card 0 (oftewel hw:0) en het ingeplugde C-Media USB geluidskaartje als card 1 (hw:1). Nu wordt het alsa_out commando hierboven ook gelijk duidelijker, als ik dat even snel ontleed staat er eigenlijk het volgende: gebruik device (-d) hw:1 (de C-Media USB geluidskaart) met 2 kanalen (-c 2) en geef deze ‘cmedia’ als naam voor JACK (-j cmedia). Je kunt nog meer instellingen meegeven maar voor dit voorbeeld volstaat bovengenoemd commando. Wat er nu gebeurt is dat er een nieuwe JACK ‘Writable Client/Input Port’ verschijnt in QjackCtl met de naam ‘cmedia’. Als je nu Mixxx opent kun je inderdaad via Options – Preferences – Sound Hardware de verschillende geluidskaarten instellen onder ‘Master’ en ‘Headphones’. ‘Master’ zet je dan op ‘system’ (in mijn geval de onboard HDA Intel) en ‘Headphones’ op ‘cmedia’. Koptelefoon aansluiten op de C-Media stick en stereotoren op de onboard kaart, voilà, monitoring op je koptelefoon en snoeiharde deathmetalitalodisco van Giörgiö Möröder op je stereo.

Al het bovenstaande gaat op voor wat in de wandelgangen wel jack1 wordt genoemd (versie 0.116.x), jack2 (versie 1.9.x, ook wel jackdmp genoemd, mp staat voor multiple processors) heeft deze functionaliteit al ingebakken, dus dan heb je alsa_in en alsa_out niet meer nodig.

JACK en meerdere geluidskaarten